커뮤니티

함수변환요청(300)

프로필 이미지
통큰베팅
2016-07-21 10:33:16
178
글번호 100258
답변완료
안녕하세요? 아래는 키움증권에서 사용했던 함수입니다. 예스에서 사용가능하도록 함수 변환 요청드립니다. 전략은 박스권을 설정하여 고점매수, 저점매도입니다. <사용자함수> Param : BarsBack( Num ); Var : ii( 0 ), st( 0 ), et( 0) ; Var : Summercond(False); Value1 = (10000 * Year(D)) + (100 * 3) + 1; Value2 = 15 - dayofweek(value1); // 3월 두번째 일요일 날짜 value3 = (10000 * Year(D)) + (100 * 11) + 1; value4 = 8 - dayofweek(value3); // 11월 첫번째 일요일 날짜 Summercond = date > (10000 * Year(D)) + (100 * 3) + value2 And date < (10000 * Year(D)) + (100 * 11) + value4; If Summercond = true Then Begin CME_StartTime = 070000; // 써머타임 적용 시, 장시작 시간 et = 060000; // 써머타임 적용 시, 장종료 시간 End Else Begin CME_StartTime = 080000; // 장 시작 시간 et = 070000; // 장 종료 시간 End; <시스템함수> var : TradingStartTime(0),TradingEndTime(0),myDayIndex(0); TradingStartTime = CME_StartTime(0); TradingEndTime = TradingStartTime - 10000; if time >= TradingStartTime Or time < TradingEndTime Then Begin myDayIndex = myDayIndex + 1; if myDayIndex > 10 Then Begin if C > Highest(C[1],10)*1.003 And False = cond1 Then Begin Buy("Buy",AtMarket); cond1 = true; End Else if C < Lowest(C[1],10) *0.9997 And False = cond2 Then Begin Sell("Sell",AtMarket); cond2 = true; End; End; End Else Begin myDayIndex = 0; cond1 = False; cond2 = False; if SignalPosition <> 0 Then Begin ExitLong(); ExitShort(); End; End;
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2016-07-21 10:56:07

안녕하세요 예스스탁입니다. Var : ii(0),st(0), et(0) ,CME_StartTime(0); Var : Summercond(False),year(0); var : TradingStartTime(0),TradingEndTime(0),myDayIndex(0); var : cond1(false),cond2(false); Year = Floor(sdate/10000); Value1 = (10000 * Year) + (100 * 3) + 1; Value2 = 15 - dayofweek(value1); // 3월 두번째 일요일 날짜 value3 = (10000 * Year) + (100 * 11) + 1; value4 = 8 - dayofweek(value3); // 11월 첫번째 일요일 날짜 Summercond = date > (10000 * Year) + (100 * 3) + value2 And date < (10000 * Year) + (100 * 11) + value4; If Summercond == true Then { CME_StartTime = 070000; // 써머타임 적용 시, 장시작 시간 et = 060000; // 써머타임 적용 시, 장종료 시간 } Else { CME_StartTime = 080000; // 장 시작 시간 et = 070000; // 장 종료 시간 } TradingStartTime = CME_StartTime; TradingEndTime = TradingStartTime - 10000; if stime >= TradingStartTime Or stime < TradingEndTime Then { myDayIndex = myDayIndex + 1; if myDayIndex > 10 Then { if C > Highest(C[1],10)*1.003 And False == cond1 Then { Buy("Buy",AtMarket); cond1 = true; } Else if C < Lowest(C[1],10) *0.9997 And False == cond2 Then { Sell("Sell",AtMarket); cond2 = true; } } } Else{ myDayIndex = 0; cond1 = False; cond2 = False; if MarketPosition <> 0 Then { ExitLong(); ExitShort(); } } 즐거운 하루되세요 > 통큰베팅 님이 쓴 글입니다. > 제목 : 함수변환요청(300) > 안녕하세요? 아래는 키움증권에서 사용했던 함수입니다. 예스에서 사용가능하도록 함수 변환 요청드립니다. 전략은 박스권을 설정하여 고점매수, 저점매도입니다. <사용자함수> Param : BarsBack( Num ); Var : ii( 0 ), st( 0 ), et( 0) ; Var : Summercond(False); Value1 = (10000 * Year(D)) + (100 * 3) + 1; Value2 = 15 - dayofweek(value1); // 3월 두번째 일요일 날짜 value3 = (10000 * Year(D)) + (100 * 11) + 1; value4 = 8 - dayofweek(value3); // 11월 첫번째 일요일 날짜 Summercond = date > (10000 * Year(D)) + (100 * 3) + value2 And date < (10000 * Year(D)) + (100 * 11) + value4; If Summercond = true Then Begin CME_StartTime = 070000; // 써머타임 적용 시, 장시작 시간 et = 060000; // 써머타임 적용 시, 장종료 시간 End Else Begin CME_StartTime = 080000; // 장 시작 시간 et = 070000; // 장 종료 시간 End; <시스템함수> var : TradingStartTime(0),TradingEndTime(0),myDayIndex(0); TradingStartTime = CME_StartTime(0); TradingEndTime = TradingStartTime - 10000; if time >= TradingStartTime Or time < TradingEndTime Then Begin myDayIndex = myDayIndex + 1; if myDayIndex > 10 Then Begin if C > Highest(C[1],10)*1.003 And False = cond1 Then Begin Buy("Buy",AtMarket); cond1 = true; End Else if C < Lowest(C[1],10) *0.9997 And False = cond2 Then Begin Sell("Sell",AtMarket); cond2 = true; End; End; End Else Begin myDayIndex = 0; cond1 = False; cond2 = False; if SignalPosition <> 0 Then Begin ExitLong(); ExitShort(); End; End;