커뮤니티

기존 수식에 해외선물 토요일 새벽 5시 30분에 무조건 청산하는 수식을 넣어주시면 감사합니

프로필 이미지
이형지
2019-01-23 08:54:24
155
글번호 125507
답변완료
아래 제가 사용하는 수식인데요... 주말에는 편하게 지내고 싶어서 30분봉으로 운영하고 있습니다. 토요일 새벽 5시 30분에는 무조건(수익이든 아니든) 청산하는 수식 반영 부탁해요~~ ================================================================ input : p1(10),p2(10),af(0.02), maxAF(0.2); input : 즉시익절1(50),봉완성익절1(10),올랐다본전틱수1(34),본전청산1(-34),즉시손절1(76),봉완성손절1(69); input : 즉시익절2(2),봉완성익절2(5),올랐다본전틱수2(33),본전청산2(-11),즉시손절2(82),봉완성손절2(69); input : N1(1),N2(2); Input :N3(5),N4(3),매수제한(0.1),매도제한(0.14); input : 즉시익절3(8),봉완성익절3(54),올랐다본전틱수3(25),본전청산3(-35),즉시손절3(76),봉완성손절3(69); input : 즉시익절4(8),봉완성익절4(50),올랐다본전틱수4(35),본전청산4(-12),즉시손절4(63),봉완성손절4(53); var : cnt(0),sum1(0),sum2(0),avg1(0),avg2(0),avg3(0),T(0),mav2(0),mav3(0),value(0); var : sum3(0),Tcond(false); var1 = CSar(af,maxAF); Var4 = highest(H,N3); Var5 = lowest(L,N3); var1 = CSar(af,maxAF); Var6 = highest(H,N4); Var7 = lowest(L,N4); if DayClose(N2) > 0 Then { sum1 = 0; sum2 = 0; for cnt = 0 to N2-1 { if cnt < N1 Then sum1 = sum1 + DayClose(cnt); if cnt < N2 Then sum2 = sum2 + DayClose(cnt+1); } avg1 = sum1/N1; avg2 = sum2/N2; T = 0; if avg1 >= avg2 Then T = 1; if avg1 < avg2 Then T = -1; if T == 1 Then { #골드가 발생하면 if var1 > C Then { #value1에 봉번호 저장 value1 = index; #value2에 종가 저장 value2 = C; } #데드가 발생하면 If var1 < C Then { #value3에 봉번호 저장 value3 = index; #value4에 종가 저장 value4 = C; } #무포지션이고 #골드이후 10개봉이상 경과했고 #종가가 직전 10봉의 최고가보다 크고 #종가가 골드봉의 종가보다 크면 #매수 if MarketPosition == 0 and index >= value1+P1 and C > highest(H,P1)[1] and C <= Var4-(Var4-Var5)*매수제한 and C > value2 then buy("매수",OnClose,def,1); #무포지션이고 #데드이후 10개봉이상 경과했고 #종가가 직전 10봉의 최저가보다 작고 #종가가 데드봉의 종가보다 작으면 #매도 if MarketPosition == 0 and index >= value3+P2 and C < Lowest(L,P2)[1] and C >= Var7+(Var6-Var7)*매도제한 and C < value4 then Sell("매도",OnClose,def,1); if MarketPosition == 1 then { ExitLong("즉시익절1",AtLimit,EntryPrice+PriceScale*즉시익절1); if C >= EntryPrice+PriceScale*봉완성익절1 Then ExitLong("봉완성익절1"); if highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*올랐다본전틱수1 Then ExitLong("본전청산1",AtStop,EntryPrice+PriceScale*(본전청산1)); ExitLong("즉시손절1",AtStop,EntryPrice-PriceScale*즉시손절1); if c <= EntryPrice-PriceScale*봉완성손절1 Then ExitLong("봉완성손절1"); } if MarketPosition == -1 then { ExitShort("즉시익절2",AtLimit,EntryPrice-PriceScale*즉시익절2); if C <= EntryPrice-PriceScale*봉완성익절2 Then ExitShort("봉완성익절2"); if lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*올랐다본전틱수2 Then ExitShort("본전청산2",AtStop,EntryPrice-PriceScale*(본전청산2)); ExitShort("즉시손절2",AtStop,EntryPrice+PriceScale*즉시손절2); if c >= EntryPrice+PriceScale*봉완성손절2 Then ExitShort("봉완성손절2"); } } } if T == -1 Then { #골드가 발생하면 if var1 > C Then { #value1에 봉번호 저장 value1 = index; #value2에 종가 저장 value2 = C; } #데드가 발생하면 If var1 < C Then { #value3에 봉번호 저장 value3 = index; #value4에 종가 저장 value4 = C; } #무포지션이고 #골드이후 10개봉이상 경과했고 #종가가 직전 10봉의 최고가보다 크고 #종가가 골드봉의 종가보다 크면 #매수 if MarketPosition == 0 and index >= value1+P1 and C > highest(H,P1)[1] and C <= Var4-(Var4-Var5)*매수제한 and C > value2 then buy("매수2",OnClose,def,1); #무포지션이고 #데드이후 10개봉이상 경과했고 #종가가 직전 10봉의 최저가보다 작고 #종가가 데드봉의 종가보다 작으면 #매도 if MarketPosition == 0 and index >= value3+P2 and C < Lowest(L,P2)[1] and C >= Var7+(Var6-Var7)*매도제한 and C < value4 then Sell("매도2",OnClose,def,1); if MarketPosition == 1 then { ExitLong("즉시익절3",AtLimit,EntryPrice+PriceScale*즉시익절3); if C >= EntryPrice+PriceScale*봉완성익절3 Then ExitLong("봉완성익절3"); if highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*올랐다본전틱수3 Then ExitLong("본전청산3",AtStop,EntryPrice+PriceScale*(본전청산3)); ExitLong("즉시손절3",AtStop,EntryPrice-PriceScale*즉시손절3); if c <= EntryPrice-PriceScale*봉완성손절3 Then ExitLong("봉완성손절3"); } if MarketPosition == -1 then { ExitShort("즉시익절4",AtLimit,EntryPrice-PriceScale*즉시익절4); if C <= EntryPrice-PriceScale*봉완성익절4 Then ExitShort("봉완성익절4"); if lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*올랐다본전틱수4 Then ExitShort("본전청산4",AtStop,EntryPrice-PriceScale*(본전청산4)); ExitShort("즉시손절4",AtStop,EntryPrice+PriceScale*즉시손절4); if c >= EntryPrice+PriceScale*봉완성손절4 Then ExitShort("봉완성손절4"); } } ===========================================
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2019-01-24 14:22:17

안녕하세요 예스스탁입니다. 수식 하단에 아래식 추가하시면 됩니다. if bdate != bdate[1] Then SetStopEndofday(0); if sdate != sdate[1] and DayOfWeek(sdate) == 6 Then SetStopEndofday(053000); 즐거운 하루되세요 > 이형지 님이 쓴 글입니다. > 제목 : 기존 수식에 해외선물 토요일 새벽 5시 30분에 무조건 청산하는 수식을 넣어주시면 감