3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
针对您在获取过期(退市)合约时遇到的问题,在 QMT 平台的标准 Python API 中,获取指定市场过期合约列表的推荐方式是使用 ContextInfo.get_his_contract_list(market) 接口,而不是依赖于板块名称匹配。
用法: ContextInfo.get_his_contract_list(market)
释义: 获取指定市场过期合约列表。
参数:
market: 市场代码,如 'SH'(上交所), 'SZ'(深交所), 'SHO'(上交所期权), 'SZO'(深交所期权), 'IF'(中金所)等。返回:
list: 期权/期货/股票等合约代码列表。获取过期合约前,需要手动在 QMT 客户端补充过期合约列表数据。 请在 QMT 客户端的【数据管理】中,勾选并下载对应的过期合约数据,否则接口可能返回空列表。
#coding:gbk
def init(ContextInfo):
pass
def handlebar(ContextInfo):
# 仅在最后一根K线执行,避免重复打印
if not ContextInfo.is_last_bar():
return
# 获取中金所过期合约列表
if_expired = ContextInfo.get_his_contract_list('IF')
print('中金所过期合约数量:', len(if_expired))
print('中金所过期合约示例:', if_expired[:10])
# 获取上交所期权过期合约列表
sho_expired = ContextInfo.get_his_contract_list('SHO')
print('上交所期权过期合约数量:', len(sho_expired))
如果您在独立版 xtquant 中通过 get_sector_list 找不到“过期”板块,建议切换到 QMT 内置策略环境中使用 ContextInfo.get_his_contract_list,或者确认您的 QMT 终端【数据管理】中是否已经成功下载了“过期合约”相关的数据包。