合约查询

交易所、品种、主力筛选与合约详情。

本页目录

查询列表

futures = api.query_symbols("FUTURE")
main_futures = api.query_symbols("FUTURE", exchange_id="SHFE", is_main=True)
rebar = api.query_symbols("FUTURE", exchange_id="SHFE", product_id="rb")
options = api.query_symbols("OPTION", exchange_id="DCE")

ins_class 必填,只能是 "FUTURE" 或 "OPTION"。需要两类时分别查询。exchange_id、product_id 默认 None,表示不筛选;传入时必须是非空字符串。is_main 支持 True、False、None,不接受数字代替布尔值。期权的 is_main 均为 False。

返回 list[str],可能为空。订阅前先检查长度,不假定列表顺序具有策略含义。

合约代码

格式为 交易所.合约。例如 SHFE.rb2610、DCE.a2611-C-3700 仅用于说明格式,并不保证该合约在你运行程序时仍然有效。交易所和品种代码大小写按服务返回值保留,不把整段代码统一转成大写或小写。

查询详情

symbols = api.query_symbols("FUTURE", is_main=True)
if symbols:
    info = api.query_symbol_info(symbols[0])
    print(info["symbol"], info["ins_class"])
    print(info["data"])

顶层字段:symbol: str、exchange_id: str、product_id: str、ins_class: str、is_main: bool、data: dict。

data 是合约详细信息。期权还包含标的、认购/认沽类别、行权价等信息;具体键由数据服务提供,SDK 没有为 data 定义固定静态字段集合。程序应检查实际返回值,不假定未在当前服务确认过的键必然存在。

这两个方法都是调用时的一次性查询,不返回观察句柄,无需调用 .data() 或 .is_changing(),也不会在 wait_update() 后原地更新查询结果。

接口说明依据 exsdk 1.1.2 的公开接口与本地使用指南整理。