커뮤니티
함수요청
2019-02-12 11:21:07
193
글번호 126084
안녕하세요?
아래의 스크립트에 전략을 추가하고자 합니다.
추가하고자 하는 전략은
1.써머타임 적용시
가.진입
a.우리시각으로 자정 0시 5분 완성봉 기준으로 참조종목(data2)이 일봉상 양봉이면
익봉시가 매수
b.우리시각으로 오후 0시 5분 완성봉 기준으로 참조종목(data2)이 일봉상 음봉이면
익봉시가 매도
나.손절: 포지션 진입이후 기본종목이나 참조종목이 당일 일봉상 시가를 돌파[이탈] 완성시
익봉 시가에
다.시간청산: 당일청산(오전 3시 10분 완성봉=15분 시가봉)
2.써머타임 해제시
가.진입
a.우리시각으로 오전 1시 5분 완성봉 기준으로 참조종목(data2)이 일봉상 양봉이면
익봉시가 매수
b.우리시각으로 오전 1시 5분 완성봉 기준으로 참조종목(data2)이 일봉상 음봉이면
익봉시가 매도
나.손절: 포지션 진입이후 기본종목이나 참조종목이 당일 일봉상 시가를 돌파[이탈] 완성시
익봉 시가에
다.시간청산: 당일청산(오전 4시 10분 완성봉=15분 시가봉)
----------------------------------------------------------------------------------------
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 = 070000; // 써머타임 적용 시, 장시작 시간
et = 060000; // 써머타임 적용 시, 장종료 시간
End
Else
Begin
CMEStartTime = 080000; // 장 시작 시간
et = 070000; // 장 종료 시간
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);
답변 1
예스스탁 예스스탁 답변
2019-02-13 09:44:23
안녕하세요
예스스탁입니다.
Var : Summercond(False,data1),Year(0,data1);
var : v1(0,data1),v2(0,data1),v3(0,data1),v4(0,data1);
var : O2(0,data2);
Year = data1(Floor(sdate/10000));
V1 = (10000 * Year) + (100 * 3) + 1;
V2 = data1(15 - dayofweek(v1)); // 3월 두번째 일요일 날짜
v3 = (10000 * Year) + (100 * 11) + 1;
v4 = data1(8 - dayofweek(v3)); // 11월 첫번째 일요일 날짜
Summercond = data1(date > (10000 * Year) + (100 * 3) + v2
And date < (10000 * Year) + (100 * 11) + v4);
if data2(Bdate != bdate[1]) Then
O2 = data2(O);
If Summercond == true Then
{
if data1((sdate != sdate[1] and stime >= 000500) or
(sdate == sdate[1] and stime >= 000500 and stime[1] < 000500)) Then
{
if data2(c) > O2 Then
Buy("B1",Atmarket);
if data2(c) < O2 Then
Sell("S1",Atmarket);
}
if data1((sdate != sdate[1] and stime >= 031000) or
(sdate == sdate[1] and stime >= 031000 and stime[1] < 031000)) Then
{
if MarketPosition == 1 Then
ExitLong("bx1",AtMarket);
if MarketPosition == -1 Then
ExitShort("sx1",AtMarket);
}
}
If Summercond == false Then
{
if data1((sdate != sdate[1] and stime >= 010500) or
(sdate == sdate[1] and stime >= 010500 and stime[1] < 010500)) Then
{
if data2(c) > O2 Then
Buy("B2",Atmarket);
if data2(c) < O2 Then
Sell("S2",Atmarket);
}
if data1((sdate != sdate[1] and stime >= 041000) or
(sdate == sdate[1] and stime >= 041000 and stime[1] < 041000)) Then
{
if MarketPosition == 1 Then
ExitLong("bx2",AtMarket);
if MarketPosition == -1 Then
ExitShort("sx2",AtMarket);
}
}
if MarketPosition == 1 And (data1(C<dayopen) or data2(C<O2)) Then
ExitLong("EL",Atmarket);
if MarketPosition == -1 And (data1(C>dayopen) or data2(C>O2)) Then
ExitShort("ES",Atmarket);
즐거운 하루되세요
> 흰둥이아빠 님이 쓴 글입니다.
> 제목 : 함수요청
> 안녕하세요?
아래의 스크립트에 전략을 추가하고자 합니다.
추가하고자 하는 전략은
1.써머타임 적용시
가.진입
a.우리시각으로 자정 0시 5분 완성봉 기준으로 참조종목(data2)이 일봉상 양봉이면
익봉시가 매수
b.우리시각으로 오후 0시 5분 완성봉 기준으로 참조종목(data2)이 일봉상 음봉이면
익봉시가 매도
나.손절: 포지션 진입이후 기본종목이나 참조종목이 당일 일봉상 시가를 돌파[이탈] 완성시
익봉 시가에
다.시간청산: 당일청산(오전 3시 10분 완성봉=15분 시가봉)
2.써머타임 해제시
가.진입
a.우리시각으로 오전 1시 5분 완성봉 기준으로 참조종목(data2)이 일봉상 양봉이면
익봉시가 매수
b.우리시각으로 오전 1시 5분 완성봉 기준으로 참조종목(data2)이 일봉상 음봉이면
익봉시가 매도
나.손절: 포지션 진입이후 기본종목이나 참조종목이 당일 일봉상 시가를 돌파[이탈] 완성시
익봉 시가에
다.시간청산: 당일청산(오전 4시 10분 완성봉=15분 시가봉)
----------------------------------------------------------------------------------------
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 = 070000; // 써머타임 적용 시, 장시작 시간
et = 060000; // 써머타임 적용 시, 장종료 시간
End
Else
Begin
CMEStartTime = 080000; // 장 시작 시간
et = 070000; // 장 종료 시간
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);
다음글
이전글