커뮤니티

수식검토

프로필 이미지
목마와숙녀
2018-06-14 16:20:23
183
글번호 119735
답변완료
아래 수식에서 손절,익절,TR 3가지가 시뮬레이션이 안되는데 검토바랍니다. 참고로 exitshort 대신에 아래수식을 사용하면 시뮬레이션이 됩니다. SetStopLoss(손절틱수*PriceScale,PointStop); SetStopProfittarget(수익틱수*PriceScale,PointStop); SetStopTrailing(수익감소틱수*PriceScale,PointStop); ************************************************************************ input : 거래횟수(1),진입시간(090000),진입제한시간(150000),트레이드종료시간(151300),Pyra(0.8),n(3); input : 손절(20),익절(20),TR(20); input : 최소가격변화포인트(0.5), 봉갯수(50); input : pt(0.10); var : Tcond(false),T1(0), entry(0); if (sdate != sdate[1] and stime >= 진입시간) or (sdate == sdate[1] and stime >= 진입시간 and stime[1] < 진입시간) Then Tcond = true; if (sdate != sdate[1] and stime >= 진입제한시간) or (sdate == sdate[1] and stime >= 진입제한시간 and stime[1] < 진입제한시간) Then Tcond = false; if (sdate != sdate[1] and stime >= 트레이드종료시간) or (sdate == sdate[1] and stime >= 트레이드종료시간 and stime[1] < 트레이드종료시간) Then ExitShort(); if date != date[1] then { var1 = 0; var2 = 0; t1 = TotalTrades; } if MarketPosition == 0 Then entry = TotalTrades-t1; Else entry = TotalTrades-t1+1; if C <= O+pt and Tcond == true and entry < 거래횟수 Then sell("s"); if MarketPosition == -1 and MaxContracts < n Then sell("ss",AtStop,LatestEntryPrice(0)-Pyra); if MarketPosition == -1 then { if IsEntryName("s1") == true then { ExitShort("sl1",AtStop,EntryPrice+PriceScale*손절); ExitShort("sp1",AtLimit,EntryPrice-PriceScale*익절); ExitShort("str1",AtStop,Lowest(l,BarsSinceEntry)+PriceScale*TR); } } SetStopInactivity(최소가격변화포인트,봉갯수,PointStop);
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2018-06-14 16:22:06

안녕하세요 예스스탁입니다. 청산식에 진입명이 s1일때만 동작되게 되어 있지만 진입식의 이름이 s,ss입니다. 청산식에 진입명 체크 내용을 삭제하시면 됩니다. input : 거래횟수(1),진입시간(090000),진입제한시간(150000),트레이드종료시간(151300),Pyra(0.8),n(3); input : 손절(20),익절(20),TR(20); input : 최소가격변화포인트(0.5), 봉갯수(50); input : pt(0.10); var : Tcond(false),T1(0), entry(0); if (sdate != sdate[1] and stime >= 진입시간) or (sdate == sdate[1] and stime >= 진입시간 and stime[1] < 진입시간) Then Tcond = true; if (sdate != sdate[1] and stime >= 진입제한시간) or (sdate == sdate[1] and stime >= 진입제한시간 and stime[1] < 진입제한시간) Then Tcond = false; if (sdate != sdate[1] and stime >= 트레이드종료시간) or (sdate == sdate[1] and stime >= 트레이드종료시간 and stime[1] < 트레이드종료시간) Then ExitShort(); if date != date[1] then { var1 = 0; var2 = 0; t1 = TotalTrades; } if MarketPosition == 0 Then entry = TotalTrades-t1; Else entry = TotalTrades-t1+1; if C <= O+pt and Tcond == true and entry < 거래횟수 Then sell("s"); if MarketPosition == -1 and MaxContracts < n Then sell("ss",AtStop,LatestEntryPrice(0)-Pyra); if MarketPosition == -1 then { ExitShort("sl1",AtStop,EntryPrice+PriceScale*손절); ExitShort("sp1",AtLimit,EntryPrice-PriceScale*익절); ExitShort("str1",AtStop,Lowest(l,BarsSinceEntry)+PriceScale*TR); } SetStopInactivity(최소가격변화포인트,봉갯수,PointStop); 즐거운 하루되세요 > 목마와숙녀 님이 쓴 글입니다. > 제목 : 수식검토 > 아래 수식에서 손절,익절,TR 3가지가 시뮬레이션이 안되는데 검토바랍니다. 참고로 exitshort 대신에 아래수식을 사용하면 시뮬레이션이 됩니다. SetStopLoss(손절틱수*PriceScale,PointStop); SetStopProfittarget(수익틱수*PriceScale,PointStop); SetStopTrailing(수익감소틱수*PriceScale,PointStop); ************************************************************************ input : 거래횟수(1),진입시간(090000),진입제한시간(150000),트레이드종료시간(151300),Pyra(0.8),n(3); input : 손절(20),익절(20),TR(20); input : 최소가격변화포인트(0.5), 봉갯수(50); input : pt(0.10); var : Tcond(false),T1(0), entry(0); if (sdate != sdate[1] and stime >= 진입시간) or (sdate == sdate[1] and stime >= 진입시간 and stime[1] < 진입시간) Then Tcond = true; if (sdate != sdate[1] and stime >= 진입제한시간) or (sdate == sdate[1] and stime >= 진입제한시간 and stime[1] < 진입제한시간) Then Tcond = false; if (sdate != sdate[1] and stime >= 트레이드종료시간) or (sdate == sdate[1] and stime >= 트레이드종료시간 and stime[1] < 트레이드종료시간) Then ExitShort(); if date != date[1] then { var1 = 0; var2 = 0; t1 = TotalTrades; } if MarketPosition == 0 Then entry = TotalTrades-t1; Else entry = TotalTrades-t1+1; if C <= O+pt and Tcond == true and entry < 거래횟수 Then sell("s"); if MarketPosition == -1 and MaxContracts < n Then sell("ss",AtStop,LatestEntryPrice(0)-Pyra); if MarketPosition == -1 then { if IsEntryName("s1") == true then { ExitShort("sl1",AtStop,EntryPrice+PriceScale*손절); ExitShort("sp1",AtLimit,EntryPrice-PriceScale*익절); ExitShort("str1",AtStop,Lowest(l,BarsSinceEntry)+PriceScale*TR); } } SetStopInactivity(최소가격변화포인트,봉갯수,PointStop);