🚀 AI 一键生成 qmt 策略代码
立即体验

QMT平台如何获取期权合约详细信息?(行权价、到期日、合约乘数API详解)

qmt | 发布时间: 2026/8/7
以下内容由 EasyQuant 生成。

问题描述

qmt 期权 API 教程:获取期权行权价与到期日信息
QMT 怎么获取特定期权合约的行权价、到期日以及合约乘数等详细信息?

解决方案

在QMT(迅投极速量化交易系统)中,获取期权合约的详细信息(如行权价、到期日、合约乘数、期权类型等)主要通过 ContextInfo.get_option_detail_data(optioncode) 接口来实现。以下是详细的接口说明与代码示例:

一、核心API介绍

ContextInfo.get_option_detail_data(optioncode)

  • 释义:获取指定期权品种的详细信息。
  • 参数
    • optioncode (string):期权合约代码,例如 '10001506.SHO'。如果传入空字符串 '',则默认获取当前主图的期权品种信息。
  • 返回值:返回一个字典(dict),包含该期权合约的各项静态与动态属性。

二、返回字典常用字段对照表

通过该API获取的字典中,包含以下关键字段:

键名 (Key) 含义 说明
OptExercisePrice 期权行权价 该期权合约规定的行权价格
ExpireDate 到期日 期权合约的最后到期日期 (格式通常为 YYYYMMDD)
VolumeMultiple 合约乘数 每张期权合约对应的标的证券数量
optType 期权类型 'CALL' (认购) 或 'PUT' (认沽)
OptUndlCode 标的证券代码 该期权对应的标的证券代码
OpenDate 发行日期 期权合约的上市交易日期

三、完整Python代码示例

您可以在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("未获取到期权合约信息,请检查合约代码是否正确或本地数据是否补充完整。")

四、注意事项

  1. 数据补充:在使用此API前,请确保已通过QMT客户端的“数据管理”功能补充了对应期权市场(如 SHO 上交所期权、SZO 深交所期权)的过期合约列表历史行情数据
  2. 代码编码:QMT Python环境要求脚本首行必须声明 #coding:gbk,否则中文注释可能会导致编译报错。