커뮤니티

해외선물 30분봉 시스템으로 운영하고 있습니다. 시간별로 분할 청산하려고 하는데요~

프로필 이미지
이형지
2018-10-05 08:22:18
197
글번호 122452
답변완료
해외선물(쿠루드오일) 30분봉 시스템으로 운영하고 있습니다. 초보입니다. 30분봉 기준이며 진입 5계약으로 한번에 진입하고요 ( 시스템 설정에서 동일수량진입 5개 ) 청산은 분할로 각각 AM 4시 , 4시30분, 5시 5시30분 6시 (30분마다 1계약식 현재가 매도) 하고 싶습니다. 진입 및 청산 아래식입니다. 오늘 꼭 부탁드리겠습니다. 오늘부터 적용해볼려구요~~~ 아래식은 진입만 설정해 놓았구요... 시스템설정에서 당일청산을 활성화하여 특정시간에 일괄매도로 시행했습니다. 하지만 특정시간을 5회 분할로 청산하려고 하는것입니다. 매수/매도 진입 모두 동일하게 청산도 같이 진행합니다. (위에 언급된 시간에 ) input : P1(1),P2(1),P4(1),P5(1),N1(1),N2(2); var : cnt(0),sum1(0),sum2(0),avg1(0),avg2(0),T(0),mav2(0),mav3(0); var : sum3(0); 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 mav2=p2 ; if T == -1 Then mav2=p5; if T == 1 Then mav3=p1 ; if T == -1 Then mav3=p4 ; sum3 = 0; for cnt = 1 to 20 { sum3 = sum3 + (DayHigh(cnt)-DayLow(cnt)); } value1 = sum3/20 ; If MarketPosition == 0 and C >= (dayopen+value1*mav3) Then { Buy("매수"); } If MarketPosition == 0 and C <= (dayopen-value1*mav2) Then { sell("매도"); } }
시스템
답변 3
프로필 이미지

예스스탁 예스스탁 답변

2018-10-05 14:19:50

안녕하세요 예스스탁입니다. input : P1(1),P2(1),P4(1),P5(1),N1(1),N2(2); var : cnt(0),sum1(0),sum2(0),avg1(0),avg2(0),T(0),mav2(0),mav3(0); var : sum3(0); 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 mav2=p2 ; if T == -1 Then mav2=p5; if T == 1 Then mav3=p1 ; if T == -1 Then mav3=p4 ; sum3 = 0; for cnt = 1 to 20 { sum3 = sum3 + (DayHigh(cnt)-DayLow(cnt)); } value1 = sum3/20 ; If MarketPosition == 0 and C >= (dayopen+value1*mav3) Then { Buy("매수",OnClose,def,5); } If MarketPosition == 0 and C <= (dayopen-value1*mav2) Then { sell("매도",OnClose,def,5); } } if MarketPosition == 1 Then { if stime == 040000 Then ExitLong("bx1",OnClose,def,"",1,1); if stime == 043000 Then ExitLong("bx2",OnClose,def,"",1,1); if stime == 050000 Then ExitLong("bx3",OnClose,def,"",1,1); if stime == 053000 Then ExitLong("bx4",OnClose,def,"",1,1); if stime == 060000 Then ExitLong("bx5",OnClose,def,"",1,1); } if MarketPosition == -1 Then { if stime == 040000 Then ExitShort("sx1",OnClose,def,"",1,1); if stime == 043000 Then ExitShort("sx2",OnClose,def,"",1,1); if stime == 050000 Then ExitShort("sx3",OnClose,def,"",1,1); if stime == 053000 Then ExitShort("sx4",OnClose,def,"",1,1); if stime == 060000 Then ExitShort("sx5",OnClose,def,"",1,1); } 즐거운 하루되세요 > 이형지 님이 쓴 글입니다. > 제목 : 해외선물 30분봉 시스템으로 운영하고 있습니다. 시간별로 분할 청산하려고 하는데요~ > 해외선물(쿠루드오일) 30분봉 시스템으로 운영하고 있습니다. 초보입니다. 30분봉 기준이며 진입 5계약으로 한번에 진입하고요 ( 시스템 설정에서 동일수량진입 5개 ) 청산은 분할로 각각 AM 4시 , 4시30분, 5시 5시30분 6시 (30분마다 1계약식 현재가 매도) 하고 싶습니다. 진입 및 청산 아래식입니다. 오늘 꼭 부탁드리겠습니다. 오늘부터 적용해볼려구요~~~ 아래식은 진입만 설정해 놓았구요... 시스템설정에서 당일청산을 활성화하여 특정시간에 일괄매도로 시행했습니다. 하지만 특정시간을 5회 분할로 청산하려고 하는것입니다. 매수/매도 진입 모두 동일하게 청산도 같이 진행합니다. (위에 언급된 시간에 ) input : P1(1),P2(1),P4(1),P5(1),N1(1),N2(2); var : cnt(0),sum1(0),sum2(0),avg1(0),avg2(0),T(0),mav2(0),mav3(0); var : sum3(0); 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 mav2=p2 ; if T == -1 Then mav2=p5; if T == 1 Then mav3=p1 ; if T == -1 Then mav3=p4 ; sum3 = 0; for cnt = 1 to 20 { sum3 = sum3 + (DayHigh(cnt)-DayLow(cnt)); } value1 = sum3/20 ; If MarketPosition == 0 and C >= (dayopen+value1*mav3) Then { Buy("매수"); } If MarketPosition == 0 and C <= (dayopen-value1*mav2) Then { sell("매도"); } }
프로필 이미지

