各位老师, 在模拟账户使用A函数发平仓单时,对于盈利的单子,可正常发单并后续成交。 而发止损单平仓发出后,即刻显示已废除,原因显示可平仓位不足。 手工一键平仓有时也会出现这个原因, 但手工平仓有成功的时候,A函数发单就一直不成功。
使用语句如下,比如对于加载到连续合约上的策略,价格碰到止损线时,平多仓发止损单:
A_SendOrderEx(RelativeSymbol,Enum_Sell,Enum_Exit,LongPositionVolume,tickData.last-2*MinPoint,ClearLongOrderIds); (减2跳)
或 A_SendOrderEx(RelativeSymbol,Enum_Sell,Enum_ExitToday,LongPositionVolume,tickData.last-2*MinPoint,ClearLongOrderIds);
都会发单,但是直接就显示上述原因并废除。 我比较了委托价、平仓价、持仓手数,各个变量,如我发单LongPositionVolume变量的值, 都是合理设置的。 不知道是什么原因? 会不会是模拟账号的原因? 谢谢!
问题原因: 账户如果已有卖平单已经处于挂单状态(例如提前发送的止盈单),则止损单发送时就会出现上述情况。
解决方案:先撤掉止盈单,再发止损单则可以正常报单和成交。