IF XSLT=1 THEN //开空
BEGIN IF SCC<10 AND TGLOBALSUBMITEX(3,'','',0)>=1 AND LT3>62 AND ABS(TIMETOT0(DYNAINFO(207))-LK)>5 THEN BEGIN TCANCELEX(1,3,'',STKLABEL); LK:=TIMETOT0(DYNAINFO(207)); END
TBUYSHORT(TGLOBALSUBMITEX(3,'','',0)=0 AND MB-TSELLHOLDINGEX('','',1)>=1,MB-TSELLHOLDINGEX('','',1),LMT,XCLOSE);
但是后续你外部的 if XSLT=1 如果能满足,那应该会在第二次进入时候重新开仓的。你这个XSLT变量在后面代码中是否进行了赋值操作,如果是这样 是会导致 追单所在代码的外部if无法满足了,从而无法再次开仓。
以下提供一个范例,用来在撤单后进行标记,避免撤单未成功时候执行追单的问题:
[PEL] 复制代码
globalvariable:ct:=0;
//有平多未成交单,且5秒未成交,则撤单
if tisremain(1)=1 and tsubmit(1)>5 then begin
tcancel(1,1);//撤单完成后进行追单
ct:=currenttime;
end
if currenttime-ct>=10 and ct<>0 then
begin
tbuy(1,1,mkt);
ct:=0;
end
IF XBYT=1 THEN //开多
BEGIN
IF SCC<10 AND TGLOBALSUBMITEX(1,'','',0)>=1 AND LT1>62 AND ABS(TIMETOT0(DYNAINFO(207))-LK)>5 THEN
BEGIN
TCANCELEX(1,1,'',STKLABEL);
LK:=TIMETOT0(DYNAINFO(207));
END
TBUY(TGLOBALSUBMITEX(1,'','',0)=0 AND MB-TBUYHOLDINGEX('','',1)>=1,MB-TBUYHOLDINGEX('','',1),LMT,XCLOSE);
END