等级: 免费版
- 注册:
- 2022-4-2
- 曾用名:
|
请教老师,为什么多策略组合代码导致平仓提前。策略a跟策略b出现的平仓信号都是在最后59分20秒平仓,策略组合却是在56分40秒平仓
策略组合代码如下
aholding:=stkindi('','策略acc',0,12,5); //引用5秒周期上的策略a的holding值。
bholding:=stkindi('','策略b.cc',0,12,5); //引用5秒周期上的策略b的holding值。
holding0:=aholding+bholding;//+cholding;
abholding0:=ref(holding0,1);
abholding1:=ref(abholding0,1);
平空开多:=abholding0>0 and abholding1<0;
开多条件:=abholding0>0 and abholding1=0;
加多条件:=abholding0>0 and abholding1>0 and abholding0>abholding1;
减多条件:=abholding0>0 and abholding1>0 and abholding0<abholding1;
清多条件:=abholding0=0 and abholding1>0;
平多开空:=abholding0<0 and abholding1>0;
开空条件:=abholding0<0 and abholding1=0;
加空条件:=abholding0<0 and abholding1<0 and abholding0<abholding1;
减空条件:=abholding0<0 and abholding1<0 and abholding0>abholding1;
清空条件:=abholding0=0 and abholding1<0;
//多头开平仓
if 平空开多 then begin
sellshort (平空开多,abholding1,thisclose);
buy (平空开多,abholding0,thisclose);
end
开多:buy(开多条件,abs(abholding0),thisclose);
加多:buy(加多条件,abs(abholding0-abholding1),thisclose);
减多:sell(减多条件,abs(abholding0-abholding1),thisclose);
清多:sell(清多条件,abs(abholding0-abholding1),thisclose);
//空头开平仓
if 平多开空 then begin
sell (平多开空,abholding1,thisclose);
buyshort (平多开空,abholding0,thisclose);
end
开空:buyshort(开空条件,abs(abholding0),thisclose);
加空:buyshort(加空条件,abs(abholding0-abholding1),thisclose);
减空:sellshort(减空条件,abs(abholding0-abholding1),thisclose);
清空:sellshort(清空条件,abs(abholding0-abholding1),thisclose);
////
当前持仓:holding,colorgray,linethick0;
当前资产:asset,noaxis,colorgray;
|
|