커뮤니티

문의 드립니다.

프로필 이미지
푸른
2022-09-18 22:03:36
1431
글번호 162261
답변완료
1. input : 익절틱수(150),손절틱수(30); var : DD(0),Year(0),V1(0),V2(0),V3(0),V4(0),summer(False); var : ST(0),ET(0),entry(0); if NextBarSdate != sDate Then { DD = DayOfWeek(NextBarSdate); Year = Floor(NextBarSdate/10000); V1 = (10000 * Year) + (100 * 3) + 1; V2 = 15 - dayofweek(v1); v3 = (10000 * Year) + (100 * 11) + 1; v4 = 8 - dayofweek(v3); Summer = NextBarSdate > (10000 * Year) + (100 * 3) + v2 And NextBarSdate < (10000 * Year) + (100 * 11) + v4; if summer == true Then { ST = 70000; ET = 55000; } Else { ST = 80000; ET = 65000; } } if Year > 0 Then { IF ET > ST Then SetStopEndofday(ET); Else { if sDate != sDate[1] Then SetStopEndofday(ET); } if Bdate != Bdate[1] Then { entry = 0; } if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or (MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then entry = entry+1; if ((NextBarSdate != sDate and NextBarStime >= ST) or (NextBarSdate == sDate and NextBarStime >= ST and sTime < ST)) Then { IF ET <= ST Then { SetStopEndofday(0); } if NextBarOpen > C Then { Buy("b1",AtStop,NextBarOpen+PriceScale*1); Sell("s1",AtStop,NextBarOpen-PriceScale*1); } if NextBarOpen < C Then { ExitLong("bx1",AtStop,NextBarOpen-PriceScale*1); ExitShort("sx1",AtStop,NextBarOpen+PriceScale*1); } } Else { if DayHigh < DayOpen+PriceScale*1 and DayOpen > DayClose(1) and entry < 1 Then Buy("b2",AtStop,DayOpen+PriceScale*1); if DayLow > DayOpen-PriceScale*1 and DayOpen > DayClose(1) and entry < 1 Then Sell("s2",AtStop,DayOpen-PriceScale*1); if DayOpen < DayClose(1) Then { if DayLow > DayOpen-PriceScale*1 Then ExitLong("bx2",AtStop,DayOpen-PriceScale*1); if DayHigh < DayOpen+PriceScale*1 Then ExitShort("sx2",AtStop,DayOpen+PriceScale*1); } } } SetStopProfittarget(PriceScale*익절틱수,PointStop); SetStopLoss(PriceScale*손절틱수,PointStop); 2. input : 익절틱수(160),손절틱수(30); if NextBarSdate != sDate Then { if NextBarOpen < C Then { Buy("b",AtStop,NextBarOpen+PriceScale*1); Sell("s",AtStop,NextBarOpen-PriceScale*1); } if NextBarOpen > C Then { ExitLong("bx",AtStop,NextBarOpen-PriceScale*1); ExitShort("sx",AtStop,NextBarOpen+PriceScale*1); } } SetStopProfittarget(PriceScale*익절틱수,PointStop); SetStopLoss(PriceScale*손절틱수,PointStop); if MarketPosition == 1 Then Sell("s1",AtStop,EntryPrice-2); if MarketPosition == -1 Then Buy("b1",AtStop,EntryPrice+2); if MarketPosition == 1 Then Sell("s2",AtStop,EntryPrice-4); if MarketPosition == -1 Then Buy("b2",AtStop,EntryPrice+4); 3. input : 익절틱수(160),손절틱수(30); if NextBarSdate != sDate Then { if NextBarOpen > C Then { Buy("b",AtStop,NextBarOpen+PriceScale*1); ExitLong("bx",AtLimit, NextBarOpen+PriceScale*1+(H-L)*0.7); } if NextBarOpen < C Then { Sell("s",AtStop,NextBarOpen-PriceScale*1); ExitShort("sx",AtLimit,NextBarOpen-PriceScale*1-(H-L)*0.7); } } SetStopProfittarget(PriceScale*익절틱수,PointStop); SetStopLoss(PriceScale*손절틱수,PointStop); 위 3가지 수식은 일봉매매 수식어입니다. 당일 익절이 장종료 5분전까지 없을때 그 5분의 싯점에 자동청산되는 수식어를 추가하고자 합니다.
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2022-09-19 10:46:27

안녕하세요 예스스탁입니다. 당일청산은 분봉이하 주기에 적용하는 시스템에만 가능합니다. if문이 봉완성 기준이라 일봉 장종료 5분전을 지정하지 못합니다. 즐거운 하루되세요 > 푸른 님이 쓴 글입니다. > 제목 : 문의 드립니다. > 1. input : 익절틱수(150),손절틱수(30); var : DD(0),Year(0),V1(0),V2(0),V3(0),V4(0),summer(False); var : ST(0),ET(0),entry(0); if NextBarSdate != sDate Then { DD = DayOfWeek(NextBarSdate); Year = Floor(NextBarSdate/10000); V1 = (10000 * Year) + (100 * 3) + 1; V2 = 15 - dayofweek(v1); v3 = (10000 * Year) + (100 * 11) + 1; v4 = 8 - dayofweek(v3); Summer = NextBarSdate > (10000 * Year) + (100 * 3) + v2 And NextBarSdate < (10000 * Year) + (100 * 11) + v4; if summer == true Then { ST = 70000; ET = 55000; } Else { ST = 80000; ET = 65000; } } if Year > 0 Then { IF ET > ST Then SetStopEndofday(ET); Else { if sDate != sDate[1] Then SetStopEndofday(ET); } if Bdate != Bdate[1] Then { entry = 0; } if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or (MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then entry = entry+1; if ((NextBarSdate != sDate and NextBarStime >= ST) or (NextBarSdate == sDate and NextBarStime >= ST and sTime < ST)) Then { IF ET <= ST Then { SetStopEndofday(0); } if NextBarOpen > C Then { Buy("b1",AtStop,NextBarOpen+PriceScale*1); Sell("s1",AtStop,NextBarOpen-PriceScale*1); } if NextBarOpen < C Then { ExitLong("bx1",AtStop,NextBarOpen-PriceScale*1); ExitShort("sx1",AtStop,NextBarOpen+PriceScale*1); } } Else { if DayHigh < DayOpen+PriceScale*1 and DayOpen > DayClose(1) and entry < 1 Then Buy("b2",AtStop,DayOpen+PriceScale*1); if DayLow > DayOpen-PriceScale*1 and DayOpen > DayClose(1) and entry < 1 Then Sell("s2",AtStop,DayOpen-PriceScale*1); if DayOpen < DayClose(1) Then { if DayLow > DayOpen-PriceScale*1 Then ExitLong("bx2",AtStop,DayOpen-PriceScale*1); if DayHigh < DayOpen+PriceScale*1 Then ExitShort("sx2",AtStop,DayOpen+PriceScale*1); } } } SetStopProfittarget(PriceScale*익절틱수,PointStop); SetStopLoss(PriceScale*손절틱수,PointStop); 2. input : 익절틱수(160),손절틱수(30); if NextBarSdate != sDate Then { if NextBarOpen < C Then { Buy("b",AtStop,NextBarOpen+PriceScale*1); Sell("s",AtStop,NextBarOpen-PriceScale*1); } if NextBarOpen > C Then { ExitLong("bx",AtStop,NextBarOpen-PriceScale*1); ExitShort("sx",AtStop,NextBarOpen+PriceScale*1); } } SetStopProfittarget(PriceScale*익절틱수,PointStop); SetStopLoss(PriceScale*손절틱수,PointStop); if MarketPosition == 1 Then Sell("s1",AtStop,EntryPrice-2); if MarketPosition == -1 Then Buy("b1",AtStop,EntryPrice+2); if MarketPosition == 1 Then Sell("s2",AtStop,EntryPrice-4); if MarketPosition == -1 Then Buy("b2",AtStop,EntryPrice+4); 3. input : 익절틱수(160),손절틱수(30); if NextBarSdate != sDate Then { if NextBarOpen > C Then { Buy("b",AtStop,NextBarOpen+PriceScale*1); ExitLong("bx",AtLimit, NextBarOpen+PriceScale*1+(H-L)*0.7); } if NextBarOpen < C Then { Sell("s",AtStop,NextBarOpen-PriceScale*1); ExitShort("sx",AtLimit,NextBarOpen-PriceScale*1-(H-L)*0.7); } } SetStopProfittarget(PriceScale*익절틱수,PointStop); SetStopLoss(PriceScale*손절틱수,PointStop); 위 3가지 수식은 일봉매매 수식어입니다. 당일 익절이 장종료 5분전까지 없을때 그 5분의 싯점에 자동청산되는 수식어를 추가하고자 합니다.