커뮤니티

시가매수 문의

프로필 이미지
착한이
2013-12-09 11:03:55
217
글번호 70221
답변완료
수고하십니다. 아래와 같이 옵션만기일을 제외하고 시가매수하여 종가매도하려고 하는데 옵션만기일 근처에 제대로 신호가 안나오는데 수정부탁드립니다. Var : ExitTime(150400),TimeDelay(0); Var : DateChecked(False), StopTrading(False); Var : va1(0), va2(0), va3(0); //옵션만기일 청산 va1= int(date/100)-int(date/10000)*100; va2= date - int(date/100)*100; va3= DayOfWeek(date); If va1%1 == 0 And va2 >= 8 And va2 <= 14 And va3 == 4 Then { StopTrading = True; } If STime == 151500 and !StopTrading Then { Buy("Buy", AtMarket, 1); } If Time >= ExitTime Then Begin ExitShort("DayEnd ExitShort"); ExitLong("DayEnd ExitLong"); DateChecked = False; StopTrading = False; End;
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2013-12-09 11:46:18

안녕하세요 예스스탁입니다. 해당식은 만기일 다음날만시초가에 신호가 발생하지 않는 식입니다. 위 내용이 맞으시면 해당식 정상적으로 신호가 발생하고 있습니다. 만약 만기일날에 시초가에 매수를 안하고자 하시면 아래와 같이 작성해 사용하셔야 합니다. 해당식은 전일 마지막봉에 if문을 충족시켜 다음날 시초가 들어올때 신호가 발생하는 것이므로 2번째 주 수요일에 StopTrading을 true로 만들어 다음날 시초가에 신호가 안나오게 하셔야 합니다. Var : ExitTime(150400),TimeDelay(0); Var : DateChecked(False), StopTrading(False); Var : va1(0), va2(0), va3(0); //옵션만기일 청산 va1= int(date/100)-int(date/10000)*100; va2= date - int(date/100)*100; va3= DayOfWeek(date); If va1%1 == 0 And va2 >= 8 And va2 <= 14 And va3 == 3 Then { StopTrading = True; } If STime == 151500 and StopTrading == false Then { Buy("Buy", AtMarket,def, 1); } If Time >= ExitTime Then Begin ExitShort("DayEnd ExitShort"); ExitLong("DayEnd ExitLong"); DateChecked = False; StopTrading = False; End; 전일 마지막봉에 if문을 충족시켜 다음날 시초가 들어올때 신호가 발생하는 타입이므로 마지막봉은 시간으로만 지정이 가능합니다. 그러므로 마지막봉으로 지정한 시간에 끝나지 않으면 신호가 발생하지 않고 해당 부분은 따로 처리가 되지 않습니다. 즐거운 하루되세요 > 착한이 님이 쓴 글입니다. > 제목 : 시가매수 문의 > 수고하십니다. 아래와 같이 옵션만기일을 제외하고 시가매수하여 종가매도하려고 하는데 옵션만기일 근처에 제대로 신호가 안나오는데 수정부탁드립니다. Var : ExitTime(150400),TimeDelay(0); Var : DateChecked(False), StopTrading(False); Var : va1(0), va2(0), va3(0); //옵션만기일 청산 va1= int(date/100)-int(date/10000)*100; va2= date - int(date/100)*100; va3= DayOfWeek(date); If va1%1 == 0 And va2 >= 8 And va2 <= 14 And va3 == 4 Then { StopTrading = True; } If STime == 151500 and !StopTrading Then { Buy("Buy", AtMarket, 1); } If Time >= ExitTime Then Begin ExitShort("DayEnd ExitShort"); ExitLong("DayEnd ExitLong"); DateChecked = False; StopTrading = False; End;