이형지

2018-10-07 14:01:21

운영자님 요청사항이 있습니다. 설정창에 "강제청산창"에 손절매를 2PT 및 목표수익을 2PT로 해놓은후 시뮬레이션을 돌리면 차트에서 보면 수익실현하고 바로 진입이 되어버리네요... 손절매 또는 목표수익 달성시 5시간안에 진입(매수/매도)이 되지 않도록 할수 있는 수식 좀 부탁드리겠습니다. input : P1(1),P2(1),P4(1),P5(1),N1(1),N2(2); var : cnt(0),sum1(0),sum2(0),avg1(0),avg2(0),T(0),mav2(0),mav3(0); var : sum3(0); 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 mav2=p2 ; if T == -1 Then mav2=p5; if T == 1 Then mav3=p1 ; if T == -1 Then mav3=p4 ; sum3 = 0; for cnt = 1 to 20 { sum3 = sum3 + (DayHigh(cnt)-DayLow(cnt)); } value1 = sum3/20 ; If MarketPosition == 0 and C >= (dayopen+value1*mav3) Then { Buy("매수",OnClose,def,5); } If MarketPosition == 0 and C <= (dayopen-value1*mav2) Then { sell("매도",OnClose,def,5); } } if MarketPosition == 1 Then { if stime == 040000 Then ExitLong("bx1",OnClose,def,"",1,1); if stime == 043000 Then ExitLong("bx2",OnClose,def,"",1,1); if stime == 050000 Then ExitLong("bx3",OnClose,def,"",1,1); if stime == 053000 Then ExitLong("bx4",OnClose,def,"",1,1); if stime == 060000 Then ExitLong("bx5",OnClose,def,"",1,1); } if MarketPosition == -1 Then { if stime == 040000 Then ExitShort("sx1",OnClose,def,"",1,1); if stime == 043000 Then ExitShort("sx2",OnClose,def,"",1,1); if stime == 050000 Then ExitShort("sx3",OnClose,def,"",1,1); if stime == 053000 Then ExitShort("sx4",OnClose,def,"",1,1); if stime == 060000 Then ExitShort("sx5",OnClose,def,"",1,1); }
프로필 이미지

예스스탁 예스스탁 답변

2018-10-08 10:19:58

