3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
get_his_contract_list 获取已退市期权与期货合约代码在进行期权或期货历史策略回测(避免生存者偏差)及数据分析时,获取已过期/已退市的合约列表是至关重要的一步。QMT(迅投 Context Python API)提供了内置函数 ContextInfo.get_his_contract_list 来帮助开发者提取特定市场的历史过期合约。
ContextInfo.get_his_contract_list(market)market (string):市场简称代码。常见市场包含:
IF:中金所(股指期货、国债期货等)SHO:上交所期权SZO:深交所期权SF:上期所DF:大商所ZF:郑商所list:包含过期合约代码(str)的列表。以下是在 QMT 策略脚本(如 handlebar 或 init)中调用该接口的完整示例:
#coding:gbk
def init(ContextInfo):
pass
def handlebar(ContextInfo):
# 仅在最后一根 Bar 上运行一次,避免重复打印
if not ContextInfo.is_last_bar():
return
# 1. 获取中金所(IF)过期期货/期权合约列表
cfinancial_his_contracts = ContextInfo.get_his_contract_list('IF')
print(f"中金所历史过期合约数量: {len(cfinancial_his_contracts)}")
if cfinancial_his_contracts:
print("中金所部分历史合约示例:", cfinancial_his_contracts[:5])
# 2. 获取上交所期权(SHO)过期合约列表
sho_his_contracts = ContextInfo.get_his_contract_list('SHO')
print(f"上交所期权历史过期合约数量: {len(sho_his_contracts)}")
if sho_his_contracts:
print("上交所期权部分历史合约示例:", sho_his_contracts[:5])
[],请检查 QMT 客户端顶部菜单的 操作 -> 数据管理 -> 补充数据,勾选并补充对应的过期合约列表与历史数据。ContextInfo.get_option_detail_data(optioncode) 获取详细的合约信息。SHO 表示上交所期权,而非 SH)。