起因
—
2026年开始卷期权策略文章提到我买了期权tick数据准备做研究,后来发现只有行情,没有期权合约信息,比如结束日期,那就无法计算关键指标,研究不下去了。然后开始研究自己用CTP来记录期权合约信息和行情。
通过 reqQryClassifiedInstrument() 接口查询到当前可交易的期权合约数量有22616个,太恐怖了,各交易所分布如下:

具体各品种合约数量如下:

真是没想到啊,白银、黄金、碳酸锂三个的加起来就有6200合约
,占了接近1/3。
问题
—
有了合约列表,那就可以调用SubscribeMarketData()订阅行情,之前订阅期货、套利合约都没问题(合计大约2-3千个)。没想到一订阅这2万个期权,就老是行情连接断开,就是以下错误(CTP开发文档中的):

一开始不知道啥情况,以为是程序问题,研究了半天最后发现,限制期权数量就没事,经过测试一个CTP连接最大支持订阅5千个左右。于是咨询期货公司,是否有限制,回复是没有限制,可能是带宽有关,说订阅上万个合约基本支持不了
。
后续方案
—
方案一:按交易所来生成多个CTP连接,每个连接只订阅对应交易所的期权行情。排除白银、黄金、碳酸锂,反正这几个品种我也不做。是否可行待验证。。。
方案二:天勤有免费的期权行情,可以用它python接口做一个行情接收程序,期权的合约还是自己记录。