账户:='1000';
套利品种1:='TA09';
套利品种2:='TA10';
JC:"TA09$CLOSE"-"TA10$CLOSE";
//下单
IF JC<100 AND TBUYHOLDINGEX(账户,套利品种2,0)=0 and TSELLHOLDINGEX(账户,套利品种1,0)=0 then
begin
TBUYSHORT(1,1,MKT ,0,0,账户,套利品种1);
TBUY(1,1,MKT ,0,0,账户,套利品种2);
END
IF JC<100 AND TBUYHOLDINGEX(账户,套利品种2,0)>0 and TSELLHOLDINGEX(账户,套利品种1,0)>0 then
begin
Tsell(1,1,MKT ,0,0,账户,套利品种2);
TSELLSHORT(1,1,MKT ,0,0,账户,套利品种1);
END
这样,为什么每次开机重新启动之后,重新启动预警,在有持仓的情况下都会再开一手?有什么解决办法吗?
TSELLHOLDINGEX是账户的。
你是不是先启动的交易,然后紧接着登录账户?(两者之间间隔比较短)
你可以增加一个条件判断账户是否正常登录。
TACCOUNT( 3)<>0;//通过判断账户资金不为0,(即已经可以获取到持仓数量)
应该先登录账户,在启动模型,就不会重复发单了是吗?
由于你使用了账号函数,但是账号登录后,需要一定的时间从柜台获取账号持仓等信息。
如果时间太短可能获取不到实际仓位信息,所以让你在条件中增加上面的条件进行处理。就不应该再有重复下单的动作了