Как получить 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 со всеми вычислениями, сделанными за вас.