金字塔只提供时间追单,有没有可以设置价差追单的,达到多少价差再追单?
软件中追撤单功能已经考虑到报单价和现价价差的因素,只不过需要时间因素作为大前提; 单独用价差作为条件的没有,后台的话可以考虑用代码来实现
//监控未成交单
WCJ:=TREMAINQTY( 1, 账号,品种);
IF WCJ<>0 THEN BEGIN
A:=WCJ;
END
B:=TENTERPRICE - CLOSE//上次委托价和现价的价差
//价差大于10个价位,对未成交单撤单并追单
IF WCJ>0 AND B>10 THEN BEGIN
TCANCELEX(1,1,账号,品种);
TBUY(WCJ=0,A,MKT,0,账号,品种);
END
ac:='628824';//下单账户
B:=TENTERPRICE-CLOSE;//上次委托价和现价的价差
wt:=tremainqty(0,ac,stklabel);
buyhold:=tbuyholdingex(ac,stklabel,1);
sellhold:=tsellholdingex(ac,stklabel,1);
if wt>0.5 and B>10*MINDIFF then tcancelex(1,0,ac,stklabel);//如果用软件自带的撤单功能,这句删除。
if wt<0.5 then begin
kc1:=max(cc628824,0)-buyhold;
kc2:=abs(min(cc628824,0))-sellhold;
if kc1<-0.5 then tsell(1,abs(kc1),mkt,0,0,ac),allowrepeat;
if kc2<-0.5 then tsellshort(1,abs(kc2),mkt,0,0,ac),allowrepeat;
if sellhold<0.5 and kc1>0.5 then tbuy(1,kc1,mkt,0,0,ac),allowrepeat;
if buyhold<0.5 and kc2>0.5 then tbuyshort(1,kc2,mkt,0,0,ac),allowrepeat;
end
加载到后台的时候有的品种执行,有的品种不执行,看看这样写对不?
从代码上看,未发现有逻辑错误。建议用debugfile函数,输出各个条件的值,来分析哪个条件不满足导致的不执行。