커뮤니티
함수변환요청(300)
2016-07-21 10:33:16
178
글번호 100258
안녕하세요?
아래는 키움증권에서 사용했던 함수입니다.
예스에서 사용가능하도록 함수 변환 요청드립니다.
전략은 박스권을 설정하여 고점매수, 저점매도입니다.
<사용자함수>
Param : BarsBack( Num );
Var : ii( 0 ), st( 0 ), et( 0) ;
Var : Summercond(False);
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
CME_StartTime = 070000; // 써머타임 적용 시, 장시작 시간
et = 060000; // 써머타임 적용 시, 장종료 시간
End
Else
Begin
CME_StartTime = 080000; // 장 시작 시간
et = 070000; // 장 종료 시간
End;
<시스템함수>
var : TradingStartTime(0),TradingEndTime(0),myDayIndex(0);
TradingStartTime = CME_StartTime(0);
TradingEndTime = TradingStartTime - 10000;
if time >= TradingStartTime Or time < TradingEndTime Then
Begin
myDayIndex = myDayIndex + 1;
if myDayIndex > 10 Then
Begin
if C > Highest(C[1],10)*1.003 And False = cond1 Then
Begin
Buy("Buy",AtMarket);
cond1 = true;
End
Else if C < Lowest(C[1],10) *0.9997 And False = cond2 Then
Begin
Sell("Sell",AtMarket);
cond2 = true;
End;
End;
End
Else Begin
myDayIndex = 0;
cond1 = False;
cond2 = False;
if SignalPosition <> 0 Then
Begin
ExitLong();
ExitShort();
End;
End;
답변 1
예스스탁 예스스탁 답변
2016-07-21 10:56:07
안녕하세요
예스스탁입니다.
Var : ii(0),st(0), et(0) ,CME_StartTime(0);
Var : Summercond(False),year(0);
var : TradingStartTime(0),TradingEndTime(0),myDayIndex(0);
var : cond1(false),cond2(false);
Year = Floor(sdate/10000);
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 {
CME_StartTime = 070000; // 써머타임 적용 시, 장시작 시간
et = 060000; // 써머타임 적용 시, 장종료 시간
}
Else {
CME_StartTime = 080000; // 장 시작 시간
et = 070000; // 장 종료 시간
}
TradingStartTime = CME_StartTime;
TradingEndTime = TradingStartTime - 10000;
if stime >= TradingStartTime Or stime < TradingEndTime Then {
myDayIndex = myDayIndex + 1;
if myDayIndex > 10 Then
{
if C > Highest(C[1],10)*1.003 And False == cond1 Then
{
Buy("Buy",AtMarket);
cond1 = true;
}
Else if C < Lowest(C[1],10) *0.9997 And False == cond2 Then
{
Sell("Sell",AtMarket);
cond2 = true;
}
}
}
Else{
myDayIndex = 0;
cond1 = False;
cond2 = False;
if MarketPosition <> 0 Then
{
ExitLong();
ExitShort();
}
}
즐거운 하루되세요
> 통큰베팅 님이 쓴 글입니다.
> 제목 : 함수변환요청(300)
> 안녕하세요?
아래는 키움증권에서 사용했던 함수입니다.
예스에서 사용가능하도록 함수 변환 요청드립니다.
전략은 박스권을 설정하여 고점매수, 저점매도입니다.
<사용자함수>
Param : BarsBack( Num );
Var : ii( 0 ), st( 0 ), et( 0) ;
Var : Summercond(False);
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
CME_StartTime = 070000; // 써머타임 적용 시, 장시작 시간
et = 060000; // 써머타임 적용 시, 장종료 시간
End
Else
Begin
CME_StartTime = 080000; // 장 시작 시간
et = 070000; // 장 종료 시간
End;
<시스템함수>
var : TradingStartTime(0),TradingEndTime(0),myDayIndex(0);
TradingStartTime = CME_StartTime(0);
TradingEndTime = TradingStartTime - 10000;
if time >= TradingStartTime Or time < TradingEndTime Then
Begin
myDayIndex = myDayIndex + 1;
if myDayIndex > 10 Then
Begin
if C > Highest(C[1],10)*1.003 And False = cond1 Then
Begin
Buy("Buy",AtMarket);
cond1 = true;
End
Else if C < Lowest(C[1],10) *0.9997 And False = cond2 Then
Begin
Sell("Sell",AtMarket);
cond2 = true;
End;
End;
End
Else Begin
myDayIndex = 0;
cond1 = False;
cond2 = False;
if SignalPosition <> 0 Then
Begin
ExitLong();
ExitShort();
End;
End;
다음글
이전글