커뮤니티

문의드립니다.

프로필 이미지
방국봉
2023-03-12 23:11:51
1226
글번호 167069
답변완료
안녕하세요~ 아래 수식은 종목은 항셍이며 오전 10시 15분 부터 익일 4시까지 진입하며 당일 누적 수익이 100틱이 되면 진입 금지가 되는 수식입니다. 수식에서 한 가지가 생각대로 되지 않아 수정 부탁드립니다. 새벽 4시, 장이 마감될 때까지도 진입된 포지션이 있다면 다시말해 청산되지 않는 포지션이 남아있다면 다음날 오전 10시 15분, 장이 시작될 때 잔여 포지션이 무조건 청산 되는 문제가 있습니다. 날이 바뀌어 다음날 10시 15분, 장이 시작해도 전날 진입한 포지션이 무조건 청산되지 않게 수정 부탁드립니다. Input : shortPeriod(5), longPeriod(20); value1 = ma(C, shortPeriod); value2 = ma(C, longPeriod); input : StartTime(101500),EndTime(040000); Var : N1(0),dayPl(0),당일수익(0),당일손실(0),Xcond(false); var : Tcond(false); if sdate != sDate[1] Then SetStopEndofday(Endtime); if (sdate != sdate[1] and stime >= EndTime) or (sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then Tcond = False; if (sdate != sdate[1] and stime >= StartTime) or (sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then { SetStopEndofday(0); Tcond = true; } Input : 당일수익틱수(100); 당일수익 = PriceScale*당일수익틱수; if Bdate != Bdate[1] Then { Xcond = false; N1 = NetProfit; } daypl = NetProfit-N1; if TotalTrades > TotalTrades[1] then { if daypl >= 당일수익 Then Xcond = true; } if Xcond == false and Tcond == true then { if CrossUP(value1, value2) Then Buy("W_B"); if CrossDown(value1, value2) Then Sell("W_S"); } Input:ProfitTarget(50),StopLoss(0); SetStopProfitTarget(ProfitTarget*PriceScale,PointStop); SetStopLoss(StopLoss*PriceScale,PointStop);
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2023-03-13 19:12:34

안녕하세요 예스스탁입니다. 현재 수식에 SetStopEndofday로 당일청산하는 내용이 있습니다. 4시 이후 첫틱이 들어오면 청산하게 됩니다. 올려주신 내용이면 04시에 청산하는 내용을 제거하셔야 합니다. Input : shortPeriod(5), longPeriod(20); value1 = ma(C, shortPeriod); value2 = ma(C, longPeriod); input : StartTime(101500),EndTime(040000); Var : N1(0),dayPl(0),당일수익(0),당일손실(0),Xcond(false); var : Tcond(false); if (sdate != sdate[1] and stime >= EndTime) or (sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then Tcond = False; if (sdate != sdate[1] and stime >= StartTime) or (sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then { Tcond = true; } Input : 당일수익틱수(100); 당일수익 = PriceScale*당일수익틱수; if Bdate != Bdate[1] Then { Xcond = false; N1 = NetProfit; } daypl = NetProfit-N1; if TotalTrades > TotalTrades[1] then { if daypl >= 당일수익 Then Xcond = true; } if Xcond == false and Tcond == true then { if CrossUP(value1, value2) Then Buy("W_B"); if CrossDown(value1, value2) Then Sell("W_S"); } Input:ProfitTarget(50),StopLoss(0); SetStopProfitTarget(ProfitTarget*PriceScale,PointStop); SetStopLoss(StopLoss*PriceScale,PointStop); 즐거운 하루되세요 > 방국봉 님이 쓴 글입니다. > 제목 : 문의드립니다. > 안녕하세요~ 아래 수식은 종목은 항셍이며 오전 10시 15분 부터 익일 4시까지 진입하며 당일 누적 수익이 100틱이 되면 진입 금지가 되는 수식입니다. 수식에서 한 가지가 생각대로 되지 않아 수정 부탁드립니다. 새벽 4시, 장이 마감될 때까지도 진입된 포지션이 있다면 다시말해 청산되지 않는 포지션이 남아있다면 다음날 오전 10시 15분, 장이 시작될 때 잔여 포지션이 무조건 청산 되는 문제가 있습니다. 날이 바뀌어 다음날 10시 15분, 장이 시작해도 전날 진입한 포지션이 무조건 청산되지 않게 수정 부탁드립니다. Input : shortPeriod(5), longPeriod(20); value1 = ma(C, shortPeriod); value2 = ma(C, longPeriod); input : StartTime(101500),EndTime(040000); Var : N1(0),dayPl(0),당일수익(0),당일손실(0),Xcond(false); var : Tcond(false); if sdate != sDate[1] Then SetStopEndofday(Endtime); if (sdate != sdate[1] and stime >= EndTime) or (sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then Tcond = False; if (sdate != sdate[1] and stime >= StartTime) or (sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then { SetStopEndofday(0); Tcond = true; } Input : 당일수익틱수(100); 당일수익 = PriceScale*당일수익틱수; if Bdate != Bdate[1] Then { Xcond = false; N1 = NetProfit; } daypl = NetProfit-N1; if TotalTrades > TotalTrades[1] then { if daypl >= 당일수익 Then Xcond = true; } if Xcond == false and Tcond == true then { if CrossUP(value1, value2) Then Buy("W_B"); if CrossDown(value1, value2) Then Sell("W_S"); } Input:ProfitTarget(50),StopLoss(0); SetStopProfitTarget(ProfitTarget*PriceScale,PointStop); SetStopLoss(StopLoss*PriceScale,PointStop);