커뮤니티
함수요청
2019-01-15 11:35:45
191
글번호 125284
안녕하세요?
아래는 하나금융투자에서 크루드오일 5분봉을 천연가스 5분봉을 참조하여 매매했던 전략입니다.
예스트레이더에서 사용할 수 있도록 함수 변환 요청드립니다.
Var : ii( 0 ), st( 0 ), et( 0),Summercond(False),CMEStartTime(0) ;
Var : Sp(0),TickValue(0);
Sp = SignalPosition;
TickValue = OneTick * PriceScale;
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
CMEStartTime = 223000; // 써머타임 적용 시, 장시작 시간
et = 0305500; // 써머타임 적용 시, 장종료 시간
End
Else
Begin
CMEStartTime = 233000; // 장 시작 시간
et = 040500; // 장 종료 시간
End;
//장 시각후 첫봉에서 참조종목의 시가를 저장
if time >= CMEStartTime And time[1] < CMEStartTime Then
value14 = Data2(O);
//참조종목의 시가와 종가를 저장
value11 = Data2(C);
value12 = Data2(O);
//DATA2의 일봉상 양봉인지 음봉인지 계산
value13 = value11 - value14;
//22시 30분에 참조종목이 일봉상 양봉이면 매수
//음봉이면 매도
if time >= 223000 And time[1] < 223000 Then
Begin
if value13 > 0 Then
Buy("Buy",Atmarket)
Else if value13 < 0 Then
Sell("Sell",Atmarket);
End;
//매수 진입이후 참조종목이 일봉상 음(양)봉이 되면 청산
if SignalPosition = 1 And value11 < value14 Then
ExitLong("EL",Atmarket)
Else if SignalPosition = -1 And value11 > value14 Then
ExitShort("ES",Atmarket);
Params : EXTtime(030000);
SetStopEndofday(et);
//SetStopEndofday(EXTtime);
답변 1
예스스탁 예스스탁 답변
2019-01-15 13:38:45
안녕하세요
예스스탁입니다.
Var : ii( 0 ), st( 0 ), et( 0),Summercond(False),CMEStartTime(0) ;
Var : TickValue(0);
var : Year(0);
Year = Floor(sdate/10000);
TickValue = PriceScale;
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
Begin
CMEStartTime = 223000; // 써머타임 적용 시, 장시작 시간
et = 0305500; // 써머타임 적용 시, 장종료 시간
End
Else
Begin
CMEStartTime = 233000; // 장 시작 시간
et = 040500; // 장 종료 시간
End;
//장 시각후 첫봉에서 참조종목의 시가를 저장
if stime >= CMEStartTime And stime[1] < CMEStartTime Then
value14 = Data2(O);
//참조종목의 시가와 종가를 저장
value11 = Data2(C);
value12 = Data2(O);
//DATA2의 일봉상 양봉인지 음봉인지 계산
value13 = value11 - value14;
//22시 30분에 참조종목이 일봉상 양봉이면 매수
//음봉이면 매도
if stime >= 223000 And stime[1] < 223000 Then
Begin
if value13 > 0 Then
Buy("Buy",Atmarket);
Else if value13 < 0 Then
Sell("Sell",Atmarket);
End;
//매수 진입이후 참조종목이 일봉상 음(양)봉이 되면 청산
if MarketPosition == 1 And value11 < value14 Then
ExitLong("EL",Atmarket);
Else if MarketPosition == -1 And value11 > value14 Then
ExitShort("ES",Atmarket);
input : EXTtime(030000);
if sdate != sdate[1] Then
SetStopEndofday(et);
if bdate != bdate[1] Then
SetStopEndofday(0);
//SetStopEndofday(EXTtime);
즐거운 하루되세요
> 흰둥이아빠 님이 쓴 글입니다.
> 제목 : 함수요청
> 안녕하세요?
아래는 하나금융투자에서 크루드오일 5분봉을 천연가스 5분봉을 참조하여 매매했던 전략입니다.
예스트레이더에서 사용할 수 있도록 함수 변환 요청드립니다.
Var : ii( 0 ), st( 0 ), et( 0),Summercond(False),CMEStartTime(0) ;
Var : Sp(0),TickValue(0);
Sp = SignalPosition;
TickValue = OneTick * PriceScale;
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
CMEStartTime = 223000; // 써머타임 적용 시, 장시작 시간
et = 0305500; // 써머타임 적용 시, 장종료 시간
End
Else
Begin
CMEStartTime = 233000; // 장 시작 시간
et = 040500; // 장 종료 시간
End;
//장 시각후 첫봉에서 참조종목의 시가를 저장
if time >= CMEStartTime And time[1] < CMEStartTime Then
value14 = Data2(O);
//참조종목의 시가와 종가를 저장
value11 = Data2(C);
value12 = Data2(O);
//DATA2의 일봉상 양봉인지 음봉인지 계산
value13 = value11 - value14;
//22시 30분에 참조종목이 일봉상 양봉이면 매수
//음봉이면 매도
if time >= 223000 And time[1] < 223000 Then
Begin
if value13 > 0 Then
Buy("Buy",Atmarket)
Else if value13 < 0 Then
Sell("Sell",Atmarket);
End;
//매수 진입이후 참조종목이 일봉상 음(양)봉이 되면 청산
if SignalPosition = 1 And value11 < value14 Then
ExitLong("EL",Atmarket)
Else if SignalPosition = -1 And value11 > value14 Then
ExitShort("ES",Atmarket);
Params : EXTtime(030000);
SetStopEndofday(et);
//SetStopEndofday(EXTtime);