커뮤니티

함수변환 요청

프로필 이미지
흰둥이아빠
2019-01-08 16:30:23
217
글번호 125077
답변완료
안녕하세요? 함수요청드립니다. 아래는 하나대투에서 사용했던 시그널메이커로 작성된 스크립트로 해외선물 크루드오일 1분봉으로 작성된 로직입니다. 한국투자증권에서 사용할 수 있도록 함수변환 요청드립니다. 1. 써머타임 적용시 1-1. 22시 31분봉(22:30:00~22:30:59) == 해당봉이 양봉이면 22시 32분에 매수 진입 가. 0시 0분봉(23:59:00~23:59:59) == 해당봉이 양봉이면 익봉 시가에 추가매수 나. 0시 0분봉(23:59:00~23:59:59) == 해당봉이 음봉이면 익봉 시가에 매수청산 1-2. 22시 31분봉(22:30:00~22:30:59) == 해당봉이 음봉이면 22시 32분에 매도 진입 가. 0시 0분봉(23:59:00~23:59:59) == 해당봉이 양봉이면 익봉 시가에 매도청산 나. 0시 0분봉(23:59:00~23:59:59) == 해당봉이 음봉이면 익봉 시가에 추가매도 1-3. 강제청산: 익일 오전 3시 1분 시가봉 2. 써머타임 해제시 2-1. 23시 31분봉(22:30:00~22:30:59) == 해당봉이 양봉이면 23시 32분에 매수 진입 가. 0시 0분봉(23:59:00~23:59:59) == 해당봉이 양봉이면 익봉 시가에 추가매수 나. 0시 0분봉(23:59:00~23:59:59) == 해당봉이 음봉이면 익봉 시가에 매수청산 2-2. 23시 31분봉(22:30:00~22:30:59) == 해당봉이 음봉이면 23시 32분에 매도 진입 가. 0시 0분봉(23:59:00~23:59:59) == 해당봉이 양봉이면 익봉 시가에 매도청산 나. 0시 0분봉(23:59:00~23:59:59) == 해당봉이 음봉이면 익봉 시가에 추가매도 2-3. 강제청산: 익일 오전 4시 1분 시가봉 영업일 기준으로 당일 진입, 당일 청산입니다 ------------------------------------------------------------------------------------- Vars : st(0), et(0), vExTime(0), vEntryT(0); V1 = Dayofweek((10000 * Year(D)) + (100 * 3) + 1); If V1 = 0 Then Value2 = 8 Else Value2 = 15 - V1; // 3월 두번째 일요일 날짜 V2 = Dayofweek((10000 * Year(D)) + (100 * 11) + 1); If V2 = 0 Then Value4 = 1 Else value4 = 8 - V2; // 11월 첫번째 일요일 날짜 If date > (10000 * Year(D)) + (100 * 3) + value2 And date < (10000 * Year(D)) + (100 * 11) + value4 Then Begin st = 070000; // 써머타임 적용 시, 장시작 시간 et = 060000; // 써머타임 적용 시, 장종료 시간 vEntryT = 223100; vExTime = 030100; End Else Begin st = 080000; // 장 시작 시간 et = 070000; // 장 종료 시간 vEntryT = 233100; vExTime = 040100; End; condition1 = (IntPortion(time/10000) > IntPortion(et/10000) And IntPortion(time[1]/10000) <= IntPortion(et/10000)) Or st <> st[1]; ///////////////////////////////////////////////////////////////// Vars : SP(0); SP = SignalPosition; If TIME = vEntryT And SP = 0 Then Begin If C > O Then Buy("B", Atmarket) Else Sell("S", Atmarket); End; If TIME[2] < TIME[1] And TIME[1] > TIME Then Begin If SP = 1 Then Begin IF C > O Then Buy("reB") Else ExitLong("ExL"); End; If SP = -1 Then Begin If C < O Then Sell("reS") Else ExitShort("ExS"); End; End; SetStopEndofday(vExTime);
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2019-01-10 10:38:20

