63 浏览
0
0条评论

有什么办法根据主连代码获取到该品种的所有有效期货合约代码么?或者获取该品种的近月合约代码

chaos 已回答的问题 20小时 前
0

可以,分两种情况处理:

1. 如果是想知道“主连当前对应的实际主力合约”,订阅主连代码后看 `quote.underlying_symbol`。例如主连代码是 `KQ.m@SHFE.rb`,先 `api.get_quote(主连代码)`,再 `api.wait_update()`,然后读取这个 quote 的 `underlying_symbol` 字段即可。

回测里也可以用这个字段。如果需要处理换月,可以在循环中用 `api.is_changing(quote, 字段名)` 判断 `underlying_symbol` 是否变化。

2. 如果是想取该品种所有未下市的期货合约,用 `query_quotes` 按合约类型、交易所、品种筛选。例如:

`api.query_quotes(ins_class=FUTURE, exchange_id=SHFE, product_id=rb, expired=False)`

这里会返回 rb 品种未下市的期货合约列表。

如果“近月合约”指最靠近交割的未下市期货合约,可以对上面返回的合约列表再调用 `query_symbol_info`,然后按 `delivery_year`、`delivery_month`、`expire_datetime` 排序,取最前面的 `instrument_id`。

注意区分:`underlying_symbol` 取到的是主连当前映射的主力合约;近月合约不一定等于主力合约。

chaos 发表新评论 20小时 前

有其他问题欢迎加入官方Q群748265037一起交流

您正在查看1个答案中的1个,单击此处查看所有答案。