是不同策略交易不同品种就行。 你策略a交易平安银行,策略b也交易。那就完全没法控制了。
目前的方案是这样的,你可以参考下。
[PEL] 复制代码
//以下代码要求:
//1.监控的品种必须加入到指定的板块中,代码中会循环统计这些品种有哪些已经开仓和持仓了
//2.不同策略不能交叉交易相同品种,避免判断出错
y:=20;//最大持仓品种数量
ct:=0;//实时统计的持仓品种数量
stagy:=formulaname;//用来进行策略级区分。如果是同策略不同参数/周期 同时在运行,那最好这个名称可以自定义下以进行区分
bkname:='策略监控的板块名称';//策略需要直接监控板块
_str:=stagy&'_ct';//超全局变量名称
temp_str:='';
//遍历后台监控的板块,统计当前有持仓/在开仓的 品种数量
for i=1 to stkcount(bkname) do
begin
hlabel:=stkfromblk(bkname,i);
//只要多头持仓/多头开仓(未成交)都算一个占位
if tbuyholdingex('',hlabel,4)>0 then
begin
ct:=ct+1;
end
end
//判断是否有2个方向的开仓未成交
uncompleted:tisremainex(1,'','')+tisremainex(3,'','');
if uncompleted=0 then
begin
extgbdataset(_str,ct);
end
开仓条件:1;//开仓条件
//当前自行统计的ct和 全局变量中读取的都要小于y
buycond:开仓条件 and ct<y and extgbdata(_str)<y;
if buycond then begin
tbuy(1,1,mkt);
extgbdataset(_str,extgbdata(_str)+1);
end
|