커뮤니티

만기롤오버

프로필 이미지
회원
2013-05-20 14:27:14
269
글번호 63371
답변완료

첨부 이미지

안녕하세요. 아래와 같이 만기롤오버하는 식을 게시판에 나와있는 식과 동일하게 적용하였으나, 만기일 익일 제대로 작동하지 않네요. 오류 개선 부탁드려요. 3월 14일 만기일 진입하였고, 당일 청산하였습니다. 그런데 익일인 3월 15일 바로 매도 진입하지 않고, 시스템 조건에 의해 오후 1시 15분경에 진입하네요. 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%3 == 0 And Va2 >= 8 And Va2 <= 14 And Va3 == 4 Then { Condition1 = true; SetStopEndofday(143000); } Else {SetStopEndofday(0); Condition1 = false;} //만기일 다음날 첫봉 if date != date[1] and Condition1 == false and Condition1[1] == true Then{ if IsExitName("StopEndofday",1) == true and MarketPosition(1) == 1 Then buy(); if IsExitName("StopEndofday",1) == true and MarketPosition(1) == -1 Then sell(); }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2013-05-20 22:01:22

안녕하세요 예스스탁입니다. 수식에 참조데이터를 사용하시는것 같습니다. 식을 수정했습니다. Var : Va1(0,data1), Va2(0,data1), Va3(0,data1),cond(false,data1); Va1 = data1(Int(Date/100)-Int(Date/10000)*100); Va2 = data1(Date - Int(Date/100)*100); Va3 = data1(DayOfWeek(Date)); if sdate == 20130314 and stime == 120000 Then{ buy(); } If Va1%3 == 0 And Va2 >= 8 And Va2 <= 14 And Va3 == 4 Then { Cond = true; SetStopEndofday(143000); } Else { SetStopEndofday(0); Cond = false; } //만기일 다음날 첫봉 if data1(date != date[1] and Cond == false and Cond[1] == true) Then{ if IsExitName("StopEndofday",1) == true and MarketPosition(1) == 1 Then buy("만기다음날매수"); if IsExitName("StopEndofday",1) == true and MarketPosition(1) == -1 Then sell("만기다음날매도"); } 즐거운 하루되세요 > HI_chakanee 님이 쓴 글입니다. > 제목 : 만기롤오버 > 안녕하세요. 아래와 같이 만기롤오버하는 식을 게시판에 나와있는 식과 동일하게 적용하였으나, 만기일 익일 제대로 작동하지 않네요. 오류 개선 부탁드려요. 3월 14일 만기일 진입하였고, 당일 청산하였습니다. 그런데 익일인 3월 15일 바로 매도 진입하지 않고, 시스템 조건에 의해 오후 1시 15분경에 진입하네요. 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%3 == 0 And Va2 >= 8 And Va2 <= 14 And Va3 == 4 Then { Condition1 = true; SetStopEndofday(143000); } Else {SetStopEndofday(0); Condition1 = false;} //만기일 다음날 첫봉 if date != date[1] and Condition1 == false and Condition1[1] == true Then{ if IsExitName("StopEndofday",1) == true and MarketPosition(1) == 1 Then buy(); if IsExitName("StopEndofday",1) == true and MarketPosition(1) == -1 Then sell(); }