订单 ID 下订单 Java 交互式经纪人



目前每次我下订单时

order.m_action = "BUY";
order.m_totalQuantity = 1;
order.m_lmtPrice = 4.00;
order.m_orderType = "LMT";  
order.m_account = "U123123";
int randomNum = ThreadLocalRandom.current().nextInt(1, 5564 + 1)                    
m_s.placeOrder(randomNum, c, order);

我收到错误:

1041 103 Duplicate order id

关于为新挂单生成新ID的任何想法?

谢谢。

您的 orderId 不应该是随机数。 他们必须一直在增加数字。last id used +1是最好的算法。Duplicate order id实际上可以表示"不是递增的订单 Id"。

请注意,当套接字连接启动时,IB 会在 nextValidId 回调中返回下一个有效 id,因此您始终知道从哪个数字开始。

有些人(包括我)对某些请求使用数字范围,以便 id 错误可以与请求类型相关联。 例如。我对reqMktData类型的请求使用数字<1000。一旦您拨打placeOrder号码>1000,IB将永远不会允许您使用较低的号码下单。

您实际上可以重置orderId序列,但我从未这样做过,直到我用完ints才会这样做。

相关内容

  • 没有找到相关文章

最新更新