시뮬레이션시
선물 만기일 당일청산 하고
다음날 같은 포지션으로 재진입 시스템을 만들고 싶습니다
Input : shortPeriod(5), longPeriod(20);
value1 = ma(C, shortPeriod);
value2 = ma(C, longPeriod);
# 매수/매도청산
If CrossUP(value1, value2) Then
{
Buy();
}
# 매도/매수청산
If CrossDown(value1, value2) Then
{
Sell();
}
var1 = date - int(date/100)*100; //일
var2 = DayOfWeek(date); //요일
if var1 >= 8 and var1 <= 14 and // 8일에서 14일 사이이고
var2 == 4 then // 목요일
Condition1 = True;
Else
Condition1 = False;
if Condition1 == true Then#만기일에는
SetStopEndofday(144000);#14시 40분에 청산
Else
SetStopEndofday(0);#만기일이 아닌날에는 당일청산하지 않음
#만기다음날 첫봉
if date != date[1] and condition1 == false and condition1[1] == true then{
if MarketPosition(1) == 1 Then
buy();
if MarketPosition(1) == -1 Then
sell();}
당일청산 신호가 만기일이 아닌날에도 뜨네요
수식 수정 부탁드립니다
답변 1
예스스탁
예스스탁 답변
2021-11-10 09:29:32
안녕하세요
예스스탁입니다.
작성하신 수식은 옵션만기입니다.
3,6,8,12월만 동작하게 아래와 같이 변경하셔야 합니다.
Input : shortPeriod(5), longPeriod(20);
var : month(0),nday(0),week(0),X(False);
value1 = ma(C, shortPeriod);
value2 = ma(C, longPeriod);
# 매수/매도청산
If CrossUP(value1, value2) Then
{
Buy();
}
# 매도/매수청산
If CrossDown(value1, value2) Then
{
Sell();
}
month = int(date/100)-int(date/10000)*100;
nday = date - int(date/100)*100;
Week = DayOfWeek(date);
if Month%3 == 0 and
nday >= 8 and nday <= 14 and // 8일에서 14일 사이이고
Week == 4 then // 목요일
Condition1 = True;
Else
Condition1 = False;
if Condition1 == true Then#만기일에는
SetStopEndofday(144000);#14시 40분에 청산
Else
SetStopEndofday(0);#만기일이 아닌날에는 당일청산하지 않음
#만기다음날 첫봉
if date != date[1] and condition1 == false and condition1[1] == true then{
if MarketPosition(1) == 1 Then
buy();
if MarketPosition(1) == -1 Then
sell();}
즐거운 하루되세요
> cinamon 님이 쓴 글입니다.
> 제목 : 선물만기 롤오버 시스템식 질문입니다
> 시뮬레이션시
선물 만기일 당일청산 하고
다음날 같은 포지션으로 재진입 시스템을 만들고 싶습니다
Input : shortPeriod(5), longPeriod(20);
value1 = ma(C, shortPeriod);
value2 = ma(C, longPeriod);
# 매수/매도청산
If CrossUP(value1, value2) Then
{
Buy();
}
# 매도/매수청산
If CrossDown(value1, value2) Then
{
Sell();
}
var1 = date - int(date/100)*100; //일
var2 = DayOfWeek(date); //요일
if var1 >= 8 and var1 <= 14 and // 8일에서 14일 사이이고
var2 == 4 then // 목요일
Condition1 = True;
Else
Condition1 = False;
if Condition1 == true Then#만기일에는
SetStopEndofday(144000);#14시 40분에 청산
Else
SetStopEndofday(0);#만기일이 아닌날에는 당일청산하지 않음
#만기다음날 첫봉
if date != date[1] and condition1 == false and condition1[1] == true then{
if MarketPosition(1) == 1 Then
buy();
if MarketPosition(1) == -1 Then
sell();}
당일청산 신호가 만기일이 아닌날에도 뜨네요
수식 수정 부탁드립니다