以下代码只会平仓,同时我想反向开仓,但是回测没有出现反向操作,怎么改呢
//中间变量
input:M(10,2,20),K(2,2,5),ss(1,1,10);
MID: MA(CLOSE,M);//布林中轨
UPPER: MID + K*STD(CLOSE,M);//布林上轨
LOWER: MID - K*STD(CLOSE,M);//布林下轨
手数:=ss;
//交易条件
VARIABLE:flag=0;
开多平空条件:=CROSS(C,LOWER);//开多平空条件
开空平多条件:=CROSS(UPPER,C);//开多平空条件
if flag=1 then
if 开多平空条件 then begin
平空:SELLSHORT(开多平空条件,手数,MARKET);
flag=0;
end
else
if 开空平多条件 then begin
平多:SELL(开空平多条件,手数,MARKET);
flag=0;
end
if flag=0 then
if 开多平空条件 then begin
开多:BUY(开多平空条件,手数,MARKET);
flag=1;
end
else
if 开空平多条件 then begin
开空:BUYSHORT(开空平多条件,手数,MARKET);
flag=1;
end
当前持仓:HOLDING,COLORGRAY,LINETHICK0;
当前资产:ASSET,NOAXIS,COLORGRAY;
//注意交易系统先开后平的原则
不明白你这么写的逻辑是什么。图表程序必须遵守开仓前先平反手仓位。
表述下你的策略思想,才好做修改。
你flag总是被置为1。