Как мы могли бы использовать ibpy для редактирования заказов?

Я знаю, что в ibpy я мог бы разместить заказ, чтобы создать новый заказ:

    self._tws.placeOrder(order_id,contract, order)

Однако предположим, что я знаю, что хочу изменить предельную цену некоторого уже размещенного ордера. Есть ли что-то вроде:?

    self._tws.editOrder(order_id,contract, order)

Или просто используйте размещение заказа с конкретным order_id?


person WEQA HUDSA    schedule 22.12.2016    source источник


Ответы (1)


Вы просто снова вызываете placeOrder с тем же orderId, но с измененными данными. Вы можете изменить только определенные поля, но с m_lmtPrice все просто.

Из документов,

Модификация открытого ордера через API может быть осуществлена ​​тем же клиентом, который разместил первоначальный ордер. В случае заказов, размещенных вручную в TWS, заказ может быть изменен клиентом с идентификатором 0.

Чтобы изменить ордер, просто снова вызовите функцию IBApi.EClient.placeOrder с теми же параметрами, которые использовались для размещения исходного ордера, за исключением измененного параметра. Сюда входит IBApi.Order.OrderId, который должен совпадать с IBApi.Order.OrderId оригинала. Обычно не рекомендуется пытаться изменить параметры ордера, кроме цены и размера ордера. Чтобы изменить другие параметры, может быть предпочтительнее отменить первоначальный заказ и разместить новый заказ.

Ссылка http://interactivebrokers.github.io/tws-api/modifying_orders.html#gsc.tab=0

person brian    schedule 22.12.2016