안녕하세요 예스스탁입니다. Vars : st(0), et(0), vExTime(0), vEntryT(0); var : Year(0),V1(0),V2(0); Year = Floor(sdate/10000); V1 = Dayofweek((10000 * Year) + (100 * 3) + 1); If V1 == 0 Then Value2 = 8; Else Value2 = 15 - V1; // 3월 두번째 일요일 날짜 V2 = Dayofweek((10000 * Year) + (100 * 11) + 1); If V2 == 0 Then Value4 = 1; Else value4 = 8 - V2; // 11월 첫번째 일요일 날짜 If sdate > (10000 * Year) + (100 * 3) + value2 And sdate < (10000 * Year) + (100 * 11) + value4 Then Begin st = 070000; // 써머타임 적용 시, 장시작 시간 et = 060000; // 써머타임 적용 시, 장종료 시간 vEntryT = 223100; vExTime = 030100; End Else Begin st = 080000; // 장 시작 시간 et = 070000; // 장 종료 시간 vEntryT = 233100; vExTime = 040100; End; condition1 = (IntPortion(time/10000) > IntPortion(et/10000) And IntPortion(time[1]/10000) <= IntPortion(et/10000)) Or st <> st[1]; ///////////////////////////////////////////////////////////////// Vars : SP(0); SP = MarketPosition; If sTIME == vEntryT And SP == 0 Then Begin If C > O Then Buy("B", Atmarket); Else Sell("S", Atmarket); End; If sTime[2] < sTime[1] And sTime[1] > sTime Then Begin If SP == 1 Then Begin IF C > O Then Buy("reB"); Else ExitLong("ExL"); End; If SP == -1 Then Begin If C < O Then Sell("reS"); Else ExitShort("ExS"); End; End; if sdate != sdate[1] Then SetStopEndofday(vExTime); if bdate != bdate[1] Then SetStopEndofday(0); 즐거운 하루되세요 > 흰둥이아빠 님이 쓴 글입니다. > 제목 : 함수변환 요청 > 안녕하세요? 함수요청드립니다. 아래는 하나대투에서 사용했던 시그널메이커로 작성된 스크립트로 해외선물 크루드오일 1분봉으로 작성된 로직입니다. 한국투자증권에서 사용할 수 있도록 함수변환 요청드립니다. 1. 써머타임 적용시 1-1. 22시 31분봉(22:30:00~22:30:59) == 해당봉이 양봉이면 22시 32분에 매수 진입 가. 0시 0분봉(23:59:00~23:59:59) == 해당봉이 양봉이면 익봉 시가에 추가매수 나. 0시 0분봉(23:59:00~23:59:59) == 해당봉이 음봉이면 익봉 시가에 매수청산 1-2. 22시 31분봉(22:30:00~22:30:59) == 해당봉이 음봉이면 22시 32분에 매도 진입 가. 0시 0분봉(23:59:00~23:59:59) == 해당봉이 양봉이면 익봉 시가에 매도청산 나. 0시 0분봉(23:59:00~23:59:59) == 해당봉이 음봉이면 익봉 시가에 추가매도 1-3. 강제청산: 익일 오전 3시 1분 시가봉 2. 써머타임 해제시 2-1. 23시 31분봉(22:30:00~22:30:59) == 해당봉이 양봉이면 23시 32분에 매수 진입 가. 0시 0분봉(23:59:00~23:59:59) == 해당봉이 양봉이면 익봉 시가에 추가매수 나. 0시 0분봉(23:59:00~23:59:59) == 해당봉이 음봉이면 익봉 시가에 매수청산 2-2. 23시 31분봉(22:30:00~22:30:59) == 해당봉이 음봉이면 23시 32분에 매도 진입 가. 0시 0분봉(23:59:00~23:59:59) == 해당봉이 양봉이면 익봉 시가에 매도청산 나. 0시 0분봉(23:59:00~23:59:59) == 해당봉이 음봉이면 익봉 시가에 추가매도 2-3. 강제청산: 익일 오전 4시 1분 시가봉 영업일 기준으로 당일 진입, 당일 청산입니다 ------------------------------------------------------------------------------------- Vars : st(0), et(0), vExTime(0), vEntryT(0); V1 = Dayofweek((10000 * Year(D)) + (100 * 3) + 1); If V1 = 0 Then Value2 = 8 Else Value2 = 15 - V1; // 3월 두번째 일요일 날짜 V2 = Dayofweek((10000 * Year(D)) + (100 * 11) + 1); If V2 = 0 Then Value4 = 1 Else value4 = 8 - V2; // 11월 첫번째 일요일 날짜 If date > (10000 * Year(D)) + (100 * 3) + value2 And date < (10000 * Year(D)) + (100 * 11) + value4 Then Begin st = 070000; // 써머타임 적용 시, 장시작 시간 et = 060000; // 써머타임 적용 시, 장종료 시간 vEntryT = 223100; vExTime = 030100; End Else Begin st = 080000; // 장 시작 시간 et = 070000; // 장 종료 시간 vEntryT = 233100; vExTime = 040100; End; condition1 = (IntPortion(time/10000) > IntPortion(et/10000) And IntPortion(time[1]/10000) <= IntPortion(et/10000)) Or st <> st[1]; ///////////////////////////////////////////////////////////////// Vars : SP(0); SP = SignalPosition; If TIME = vEntryT And SP = 0 Then Begin If C > O Then Buy("B", Atmarket) Else Sell("S", Atmarket); End; If TIME[2] < TIME[1] And TIME[1] > TIME Then Begin If SP = 1 Then Begin IF C > O Then Buy("reB") Else ExitLong("ExL"); End; If SP = -1 Then Begin If C < O Then Sell("reS") Else ExitShort("ExS"); End; End; SetStopEndofday(vExTime);