3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在进行期权量化交易策略开发时,准确快速地获取期权合约的行权价、到期日、保证金率以及标的资产信息至关重要。QMT(迅投量化)平台提供了 ContextInfo.get_option_detail_data() 接口,方便开发者查询特定期权合约的完整属性。
ContextInfo.get_option_detail_data(optioncode)ContextInfo.get_option_detail_data(optioncode)optioncode (str):期权代码,如 '10001506.SHO'。若传入空字符串 '',默认获取当前主图对应的期权品种数据。| 字典键名 (Key) | 含义说明 |
|---|---|
OptExercisePrice |
期权行权价 |
ExpireDate |
到期日 (格式为 YYYYMMDD) |
OpenDate |
发行日期 |
EndDelivDate |
期权行权终止日 |
optType |
期权类型 ('CALL' 为认购,'PUT' 为认沽) |
OptUndlCode |
期权标的证券代码 |
OptUndlMarket |
期权标的证券市场 |
VolumeMultiple / OptUnit |
合约乘数 / 期权合约单位 |
UpStopPrice / DownStopPrice |
当日涨停价 / 当日跌停价 |
LongMarginRatio / ShortMarginRatio |
多头保证金率 / 空头保证金率 |
以下示例展示了如何在 QMT 的 handlebar 驱动中获取上交所 50ETF 期权合约(如 '10001506.SHO')的行权价、到期日及期权类型:
#encoding:gbk
def init(ContextInfo):
# 初始化全局账号或股票池
ContextInfo.set_universe(['10001506.SHO'])
def handlebar(ContextInfo):
# 仅在最后一根 Bar 上提取信息
if not ContextInfo.is_last_bar():
return
option_code = '10001506.SHO'
# 调用 QMT API 获取期权详情
detail = ContextInfo.get_option_detail_data(option_code)
if detail:
strike_price = detail.get('OptExercisePrice') # 行权价
expire_date = detail.get('ExpireDate') # 到期日
opt_type = detail.get('optType') # CALL 或 PUT
undl_code = detail.get('OptUndlCode') # 标的代码
print(f"期权代码: {option_code}")
print(f"期权类型: {opt_type}")
print(f"行权价格: {strike_price}")
print(f"到期日期: {expire_date}")
print(f"标的代码: {undl_code}")
else:
print("未能获取到期权详细数据,请检查合约代码或补全本地数据。")
.SHO,深交所期权代码为 .SZO。