是否有任何方法可以通过其 Java API 获得在 IB TWS 上进行的特定交易的损益(每日和迄今为止的总计)?
问问题
2649 次
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(未实现和已实现)更新
此外,对于单个 contractID,您可以reqPnLSingle
在客户端上使用:
于 2019-01-14T10:33:04.113 回答
0
您可以预先提交订单,查看所有计算,例如订单的佣金和保证金影响。
为此,请在订单定义中设置 whatIf=True。
然后,您将收到 openOrder 事件,其中包含为您进行的所有计算。
于 2021-05-09T21:48:11.397 回答