1

TWS API 具有reqContractDetails获取合约详细信息的功能,但速度很慢。因为,正如 TWS API 文档所说,带有结果的事件流(期权合约列表)将受到限制。

它建议改用该reqSecDefOptParams函数,该函数以选项链的列表expirationsstrikes选项链响应。

问题是- 如何进一步使用这些expirationsstrikes获得单独的期权合约?

reqContractDetails可以调用 来获取 和 的每个组合的expiration个人合同strike。因此,不是reqContractDetails用 N 个事件的限制列表响应的 1 个调用 - 相反 -reqContractDetails将进行 N 个调用以获得 1 个事件。

但似乎即使在这样的个人调用中 - 它仍然受到限制,在说 50 个调用之后,下一个调用reqContractDetails被限制(我在日志中看到首先像 20-50 个调用响应很快,然后它只是阻塞并等待了很多)。

有没有更好的方法来获取数据?我需要获得包含所有合约的完整期权链

更新:

半年后 - 我制作了 TWS API 驱动程序ib_api - 我发现从 TWS API 获取价格的最佳方式是 - 1)首先获取单个期权合约 2)然后通过合约 ID 获取价格 3)小批量 4)重试,因为会有随机错误。该驱动程序提供 REST API 并支持所有语言,您可以查看该get_stock_option_chain_prices功能ibm.nim以查看这些步骤的详细信息 - 如何获取股票期权价格。

4

0 回答 0