等级: 免费版
- 注册:
- 2022-4-2
- 曾用名:
|
这里后台多策略组合代码如下,求助各位大神有没有啥可能出现的问题或者风险。被引用的策略cc均为前一根K线持仓
ah:stkindiex('','策略A.cc',0,21,3,10000); //引用3分钟周期上的策略a的仓位。
bh:stkindiex('','策略B.cc',0,3,0,5000); //引用15分钟周期上的策略b的仓位。
ch:stkindiex('','策略C.cc',0,2,0,15000); //引用15分钟周期上的策略b的仓位。
zh:='268151';
strategy_hold:ah+bh+ch; //理论持仓
多单总持仓:tbuyholdingex(zh,'',2);
空单总持仓:tsellholdingex(zh,'',2);
多单未成交委托:tisremainex(1,zh,stklabel);
空单未成交委托:tisremainex(3,zh,stklabel);
tot_acc_hold:多单总持仓-空单总持仓+多单未成交委托-空单未成交委托;
//理论持仓与实际持仓的判断
if strategy_hold-tot_acc_hold>0 and tot_acc_hold>=0 then //如果理论持仓大于账户持仓并且账户持仓大于0
tbuy(1,strategy_hold-tot_acc_hold,mkt,0,0,zh); //加多
if strategy_hold-tot_acc_hold>0 and tot_acc_hold<0 then begin //如果理论持仓大于账户持仓并且账户持仓小于0
tsellshort(strategy_hold<0,strategy_hold-tot_acc_hold,mkt,0,0,zh); //减空
if strategy_hold>=0 then begin //如果理论持仓为正
tsellshort(1,tot_acc_hold,mkt,0,0,zh); //平空
tbuy(strategy_hold>0,strategy_hold,mkt,0,0,zh); //反手开多
end
end
if strategy_hold-tot_acc_hold<0 and tot_acc_hold<=0 then //如果理论持仓小于账户持仓并且账户持仓小于0
tbuyshort(1,abs(strategy_hold-tot_acc_hold),mkt,0,0,zh); //加空
if strategy_hold-tot_acc_hold<0 and tot_acc_hold>0 then begin //如果理论持仓小于账户持仓并且账户持仓大于0
tsell(strategy_hold>0,abs(strategy_hold-tot_acc_hold),mkt,0,0,zh); //减多
if strategy_hold<=0 then begin //如果理论持仓为负
tsell(1,tot_acc_hold,mkt,0,0,zh); //平多
tbuyshort(strategy_hold<0,abs(strategy_hold),mkt,0,0,zh); //反手开空
end
end
|
|