Как получить P&L в сделке через API Java Interactive Brokers TWS

Есть ли способ получить прибыль и убыток (ежедневно и всего до даты) по конкретной сделке, заключенной на IB TWS через его Java API?

3 ответа

Решение

Вы можете, но не так, как вам кажется. Вся прибыль и убыток в API рассчитывается вами до тех пор, пока сделка не будет закрыта, а затем вы можете использовать метод комиссии Report оболочки. CommissionReport отправляется после каждого execDetails. API документ

Вы всегда можете проверить свои заявления на предыдущие прибыли и убытки.

Поток такой.

  • разместите торговлю и получите цену заполнения от execDetails
  • получить комиссию за открытие от комиссии
  • на каждом тике рассчитывайте прибыль по открытой позиции, используйте бид / аск для реализма, но это все равно форекс
  • закрыть торговлю и получить цену от execDetails
  • получить комиссионные от комиссии Report снова
  • рассчитать прибыль / убыток по закрытой сделке
  • Также обратите внимание, что комиссия Report имеет поле m_realizedPNL, которое вы можете использовать, но я никогда не пробовал.

В TWS v9.72+ API есть reqPnl метод на EClient, который можно использовать для подписки на обновления PnL в реальном времени (нереализованные и реализованные) для полного портфеля через связанный метод на EWrapper

https://interactivebrokers.github.io/tws-api/classIBApi_1_1EClient.html

Кроме того, для одного contractID вы можете использовать: reqPnLSingle на клиенте.

https://interactivebrokers.github.io/tws-api/interfaceIBApi_1_1EWrapper.html

Вы можете предварительно подать заказ, чтобы увидеть все расчеты, такие как влияние заказа на комиссию и маржу.

для этого установите whatIf=True в определении порядка.

затем вы получите события openOrder со всеми вычислениями, сделанными за вас.

Другие вопросы по тегам