커뮤니티
수정 부탁드립니다.
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;