
等级: 新手上路
- 注册:
- 2022-5-27
- 曾用名:
|
大佬,请教一下,我编写的后台策略,应用于国内期货。在盘中的时候不会出现无信号平仓,但是在晚上9点的时候会平仓,请问一下,是什么原因会导致这种情况?后台策略在收盘后数据需要怎么维护?怎么设定自动补充?还有后台策略在开启的时候需要注意什么?我的策略大致是这样的:VARIABLE:n=0;
m5:=ref(ma(c,5),1);
m15:=ref(ma(c,15),1);
///开单条件
KD:=cross(m5,m15);
KK:=cross(m15,m5);
IF REF(n,1)=0 AND KD THEN BEGIN
n:=1;
END
if REF(n,1)=0 and kk then BEGIN
n:=-1;
END
PK:=cross(m5,m15);
PD:=cross(m15,m5);
if PK and n<0 then BEGIN
n:=0;
if KD then BEGIN
n:=1;
END
end
if PD and n>0 then BEGIN
n:=0;
if KK then BEGIN
n:=-1;
END
end
cs:n;
平空:TSELLSHORT(PK,1,LMT,C); //平空信号
开多:TBUY(KD,1,LMT,C); //开多信号
平多:TSELL(P,1,LMT,C); //平多信号
开空:TBUYSHORT(KK,1,LMT,C); //开空信号
//开仓撤单
if currenttime-TORDERTIME(0,1 )>20 THEN BEGIN
IF TISPRVREMAIN(1)=1 THEN BEGIN
TCANCEL(1,1);
TBUY(1,1,MKT);
END
IF TISPRVREMAIN(2)=1 THEN BEGIN
TCANCEL(1,2);
TSELL(1,1,MKT);
END
IF TISPRVREMAIN(3)=1 THEN BEGIN
TCANCEL(1,3);
TBUYSHORT(1,1,MKT);
END
IF TISPRVREMAIN(4)=1 THEN BEGIN
TCANCEL(1,4);
TSELLSHORT(1,1,MKT);
END
end
//信号校正
if TISPRVREMAIN(0)=0 AND tholding>1 then BEGIN
TSELL(1,tholding-1,MKT);
end
if TISPRVREMAIN(0)=0 AND tholding<-1 then BEGIN
TSELLSHORT(1,-1-tholding,MKT);
end
IF TISPRVREMAIN(0)=0 AND n>0 AND THOLDING<1 THEN BEGIN
TSELLSHORT(1,0,MKT);
TBUY(1,1,MKT);
END
IF TISPRVREMAIN(0)=0 AND n<0 AND THOLDING>-1 THEN BEGIN
TSELL(1,0,MKT);
TBUYSHORT(1,1,MKT);
END
IF TISPRVREMAIN(0)=0 AND n=0 AND abs(THOLDING)>0 THEN BEGIN
TSELL(1,0,MKT);
TSELLSHORT(1,1,MKT);
END
|
|