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

如何在 QMT 中使用 bsm_iv 接口计算期权隐含波动率?

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

问题描述

请根据以下 SEO 主题生成完整页面内容:

Title: qmt 期权隐含波动率计算:bsm_iv 接口与反推应用

Question: 如何根据期权市场现价用 bsm_iv 计算隐含波动率?

解决方案

在 QMT 中使用 bsm_iv 接口计算期权隐含波动率

在期权量化交易中,隐含波动率(Implied Volatility, IV) 是评估期权价格高低及市场预期风险的核心指标。QMT Python API 提供了内置函数 ContextInfo.bsm_iv(),基于 Black-Scholes-Merton (BSM) 模型,通过期权当前市场价格反推其隐含波动率。


1. ContextInfo.bsm_iv() 接口说明

语法与用法

ContextInfo.bsm_iv(optionType, objectPrices, strikePrice, optionPrice, riskFree, days, dividend=0)

参数说明

参数名 类型 详细说明
optionType str 期权类型:'C' 表示认购期权(Call),'P' 表示认沽期权(Put)
objectPrices float / list 标的证券当前价格
strikePrice float 期权行权价
optionPrice float 期权市场当前价格(现价)
riskFree float 无风险年化收益率(如 3% 填 0.03
days int / float 期权剩余到期天数
dividend float 标的资产年化分红率(可选,缺省为 0
ContextInfo object QMT 策略全局上下文对象

返回值

  • 返回 doublefloat)类型的隐含波动率数值(例如返回 0.23 代表 IV 为 23%)。若输入参数非法,则返回 nan

2. 核心代码示例

2.1 基础计算示例

假设某标的现价为 3.51 元,某剩余 15 天到期、行权价为 3.50 元的认购期权市场现价为 0.0725 元,无风险利率为 3%:

# #coding:gbk

def init(ContextInfo):
    pass

def handlebar(ContextInfo):
    # 期权参数设置
    opt_type = 'C'       # 认购期权
    underlying_price = 3.51  # 标的现价
    strike_price = 3.50      # 行权价
    option_price = 0.0725    # 期权市场现价
    risk_free = 0.03         # 无风险利率 3%
    days_left = 15           # 剩余天数
    
    # 调用 bsm_iv 计算隐含波动率
    iv = ContextInfo.bsm_iv(opt_type, underlying_price, strike_price, option_price, risk_free, days_left)
    
    print(f"计算所得隐含波动率 (IV): {iv:.4f}")

3. 常见应用场景

  1. 波动率套利与均值回归策略:当计算出的 IV 显著偏离历史波动率(HV)或波动率曲面均值时,可构建 Delta 中性策略卖出高估期权或买入低估期权。
  2. 配合行情实时监控:结合 ContextInfo.get_full_tick()ContextInfo.subscribe_quote() 获取标的及期权最新 Tick 价格,动态更新 IV,实现盘中高频监控。
  3. 与获取实时 IV 接口对比:QMT 另外提供了 ContextInfo.get_option_iv(optioncode) 接口直接获取交易所/柜台计算好的实时 IV;而 bsm_iv() 允许开发者传入自定义无风险利率、分红率及预估价格,灵活性更高。