커뮤니티

수정 부탁드립니다.

프로필 이미지
우와우와
2018-02-11 17:23:36
207
글번호 116501
답변완료
// Asia - 17 // Europe 17 - 2330 // USA 2330 - Params : eeTIME1(170000), eeTIME2(233000); Vars : tCNT1(0), tCNT2(0), tCNT3(0); Vars : TCOND1(False), TCOND2(False), TCOND3(False); Vars : st(0), et(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; // 써머타임 적용 시, 장종료 시간 End Else Begin st = 080000; // 장 시작 시간 et = 070000; // 장 종료 시간 End; condition1 = (IntPortion(time/10000) > IntPortion(et/10000) And IntPortion(time[1]/10000) <= IntPortion(et/10000)) Or st <> st[1]; ///////////////////////////////////////////////////////////////////////// Vars : dIdx1(0), dIdx2(0), dIdx3(0); Vars : HH1(0), HH2(0), HH3(0); Vars : LL1(0), LL2(0), LL3(0); If condition1 Then Begin tCNT1 = 0; tCNT2 = 0; tCNT3 = 0; dIdx1 = 0; dIdx2 = 0; dIdx3 = 0; End Else If et < TIME And TIME < eeTIME1 Then dIdx1 = dIdx1 + 1 Else If eeTIME1 < TIME And TIME < eeTIME2 Then dIDx2 = dIdx2 + 1 Else If TIME < et Then dIdx3 = dIdx3 + 1; v99 = TotalTrades; If tCOND1 And v99 > v99[1] Then tCnt1 = tCnt1 + 1 Else If tCOND2 And v99 > v99[1] Then tCnt2 = tCnt2 + 1 Else If tCOND3 And v99 > v99[1] Then tCnt3 = tCnt3 + 1; If dIdx1 <> 0 And dIdx2 = 0 And dIdx3 = 0 Then Begin HH1 = Highest(H, dIdx1); LL1 = Lowest(L, dIdx1); End Else If dIdx2 <> 0 And dIdx3 = 0 Then Begin HH2 = Highest(H, dIdx2); LL2 = Lowest(L, dIdx2); End Else If dIdx3 <> 0 Then Begin HH3 = Highest(H, dIdx3); LL3 = Lowest(L, dIdx3); End; If st < eeTIME1 Then Begin If st < TIME And TIME < eeTIME1 Then TCOND1 = True Else TCOND1 = False; End Else Begin If st < TIME Or TIME < eeTIME1 Then TCOND1 = True Else TCOND1 = False; End; If eeTIME1 < eeTIME2 Then Begin If eeTIME1 < TIME And TIME < eeTIME2 Then TCOND2 = True Else TCOND2 = False; End Else Begin If eeTIME1 < TIME Or TIME < eeTIME2 Then TCOND2 = True Else TCOND2 = False; End; If eeTIME2 < et Then Begin If eeTIME2 < TIME And TIME < et Then TCOND3 = True Else TCOND3 = False; End Else Begin If eeTIME2 < TIME Or TIME < et Then TCOND3 = True Else TCOND3 = False; End; Vars : SP(0), TickSize(0); SP = SignalPosition; TickSize = OneTick * PriceScale; If SP = 0 Then Begin If TCOND1 And tCNT1 < 1 Then Begin If HH3 > H Then Buy("B_Asia", Atstop, HH3 + TickSize); If LL3 < L Then Sell("S_Asia", Atstop, LL3 - TickSize); End Else If TCOND2 And tCNT2 < 1 Then Begin If HH1 > H Then Buy("B_Eu", Atstop, HH1 + TickSize); If LL1 < L Then Sell("S_Eu", Atstop, LL1 - TickSize); End Else If TCOND3 And tCNT3 < 1 Then Begin If HH2 > H Then Buy("B_Usa", Atstop, HH2 + TickSize); If LL2 < L Then Sell("S_Usa", Atstop, LL2 - TickSize); End; End;
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2018-02-12 13:47:33

