커뮤니티

함수요청

프로필 이미지
흰둥이아빠
2019-03-15 15:55:15
314
글번호 127120
답변완료
안녕하세요? 아래의 두 스크립트를 수정요청드립니다. 참조종목을 월물만 달리하여 매매하고자 합니다. 참조종목과 동일한 신호 발생시 기본종목에 신호를 생성하게 하고자 합니다. 월물만 다르게 하고 주기 및 장운영시간을 동일합니다. [전략A] if sdate != sdate[1] Then SetStopEndofday(053000); if bdate != bdate[1] then { SetStopEndofday(0); if O > C[1] Then buy("b",AtMarket); if O < C[1] Then sell("s",AtMarket); } [전략B] Var : st(0), et(0),year(0); var : V1(0),V2(0),v99(0); Year = Floor(sDate / 10000)*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; // 써머타임 적용 시, 장종료 시간 End Else Begin st = 080000; // 장 시작 시간 et = 070000; // 장 종료 시간 End; condition1 = (IntPortion(stime/10000) > IntPortion(et/10000) And IntPortion(stime[1]/10000) <= IntPortion(et/10000)) Or st <> st[1]; ///////////////////////////////////////////////////////////////// If condition1 Then v99 = 0; Vars : SP(0); SP = MarketPosition; If SP[1] <> SP And SP <> 0 Then v99 = v99 + 1; Vars : pDayClose(0), vDayOpen(0); pDayClose = DayClose(1); vDayOpen = DayOpen(0); If v99 == 0 Then Begin If pDayClose < vDayOpen Then Buy("B", atmarket); Else IF pDayClose > vDayOpen Then Sell("S", atmarket); End; SetStopEndofday(153000);
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2019-03-18 13:20:44

안녕하세요 예스스탁입니다. 1 if sdate != sdate[1] Then SetStopEndofday(053000); if bdate != bdate[1] then { SetStopEndofday(0); if data2(O > C[1]) Then buy("b",AtMarket); if data2(O < C[1]) Then sell("s",AtMarket); } 2 Var : st(0,data2),et(0,data2),year(0,data2); var : V1(0,data2),V2(0,data2),v99(0,data2); var : val2(0,data2),val4(0,data2),cond1(false); Year = data2(Floor(sDate / 10000)*10000); V1 = data2(Dayofweek((10000 * Year) + (100 * 3) + 1)); If V1 == 0 Then Val2 = 8; Else Val2 = 15 - V1; // 3월 두번째 일요일 날짜 V2 = data2(Dayofweek((10000 * Year) + (100 * 11) + 1)); If V2 == 0 Then Val4 = 1; Else Val4 = 8 - V2; // 11월 첫번째 일요일 날짜 If data2(sdate > (10000 * Year) + (100 * 3) + Val2 And sdate < (10000 * Year) + (100 * 11) + Val4) Then Begin st = 070000; // 써머타임 적용 시, 장시작 시간 et = 060000; // 써머타임 적용 시, 장종료 시간 End Else Begin st = 080000; // 장 시작 시간 et = 070000; // 장 종료 시간 End; cond1 = data2((IntPortion(stime/10000) > IntPortion(et/10000) And IntPortion(stime[1]/10000) <= IntPortion(et/10000)) Or st <> st[1]); ///////////////////////////////////////////////////////////////// If cond1 Then v99 = 0; Vars : SP(0); SP = MarketPosition; If SP[1] <> SP And SP <> 0 Then v99 = v99 + 1; Vars : pDayClose(0), vDayOpen(0); pDayClose = data2(CloseD(1)); vDayOpen = data2(OpenD(0)); If v99 == 0 Then Begin If pDayClose < vDayOpen Then Buy("B", atmarket); Else IF pDayClose > vDayOpen Then Sell("S", atmarket); End; SetStopEndofday(153000); 즐거운 하루되세요 > 흰둥이아빠 님이 쓴 글입니다. > 제목 : 함수요청 > 안녕하세요? 아래의 두 스크립트를 수정요청드립니다. 참조종목을 월물만 달리하여 매매하고자 합니다. 참조종목과 동일한 신호 발생시 기본종목에 신호를 생성하게 하고자 합니다. 월물만 다르게 하고 주기 및 장운영시간을 동일합니다. [전략A] if sdate != sdate[1] Then SetStopEndofday(053000); if bdate != bdate[1] then { SetStopEndofday(0); if O > C[1] Then buy("b",AtMarket); if O < C[1] Then sell("s",AtMarket); } [전략B] Var : st(0), et(0),year(0); var : V1(0),V2(0),v99(0); Year = Floor(sDate / 10000)*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; // 써머타임 적용 시, 장종료 시간 End Else Begin st = 080000; // 장 시작 시간 et = 070000; // 장 종료 시간 End; condition1 = (IntPortion(stime/10000) > IntPortion(et/10000) And IntPortion(stime[1]/10000) <= IntPortion(et/10000)) Or st <> st[1]; ///////////////////////////////////////////////////////////////// If condition1 Then v99 = 0; Vars : SP(0); SP = MarketPosition; If SP[1] <> SP And SP <> 0 Then v99 = v99 + 1; Vars : pDayClose(0), vDayOpen(0); pDayClose = DayClose(1); vDayOpen = DayOpen(0); If v99 == 0 Then Begin If pDayClose < vDayOpen Then Buy("B", atmarket); Else IF pDayClose > vDayOpen Then Sell("S", atmarket); End; SetStopEndofday(153000);