Получение имен портфелей и существующих заказов с помощью Interactive Brokers IBPy
Я экспериментировал с IBPy некоторое время; однако две следующие вещи ускользали от меня:
а) Как называется реальное портфолио, которому принадлежат позиции? Я знаю, как найти позиции, их стоимость, значения и т. Д. (Используя message.UpdatePortfolio), но в нашей торговой симуляции, вероятно, будет много портфелей, и это поможет узнать, какому портфелю принадлежит каждая позиция. Можно ли даже отправить информацию в IB в нескольких портфелях?
б) Как узнать существующие заказы, используя IBPy? Поэтому, когда я запускаю код, я хочу, чтобы он отображал все позиции, а также их типы ордеров и лимиты (например, если это лимитный ордер для AAPL, я хочу найти лимитную цену и т. Д.)
Большое спасибо!
1 ответ
А) Насколько я знаю, IB API не имеет понятия "Портфолио". Вероятно, вам нужно сохранить список заказов, для которых был составлен портфель, а затем сопоставить данные заказов, предоставленные IB, с данными вашего портфеля и данными заказов.
б) IB отслеживает клиента (то есть вашего клиента, который вызывает код API - обычно по умолчанию 0), который выставил ордера.
Если вы хотите узнать, какие открытые ордера были введены через ваш клиент, тогда: client.reqOpenOrders();
Если вы хотите знать все открытые ордера, т. Е. Ордера, введенные через вашего клиента плюс других клиентов или TWS, тогда: client.reqAllOpenOrders();