3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在QMT(迅投极速量化交易系统)中,获取期权合约的详细信息(如行权价、到期日、合约乘数、期权类型等)主要通过 ContextInfo.get_option_detail_data(optioncode) 接口来实现。以下是详细的接口说明与代码示例:
ContextInfo.get_option_detail_data(optioncode)optioncode (string):期权合约代码,例如 '10001506.SHO'。如果传入空字符串 '',则默认获取当前主图的期权品种信息。通过该API获取的字典中,包含以下关键字段:
| 键名 (Key) | 含义 | 说明 |
|---|---|---|
OptExercisePrice |
期权行权价 | 该期权合约规定的行权价格 |
ExpireDate |
到期日 | 期权合约的最后到期日期 (格式通常为 YYYYMMDD) |
VolumeMultiple |
合约乘数 | 每张期权合约对应的标的证券数量 |
optType |
期权类型 | 'CALL' (认购) 或 'PUT' (认沽) |
OptUndlCode |
标的证券代码 | 该期权对应的标的证券代码 |
OpenDate |
发行日期 | 期权合约的上市交易日期 |
您可以在QMT的策略编辑器中编写如下代码来获取并打印期权合约的详细信息:
#coding:gbk
def init(ContextInfo):
# 设定需要查询的期权合约代码(以上交所50ETF期权为例)
ContextInfo.option_code = '10003280.SHO'
print("初始化完成,准备在handlebar中获取期权数据...")
def handlebar(ContextInfo):
# 仅在最后一根Bar运行一次,避免重复打印
if not ContextInfo.is_last_bar():
return
# 获取期权详细信息
option_detail = ContextInfo.get_option_detail_data(ContextInfo.option_code)
if option_detail:
print("=== 期权合约 [%s] 详细信息 ===" % ContextInfo.option_code)
print("期权类型: %s" % option_detail.get('optType'))
print("行权价格: %s 元" % option_detail.get('OptExercisePrice'))
print("到期日期: %s" % option_detail.get('ExpireDate'))
print("合约乘数: %s" % option_detail.get('VolumeMultiple'))
print("标的代码: %s.%s" % (option_detail.get('OptUndlCode'), option_detail.get('OptUndlMarket')))
print("上市日期: %s" % option_detail.get('OpenDate'))
else:
print("未获取到期权合约信息,请检查合约代码是否正确或本地数据是否补充完整。")
SHO 上交所期权、SZO 深交所期权)的过期合约列表与历史行情数据。#coding:gbk,否则中文注释可能会导致编译报错。