안녕하세요 예스스탁입니다. input : P1(1),P2(1),P4(1),P5(1),N1(1),N2(2); var : cnt(0),sum1(0),sum2(0),avg1(0),avg2(0),T(0),mav2(0),mav3(0); var : sum3(0); Condition1 = MarketPosition == 0 and ExitDate(1) == sdate and (IsExitName("StopLoss",1) or IsExitName("StopProfitTarget",1)) and TimeToMinutes(stime) <= TimeToMinutes(ExitTime(1))+60; 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 mav2=p2 ; if T == -1 Then mav2=p5; if T == 1 Then mav3=p1 ; if T == -1 Then mav3=p4 ; sum3 = 0; for cnt = 1 to 20 { sum3 = sum3 + (DayHigh(cnt)-DayLow(cnt)); } value1 = sum3/20 ; If MarketPosition == 0 and C >= (dayopen+value1*mav3) and Condition1 == false Then { Buy("매수",OnClose,def,5); } If MarketPosition == 0 and C <= (dayopen-value1*mav2) and Condition1 == false Then { sell("매도",OnClose,def,5); } } if MarketPosition == 1 Then { if stime == 040000 Then ExitLong("bx1",OnClose,def,"",1,1); if stime == 043000 Then ExitLong("bx2",OnClose,def,"",1,1); if stime == 050000 Then ExitLong("bx3",OnClose,def,"",1,1); if stime == 053000 Then ExitLong("bx4",OnClose,def,"",1,1); if stime == 060000 Then ExitLong("bx5",OnClose,def,"",1,1); } if MarketPosition == -1 Then { if stime == 040000 Then ExitShort("sx1",OnClose,def,"",1,1); if stime == 043000 Then ExitShort("sx2",OnClose,def,"",1,1); if stime == 050000 Then ExitShort("sx3",OnClose,def,"",1,1); if stime == 053000 Then ExitShort("sx4",OnClose,def,"",1,1); if stime == 060000 Then ExitShort("sx5",OnClose,def,"",1,1); } 즐거운 하루되세요 > 이형지 님이 쓴 글입니다. > 제목 : Re : Re : 해외선물 30분봉 시스템으로 운영하고 있습니다. 시간별로 분할 청산하려고 > 운영자님 요청사항이 있습니다. 설정창에 "강제청산창"에 손절매를 2PT 및 목표수익을 2PT로 해놓은후 시뮬레이션을 돌리면 차트에서 보면 수익실현하고 바로 진입이 되어버리네요... 손절매 또는 목표수익 달성시 5시간안에 진입(매수/매도)이 되지 않도록 할수 있는 수식 좀 부탁드리겠습니다. input : P1(1),P2(1),P4(1),P5(1),N1(1),N2(2); var : cnt(0),sum1(0),sum2(0),avg1(0),avg2(0),T(0),mav2(0),mav3(0); var : sum3(0); 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 mav2=p2 ; if T == -1 Then mav2=p5; if T == 1 Then mav3=p1 ; if T == -1 Then mav3=p4 ; sum3 = 0; for cnt = 1 to 20 { sum3 = sum3 + (DayHigh(cnt)-DayLow(cnt)); } value1 = sum3/20 ; If MarketPosition == 0 and C >= (dayopen+value1*mav3) Then { Buy("매수",OnClose,def,5); } If MarketPosition == 0 and C <= (dayopen-value1*mav2) Then { sell("매도",OnClose,def,5); } } if MarketPosition == 1 Then { if stime == 040000 Then ExitLong("bx1",OnClose,def,"",1,1); if stime == 043000 Then ExitLong("bx2",OnClose,def,"",1,1); if stime == 050000 Then ExitLong("bx3",OnClose,def,"",1,1); if stime == 053000 Then ExitLong("bx4",OnClose,def,"",1,1); if stime == 060000 Then ExitLong("bx5",OnClose,def,"",1,1); } if MarketPosition == -1 Then { if stime == 040000 Then ExitShort("sx1",OnClose,def,"",1,1); if stime == 043000 Then ExitShort("sx2",OnClose,def,"",1,1); if stime == 050000 Then ExitShort("sx3",OnClose,def,"",1,1); if stime == 053000 Then ExitShort("sx4",OnClose,def,"",1,1); if stime == 060000 Then ExitShort("sx5",OnClose,def,"",1,1); }