안녕하세요 예스스탁입니다. input : eeTIME1(170000), eeTIME2(233000); Vars : tCNT1(0), tCNT2(0), tCNT3(0); Vars : TCOND1(False), TCOND2(False), TCOND3(False); Vars : st(0), et(0),Year(0),V1(0),V2(0),V99(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; // 써머타임 적용 시, 장종료 시간 End Else Begin st = 080000; // 장 시작 시간 et = 070000; // 장 종료 시간 End; condition1 = (IntPortion(time/10000) > IntPortion(et/10000) And IntPortion(time[1]/10000) <= IntPortion(et/10000)) Or st <> st[1]; ///////////////////////////////////////////////////////////////////////// Vars : dIdx1(0), dIdx2(0), dIdx3(0); Vars : HH1(0), HH2(0), HH3(0); Vars : LL1(0), LL2(0), LL3(0); If condition1 Then Begin tCNT1 = 0; tCNT2 = 0; tCNT3 = 0; dIdx1 = 0; dIdx2 = 0; dIdx3 = 0; End Else If et < TIME And TIME < eeTIME1 Then dIdx1 = dIdx1 + 1; Else If eeTIME1 < TIME And TIME < eeTIME2 Then dIDx2 = dIdx2 + 1; Else If TIME < et Then dIdx3 = dIdx3 + 1; v99 = TotalTrades; If tCOND1 And v99 > v99[1] Then tCnt1 = tCnt1 + 1; Else If tCOND2 And v99 > v99[1] Then tCnt2 = tCnt2 + 1; Else If tCOND3 And v99 > v99[1] Then tCnt3 = tCnt3 + 1; If dIdx1 <> 0 And dIdx2 == 0 And dIdx3 == 0 Then Begin HH1 = Highest(H, dIdx1); LL1 = Lowest(L, dIdx1); End Else If dIdx2 <> 0 And dIdx3 == 0 Then Begin HH2 = Highest(H, dIdx2); LL2 = Lowest(L, dIdx2); End Else If dIdx3 <> 0 Then Begin HH3 = Highest(H, dIdx3); LL3 = Lowest(L, dIdx3); End; If st < eeTIME1 Then Begin If st < TIME And TIME < eeTIME1 Then TCOND1 = True; Else TCOND1 = False; End Else Begin If st < TIME Or TIME < eeTIME1 Then TCOND1 = True; Else TCOND1 = False; End; If eeTIME1 < eeTIME2 Then Begin If eeTIME1 < TIME And TIME < eeTIME2 Then TCOND2 = True; Else TCOND2 = False; End Else Begin If eeTIME1 < TIME Or TIME < eeTIME2 Then TCOND2 = True; Else TCOND2 = False; End; If eeTIME2 < et Then Begin If eeTIME2 < TIME And TIME < et Then TCOND3 = True; Else TCOND3 = False; End Else Begin If eeTIME2 < TIME Or TIME < et Then TCOND3 = True; Else TCOND3 = False; End; Vars : SP(0), TickSize(0); SP = MarketPosition; TickSize = PriceScale; If SP == 0 Then Begin If TCOND1 And tCNT1 < 1 Then Begin If HH3 > H Then Buy("B_Asia", Atstop, HH3 + TickSize); If LL3 < L Then Sell("S_Asia", Atstop, LL3 - TickSize); End Else If TCOND2 And tCNT2 < 1 Then Begin If HH1 > H Then Buy("B_Eu", Atstop, HH1 + TickSize); If LL1 < L Then Sell("S_Eu", Atstop, LL1 - TickSize); End Else If TCOND3 And tCNT3 < 1 Then Begin If HH2 > H Then Buy("B_Usa", Atstop, HH2 + TickSize); If LL2 < L Then Sell("S_Usa", Atstop, LL2 - TickSize); End; End; 즐거운 하루되세요 > 우와우와 님이 쓴 글입니다. > 제목 : 수정 부탁드립니다. > // Asia - 17 // Europe 17 - 2330 // USA 2330 - Params : eeTIME1(170000), eeTIME2(233000); Vars : tCNT1(0), tCNT2(0), tCNT3(0); Vars : TCOND1(False), TCOND2(False), TCOND3(False); Vars : st(0), et(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; // 써머타임 적용 시, 장종료 시간 End Else Begin st = 080000; // 장 시작 시간 et = 070000; // 장 종료 시간 End; condition1 = (IntPortion(time/10000) > IntPortion(et/10000) And IntPortion(time[1]/10000) <= IntPortion(et/10000)) Or st <> st[1]; ///////////////////////////////////////////////////////////////////////// Vars : dIdx1(0), dIdx2(0), dIdx3(0); Vars : HH1(0), HH2(0), HH3(0); Vars : LL1(0), LL2(0), LL3(0); If condition1 Then Begin tCNT1 = 0; tCNT2 = 0; tCNT3 = 0; dIdx1 = 0; dIdx2 = 0; dIdx3 = 0; End Else If et < TIME And TIME < eeTIME1 Then dIdx1 = dIdx1 + 1 Else If eeTIME1 < TIME And TIME < eeTIME2 Then dIDx2 = dIdx2 + 1 Else If TIME < et Then dIdx3 = dIdx3 + 1; v99 = TotalTrades; If tCOND1 And v99 > v99[1] Then tCnt1 = tCnt1 + 1 Else If tCOND2 And v99 > v99[1] Then tCnt2 = tCnt2 + 1 Else If tCOND3 And v99 > v99[1] Then tCnt3 = tCnt3 + 1; If dIdx1 <> 0 And dIdx2 = 0 And dIdx3 = 0 Then Begin HH1 = Highest(H, dIdx1); LL1 = Lowest(L, dIdx1); End Else If dIdx2 <> 0 And dIdx3 = 0 Then Begin HH2 = Highest(H, dIdx2); LL2 = Lowest(L, dIdx2); End Else If dIdx3 <> 0 Then Begin HH3 = Highest(H, dIdx3); LL3 = Lowest(L, dIdx3); End; If st < eeTIME1 Then Begin If st < TIME And TIME < eeTIME1 Then TCOND1 = True Else TCOND1 = False; End Else Begin If st < TIME Or TIME < eeTIME1 Then TCOND1 = True Else TCOND1 = False; End; If eeTIME1 < eeTIME2 Then Begin If eeTIME1 < TIME And TIME < eeTIME2 Then TCOND2 = True Else TCOND2 = False; End Else Begin If eeTIME1 < TIME Or TIME < eeTIME2 Then TCOND2 = True Else TCOND2 = False; End; If eeTIME2 < et Then Begin If eeTIME2 < TIME And TIME < et Then TCOND3 = True Else TCOND3 = False; End Else Begin If eeTIME2 < TIME Or TIME < et Then TCOND3 = True Else TCOND3 = False; End; Vars : SP(0), TickSize(0); SP = SignalPosition; TickSize = OneTick * PriceScale; If SP = 0 Then Begin If TCOND1 And tCNT1 < 1 Then Begin If HH3 > H Then Buy("B_Asia", Atstop, HH3 + TickSize); If LL3 < L Then Sell("S_Asia", Atstop, LL3 - TickSize); End Else If TCOND2 And tCNT2 < 1 Then Begin If HH1 > H Then Buy("B_Eu", Atstop, HH1 + TickSize); If LL1 < L Then Sell("S_Eu", Atstop, LL1 - TickSize); End Else If TCOND3 And tCNT3 < 1 Then Begin If HH2 > H Then Buy("B_Usa", Atstop, HH2 + TickSize); If LL2 < L Then Sell("S_Usa", Atstop, LL2 - TickSize); End; End;