3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在 QMT(迅投量化交易平台)中进行期权策略开发时,获取标的证券(如 50ETF、300ETF 或个股)对应的期权链是极常见的需求。通过 API 提供的 ContextInfo.get_option_undl_data() 函数,可以方便地检索标的代码对应的所有期权合约信息。
ContextInfo.get_option_undl_data(undl_code_ref)undl_code_ref (string):期权标的代码,格式为 代码.市场,例如 '510300.SH'。当传入空字符串 '' 时,将获取全市场所有标的对应的期权数据。list,包含该标的对应的期权合约代码列表。dict,以标的代码为 Key,期权合约列表为 Value。以下是一个在 QMT handlebar 驱动中查询 300ETF (510300.SH) 对应期权链并输出的完整 Python 示例:
#coding:gbk
def init(ContextInfo):
# 设置运行标的
ContextInfo.set_universe(['510300.SH'])
print("策略初始化完成")
def handlebar(ContextInfo):
# 仅在最后一根 K 线运行一次,避免重复打印
if not ContextInfo.is_last_bar():
return
target_code = '510300.SH'
# 获取指定标的的期权链合约列表
option_chain = ContextInfo.get_option_undl_data(target_code)
print(f"标的 {target_code} 对应的期权合约数量: {len(option_chain)}")
print("前 5 个期权合约示例:", option_chain[:5])
# 进一步获取某个期权的详细信息(如行权价、到期日等)
if option_chain:
sample_option = option_chain[0]
option_detail = ContextInfo.get_option_detail_data(sample_option)
print(f"合约 {sample_option} 详细信息:", option_detail)
ContextInfo.get_option_list(undl_code, dedate, opttype, isavailable) 函数。