커뮤니티
함수변환요청드립니다.
2017-10-16 07:28:13
116
글번호 113373
안녕하세요?
키움에서 사용하였던 수식입니다.
예스트레이더로 사용할 수 있도록 함수 변환 요청드립니다.
크루드 오일 60분봉에 적용하여
써머타임 적용 현재
8시에 완성되는 봉을 기준으로
(써머타임 해제 적용 기간은 9시에 완성되는 봉을 기준으로)
그 봉이 시가 = 고가이면 N번째 이후 봉 시가로 매수 진입이며
시가 = 저가 이면 N번째 이후 봉 시가로 매도 진입하고자 합니다.
진입 후 M번 이후째 봉 시가로 강제청산 하고자합니다.
당일청산입니다.
Vars : ii( 0 ), st( 0 ), et( 0 );
V1 = Dayofweek((10000 * Year(D)) + (100 * 3) + 1);
If V1 = 0 Then Value2 = 8
Else Value2 = 15 - V1;
V2 = Dayofweek((10000 * Year(D)) + (100 * 11) + 1);
If V2 = 0 Then Value4 = 1
Else value4 = 8 - V2;
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];
Inputs : Ncount(1), Mcount(1);
Vars : Bcond(False), Scond(False), DayIndex_user(0);
If condition1 Then
Begin
If O = H Then Bcond = true
Else
Begin
Bcond = False;
Scond = False;
End;
If O = L Then Scond = True
Else
Begin
Bcond = False;
Scond = False;
End;
DayIndex_user = 0;
End;
DayIndex_user = DayIndex_user + 1;
If Bcond And DayIndex_user = Ncount Then Buy("매수", atmarket);
If Scond And DayIndex_user = Ncount Then Sell("매도", atmarket);
If BarsSinceEntry >= Ncount + Mcount Then
Begin
ExitLong();
ExitShort();
End;
답변 1
예스스탁 예스스탁 답변
2017-10-16 15:04:03
안녕하세요
예스스탁입니다.
Vars : ii( 0 ), st( 0 ), et( 0 );
var : V1(0),Year(0),V2(0);
Year = Floor(sdate/10000);
V1 = Dayofweek((10000 * Year) + (100 * 3) + 1);
If V1 == 0 Then
Value2 = 8;
Else
Value2 = 15 - V1;
V2 = Dayofweek((10000 * Year) + (100 * 11) + 1);
If V2 == 0 Then
Value4 = 1;
Else
value4 = 8 - V2;
If date > (10000 * Year) + (100 * 3) + value2 And date < (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];
Inputs : Ncount(1), Mcount(1);
Vars : Bcond(False), Scond(False), DayIndex_user(0);
If condition1 Then
Begin
If O == H Then
Bcond = true;
Else
Begin
Bcond = False;
Scond = False;
End;
If O == L Then
Scond = True;
Else
Begin
Bcond = False;
Scond = False;
End;
DayIndex_user = 0;
End;
DayIndex_user = DayIndex_user + 1;
If Bcond And DayIndex_user == Ncount Then Buy("매수", atmarket);
If Scond And DayIndex_user == Ncount Then Sell("매도", atmarket);
If BarsSinceEntry >= Ncount + Mcount Then
Begin
ExitLong();
ExitShort();
End;
즐거운 하루되세요
> 통큰베팅 님이 쓴 글입니다.
> 제목 : 함수변환요청드립니다.
> 안녕하세요?
키움에서 사용하였던 수식입니다.
예스트레이더로 사용할 수 있도록 함수 변환 요청드립니다.
크루드 오일 60분봉에 적용하여
써머타임 적용 현재
8시에 완성되는 봉을 기준으로
(써머타임 해제 적용 기간은 9시에 완성되는 봉을 기준으로)
그 봉이 시가 = 고가이면 N번째 이후 봉 시가로 매수 진입이며
시가 = 저가 이면 N번째 이후 봉 시가로 매도 진입하고자 합니다.
진입 후 M번 이후째 봉 시가로 강제청산 하고자합니다.
당일청산입니다.
Vars : ii( 0 ), st( 0 ), et( 0 );
V1 = Dayofweek((10000 * Year(D)) + (100 * 3) + 1);
If V1 = 0 Then Value2 = 8
Else Value2 = 15 - V1;
V2 = Dayofweek((10000 * Year(D)) + (100 * 11) + 1);
If V2 = 0 Then Value4 = 1
Else value4 = 8 - V2;
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];
Inputs : Ncount(1), Mcount(1);
Vars : Bcond(False), Scond(False), DayIndex_user(0);
If condition1 Then
Begin
If O = H Then Bcond = true
Else
Begin
Bcond = False;
Scond = False;
End;
If O = L Then Scond = True
Else
Begin
Bcond = False;
Scond = False;
End;
DayIndex_user = 0;
End;
DayIndex_user = DayIndex_user + 1;
If Bcond And DayIndex_user = Ncount Then Buy("매수", atmarket);
If Scond And DayIndex_user = Ncount Then Sell("매도", atmarket);
If BarsSinceEntry >= Ncount + Mcount Then
Begin
ExitLong();
ExitShort();
End;
다음글