2

是否有任何方法可以通过其 Java API 获得在 IB TWS 上进行的特定交易的损益(每日和迄今为止的总计)?

4

3 回答 3

4

你可以,但不像你问的那样。API中的所有盈亏由您计算,直到交易结束,然后您可以使用包装器的commissionReport方法。在每个 execDetails 之后发送一个commissionReport。 API文档

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

流程是这样的。

  • 进行交易并从 execDetails 获取执行价格
  • 从commissionReport获得开盘佣金
  • 在每一次报价计算未平仓头寸利润,使用买/卖现实主义,但这就是外汇的全部
  • 关闭交易并从 execDetails 获取价格
  • 再次从commissionReport中获得佣金
  • 计算平仓盈亏
  • 另请注意,commissionReport 有一个您可以使用的字段 m_realizedPNL,但我从未尝试过。
于 2015-05-05T13:14:25.233 回答
2

在 TWS v9.72+ API 中,EClient 上有一个reqPnl方法,可用于通过 EWrapper 上的关联方法订阅完整投资组合的实时 PnL(未实现和已实现)更新

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

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

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

于 2019-01-14T10:33:04.113 回答
0

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

为此,请在订单定义中设置 whatIf=True。

然后,您将收到 openOrder 事件,其中包含为您进行的所有计算。

于 2021-05-09T21:48:11.397 回答