按下面代码的逻辑这样试下吧
需要同步修改下单语句相关的代码。下面是以开多为例的。
如果你下单语句比较多,语句会非常繁杂。 你可以先用金字塔模拟先测试下,但是模拟可能很难有部分未成交的情况。 所以这个测试也比较麻烦。
[PEL] 复制代码 globalvariable:kcv:=0;//初始开仓时候记录下委托数量,供后续调用
globalvariable:tcanceln:=0;//记录操作过的追撤单,避免重复追撤
ss:=10;//开仓手数
kd:1;//开仓条件
//超过10s 依然是部分成交的状态,注意是部分成交,如果需要全部未成交也追撤单 调整下 tremainqty(1,'','')<kcv 这句的判断把等于也包含在内即可
if tremainqty(1,'','')>0 and tremainqty(1,'','')<kcv and tisremainex(1,'',stklabel)=1 and tsubmitex(1,'','')>=1 and kcv<>0 and tcanceln=0 then
begin
ss0:=tisremainex(1,'',stklabel);//未成交手数
tcancelex(1,1,'',stklabel);
tbuy(1,ss0,mkt);
tcanceln:=1;
end
//初始开仓
if kd and tbuyholdingex('','',1)=0 and tisremainex(1,'',stklabel)=0 then
begin
//开仓价
p1:=c-4*mindiff;
tbuy(1,ss,lmt,p1);
//首次开仓时候记录下初始的开仓量.
kcv:=ss;
tcanceln:=0;
end
|