合约查询

本页目录

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

查询列表#

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默认不筛选,分别用于筛选交易所、品种
is_mainTrue 仅主力,False 仅非主力,默认不筛选;期权均为非主力

当前合约列表面向未过期合约。is_main=True 只是查询当时的主力标记,不是主力连续合约订阅;返回具体合约后,watch_quote()、watch_kline() 会继续观察该合约,不会自动换月。需要换月时,由应用重新查询、核对持仓和委托,再明确切换。

合约代码#

格式为 交易所.合约。例如 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"])
    details = info["data"]
    print("名称", details.get("name"))
    print("最小变动价位", details.get("price_tick"))
    print("合约乘数", details.get("volume_multiple"))
    print("限价委托手数范围", details.get("min_limit_order_volume"),
          details.get("max_limit_order_volume"))
顶层字段类型
symbolstr
exchange_idstr
product_idstr
ins_classstr
is_mainbool
datadict

data 中的 price_tick 是最小变动价位;下单前应核对限价是否为有效价位,不能只按 price_decs 保留小数位。读取值缺失、为空或不符合预期时,先核实合约信息,不应自行假定为 0。完整常用字段见 合约详情字典,最终委托仍由柜台校验。

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

联系我们

微信扫一扫