BUY 指令自动平仓 开仓顺序问题

BUY 指令自动平仓 开仓顺序问题 BUY 指令实盘时发现 ,持有空仓1手 触发条件,但程序先开多仓,再触发平空仓 ,因为开多仓在平空仓前,没有平空资金不足,导致开多仓失败(显示资金不足), 请问如何修改? If ( MarketPosition <> 1 && zhisun_xinhao ) { Buy(Lots ,Max(Open,min_Low) ); }

If ( MarketPosition <> 1 && zhisun_xinhao ) { Buytocover (Lots ,Max(Open,min_Low) ); --------如果增加这段代码,先进行平仓,可以吗? Buy(Lots ,Max(Open,min_Low) ); }

回复:您现在的问题,不是平仓指令和开仓指令发出去的顺序问题。因为即便是平仓指令先发出去再发开仓指令,两者之间的时间差,也无法等到平仓指令的资金回来,所以开仓指令还是会报资金不足的。

回复:如果不改代码,用TB的监控器功能,开仓资金不足成交不了后,监控器接管重新下单,这样可行吗?

回复:可以用监控器同步的

平空仓和开多仓的命令是同时发出的,因为回报不可能那么快,所以会出现资金不足的情况。解决办法: (1)增加资金,这是最好最简单的选择; (2)如果不能增加资金,但具备很强的编程能力,可以用A函数来写策略,每次平仓反手会等平仓指令成交后,再发出开仓指令; (3)如果不会用A函数写策略,可以参考 http://www.tbquant.net/dist/index.html#/?navigate=&cid=510&position=toc48 案例8 试下