如何通过Interactive Brokers TWS Java API获得P& L的交易

时间:2015-05-04 15:13:20

标签: forex tws interactive-brokers

有没有办法通过其Java API在IB TWS上进行的特定交易中获得损益(每日和总到日期)?

3 个答案:

答案 0 :(得分:3)

你可以,但不是你想要的方式。 API中的所有损益都由您计算,直到交易结束,然后您可以使用包装器的commissionReport方法。在每个execDetails之后发送一个commissionReport。 API doc

您可以随时查看您的报表以了解以前的损益。

流程是这样的。

  • 进行交易并从execDetails获取补差价
  • 从commissionReport
  • 获得开放佣金
  • 在每个tick上计算未平仓头寸利润,使用买/卖逼真,但无论如何都是外汇所有
  • 关闭交易并从execDetails获得价格
  • 再次从CommissionReport获得佣金
  • 计算已结算的贸易盈亏
  • 还要注意,commissionReport有一个你可以使用的字段m_realizedPNL,但我从未尝试过。

答案 1 :(得分:0)

在TWS v9.72 + API中,EClient上有一种reqPnl方法,该方法可用于通过以下方法中的关联方法来订阅整个产品组合的实时PnL(未实现和已实现)更新。 EWrapper

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

此外,对于单个contractID,您可以在客户端上使用:reqPnLSingle

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

答案 2 :(得分:0)

您可以预先提交订单,以查看所有计算,例如订单的佣金和保证金影响。

要做到这一点,请在订单定义中设置 whatIf=True。

然后您将收到 openOrder 事件,以及为您完成的所有计算。