3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在 QMT 平台中,get_stock_list_in_sector 函数主要用于获取当前板块的成分股,通常不支持直接获取已经退市或过期的期权合约列表。因此,您在使用该函数获取过期期权时会发现没有数据。
要获取历史时刻的期权列表或过期期权合约,您应该使用 QMT 专门提供的期权和过期合约 API,并且必须提前在数据管理中下载/补充“过期合约列表”数据。
以下是正确的获取方法:
get_option_list 获取指定标的的历史期权ContextInfo.get_option_list(undl_code, dedate, opttype, isavailable) 可以用来获取指定期权标的在某个历史日期的期权列表。
参数说明:
undl_code:期权标的代码,如 '510300.SH'。dedate:期权到期月或当前交易日期。"YYYYMM" 格式为期权到期月,"YYYYMMDD" 格式为获取指定日期交易的期权。opttype:期权类型,如 "CALL"(认购),"PUT"(认沽),为空时认购认沽都取。isavailable:是否可交易。当 dedate 为 "YYYYMMDD" 格式时,isavailable 为 False 时返回该日期已经上市的认购合约(包括退市/过期的)。示例代码:
def handlebar(ContextInfo):
# 获取20210104当天上交所510300ETF已经上市的认购合约(包括退市/历史合约)
data = ContextInfo.get_option_list('510300.SH', '20210104', "CALL", False)
print("历史期权列表:", data)
get_his_contract_list 获取指定市场的全部过期合约如果您需要获取某个市场所有的过期合约,可以使用 ContextInfo.get_his_contract_list(market)。
参数说明:
market:市场代码,如 'SHO'(上交所期权), 'SZO'(深交所期权)。示例代码:
def handlebar(ContextInfo):
# 获取深交所期权过期合约列表
szo_his_options = ContextInfo.get_his_contract_list('SZO')
print("深交所过期期权列表:", szo_his_options)
无论使用哪种方法获取历史或过期期权,前提条件是您必须在 QMT 客户端的【数据管理】中,手动勾选并补充**“过期合约列表”**以及对应的历史行情数据,否则接口将返回空数据。