OptionMaster期权波动率交易模块使用指南:从波动率曲面监控到电子眼自动交易
【免费下载链接】vnpy基于Python的开源量化交易平台开发框架项目地址: https://gitcode.com/gh_mirrors/vn/vnpy
导读
OptionMaster是VeighNa(vn.py)生态中专用于期权波动率交易的功能模块,面向国内期权市场(股指期权、ETF期权、商品期权等)设计,集期权实时定价、波动率曲面跟踪、持仓希腊值监控、组合压力测试与电子眼自动交易于一体。阅读本文后,你将掌握OptionMaster的完整使用流程:从加载启动、配置期权组合,到利用T型报价与波动率曲线进行行情研判,再到通过波动率管理设定定价曲线、借助Delta对冲与电子眼算法实现自动交易,并理解其底层定价与算法逻辑。
功能简介
OptionMaster的核心能力覆盖期权交易员的完整工作链路:
- 期权实时定价:基于内置定价模型对期权合约进行理论定价;
- 波动率曲面跟踪:以图表形式实时监控各期权链的隐含波动率曲线形态;
- 持仓希腊值监控:从组合、标的物、期权链、期权合约四个维度监控风险敞口;
- 组合压力测试:对整体持仓进行情景分析与3D风险曲面绘制;
- 电子眼自动交易:基于预设定价波动率曲线,自动捕捉市场瞬时交易机会。
根据 README.md 的功能清单说明,该模块“针对国内期权市场设计,支持多种期权定价模型、隐含波动率曲面计算、希腊值风险跟踪等功能”;docs/community/info/introduction.md 中进一步阐述其定位:“提供波动率曲线图表,允许用户作出相应的判断分析,进而使用波动率管理组件设置定价参考波动率,然后通过期权电子眼算法自动扫描市场上的交易机会并瞬时完成交易”。
加载启动
VeighNa Station加载
启动登录VeighNa Station后,点击【交易】按钮,在配置对话框中的【应用模块】栏勾选【OptionMaster】即可启用该模块。
脚本加载
如果使用脚本方式启动VeighNa Trader,需要在启动脚本中完成两步注册。参考仓库示例 examples/veighna_trader/run.py 中的标准写法:
# 写在顶部 from vnpy_optionmaster import OptionMasterApp # 写在创建main_engine对象后 main_engine.add_app(OptionMasterApp)其中OptionMasterApp继承自VeighNa框架的AppTemplate,通过main_engine.add_app()注册后,模块的界面入口与后台服务会自动挂载到主引擎中。在示例脚本中该行默认被注释(# from vnpy_optionmaster import OptionMasterApp与# main_engine.add_app(OptionMasterApp)),取消注释即可启用。
注:OptionMaster是一个独立于主仓库发布的应用模块(对应
vnpy_optionmaster项目),因此在脚本方式加载前需确保该模块已通过 pip 安装。
启动模块
启动VeighNa Trader后,在菜单栏中点击【功能】->【期权交易】,或者点击左侧按钮栏的期权交易图标,即可进入OptionMaster管理界面(下称管理界面)。
管理界面是所有功能的入口:期权组合的配置、T型报价、持仓希腊值、升贴水监控、波动率曲线、Delta对冲、情景分析、波动率管理、电子眼等功能均由此进入。
配置组合
在管理界面上,选择要交易的期权产品,点击【配置】按钮打开组合配置对话框。配置参数如下:
| 配置项 | 可选项 | 说明 |
|---|---|---|
| 定价模型 | Black-76 / Black-Scholes / Binomial-Tree | 见下方详细说明 |
| 年化利率 | 数值 | 定价模型中用到的无风险折现利率 |
| 合约模式 | 正向 | 包括ETF期权、期货期权、股指期权等大多数产品 |
| Greeks小数位 | 整数 | 显示希腊值时保留的小数位数 |
| 期权链对应的定价标的 | 期货合约 / 合成期货 | 见下方详细说明 |
定价模型选择
- Black-76模型:针对欧式期货期权(股指期权),以期货价格作为标的进行定价;
- Black-Scholes模型:针对欧式股票期权(ETF期权),以现货价格作为标的进行定价;
- Binomial-Tree模型:针对美式期货期权(商品期权),通过二叉树数值方法处理提前行权问题。
从 CHANGELOG.md 的演进记录可以看出,定价模型经历了持续优化:修复过black-76模型中theta计算公式的问题、优化过定价模型中期权最小价值边界判断的逻辑、并将定价模型改为计算理论希腊值、调整对象希腊值为理论模式。这说明当前版本的希腊值均为基于定价波动率计算的理论值,而非直接使用交易所接口返回的实时值。
定价标的物选择
定价标的是期权链定价与希腊值计算的锚点,注意只有选择了标的物的期权链,才会被加入交易组合。定价标的物支持两种来源:
- 期货合约:交易所本身提供的期货价格;
- 合成期货:基于期权价格算出的合成期货价格。
OptionMaster在定价计算过程中会对标的物价格相对期权链的升贴水进行自动修正,因此推荐选择交易最活跃的合约作为标的物,以降低升贴水修正对定价精度的影响。
点击底部的【确认】按钮,完成期权组合的初始化。此时管理界面上的【配置】按钮会被锁定(防止重复配置),而其他功能按钮则会被激活。
行情监控:T型报价
点击管理界面的【T型报价】按钮,打开T型报价窗口。窗口整体分为左右区域,中间白色列为行权价,左侧为看涨期权,右侧为看跌期权,是标准的期权交易报价布局。
每行显示某一行权价期权的对应信息,从外向内包括:
- 合约代码
- 期权的实时现金希腊值:Vega、Theta、Gamma、Delta
- 交易信息:持仓量、成交量
- 1档盘口信息:买隐波、买量、买价、卖价、卖量、卖隐波
- 净持仓
其中“买隐波/卖隐波”是根据买1/卖1价格反推的隐含波动率,是期权交易员判断市场情绪与定价偏差的第一手数据。从 CHANGELOG.md 可见模块对隐含波动率计算持续进行收敛性与计算方法优化(如“修复深度虚值期权的隐含波动率计算收敛问题”“调整中值隐波动的计算方法”),这直接保障了T型报价中隐波数据的可靠性。
快速交易
点击管理界面的【快速交易】按钮,打开手动下单窗口。整体使用方法和VeighNa Trader主界面的交易组件相似:输入合约代码、买卖方向、开平方向、交易价格和数量后,点击【委托】按钮即可发出限价委托;点击【全撤】按钮即可一键全撤当前的全部活动委托。
为提高操作效率,双击T型报价中某一期权的单元格,可以快速填充本窗口的【代码】编辑框,省去手动输入合约代码的步骤。
持仓希腊值
点击管理界面的【持仓希腊值】按钮,打开希腊值风险监控窗口。窗口中的监控信息分为四个维度:
- 交易组合:包括所有下属期权链和标的物的汇总数据;
- 标的物合约:单个标的物的风险数据;
- 期权链:包括所有下属期权的汇总数据;
- 期权合约:单个期权的风险数据。
每个维度的监控信息包括:
| 类别 | 指标 | 含义 |
|---|---|---|
| 持仓相关 | 多仓 | 当前的多头持仓 |
| 持仓相关 | 空仓 | 当前的空头持仓 |
| 持仓相关 | 净仓 | 多仓 - 空仓 |
| 总希腊值 | Delta | 标的价格涨跌1%对应的该维度盈亏金额 |
| 总希腊值 | Gamma | 标的价格涨跌1%对应的该维度Delta变动 |
| 总希腊值 | Theta | 每过去一个交易日,该维度的盈亏金额 |
| 总希腊值 | Vega | 隐含波动率涨跌1%对应的该维度盈亏金额 |
通过该窗口,交易员可以一眼掌握组合整体的风险画像,识别Delta敞口是否过大、Gamma与Vega暴露在哪个维度,为后续对冲与调仓决策提供量化依据。模块在后续版本中持续修复了希腊值监控组件的数据刷新问题、并增加了监控表行数设置,确保大量期权合约场景下的显示完整性与刷新及时性。
升贴水监控
点击管理界面的【升贴水监控】按钮,打开期权链定价升贴水校准幅度的监控窗口。
以文档示例(股指期权场景)为例,可以观察到:
- IO2104,以对应月份期货IF2104定价,升贴水接近0(同月期货流动性匹配,定价基准天然对齐);
- IO2105、IO2106、IO2109,以活跃合约IF2104定价,贴水依次增加(远月期权相对近月活跃期货的定价偏差随时间递增);
- IO2112、IO2203,以对应月份的合成期货定价,升贴水为0(合成期货由期权自身价格推导,天然无升贴水)。
该窗口本质上是“定价标的物与期权链之间升贴水校准”的可视化,用于验证组合配置中标的物选择的合理性:升贴水过大说明当前定价基准与期权链脱节,应考虑切换标的物来源。
波动率曲线
点击管理界面的【波动率曲线】按钮,打开当前的市场波动率曲线监控图表。图表中每个期权链的波动率曲线采用不同颜色显示,具体颜色对应的期权链图例在左侧。
每个期权链会包括三条曲线:
- 向上箭头:该月份看涨期权的1档盘口隐含波动率中值,即买1价和卖1价盘口波动率的均值;
- 向下箭头:该月份看跌期权的1档盘口隐含波动率中值;
- 小圆点:该月份定价波动率的数值,定价波动率用于希腊值计算和电子眼交易,通过【波动率管理】组件设置。
图表中显示的曲线通过窗口顶部每个期权链对应的勾选框来控制,可以根据需求选择性地显示特定期权链(例如只显示IO2109一个链),便于聚焦分析某一月份的波动率结构。
三条曲线的对照关系是OptionMaster工作流的核心:盘口隐波(箭头)代表市场实时定价,定价波动率(圆点)代表交易员的主观定价基准,两者之间的差异正是电子眼捕捉交易机会的基础。
Delta对冲
点击管理界面的【Delta对冲】按钮,打开交易组合的Delta自动对冲功能,配置参数如下:
| 参数 | 说明 |
|---|---|
| 对冲标的 | 选择投资组合内的任意一个标的物合约 |
| 执行频率 | 多久执行一次检查,判断是否要执行对冲 |
| Delta目标 | 触发对冲时,将Delta值对冲到多少。选择0即保持组合Delta中性;选择正数即保持Delta多头敞口;选择负数即保持Delta空头敞口 |
| Delta范围 | 当仓位类型的Delta值偏离上述Delta目标超过多少时,触发对冲任务 |
| 委托超价 | 发出对冲委托时,价格相对于对面盘口的超价 |
点击【启动】按钮即可启动自动对冲功能,当读秒达到执行间隔时即执行一次检查,如果满足条件则会启动TWAP算法执行对冲操作;点击【停止】按钮即可停止自动对冲功能的运行。
在典型的波动率交易场景中,交易员通过电子眼捕捉期权定价偏差的同时,标的物侧的Delta敞口会不断累积,此时Delta对冲功能作为配套风控手段,以可配置的执行频率和TWAP下单方式将组合Delta维持在中性或指定敞口水平,避免行情单边运动带来的方向性风险。
情景分析
点击管理界面的【情景分析】按钮,打开交易组合整体持仓风险的压力测试和情景分析功能。首先配置执行的分析任务:
- 目标数据:支持盈亏、Delta、Gamma、Theta、Vega;
- 时间衰减:交易日的衰减天数;
- 价格变动:分析中价格的涨跌变动范围。例如当前价格为100、变动为10%,则分析范围为90~110;
- 波动率变动:分析中波动率的涨跌变动范围。例如当前波动率为20%、变动为10%,则分析范围为10%~30%。
点击执行分析按钮后,压力测试引擎会根据当前的交易组合持仓,以及每个情景下的价格和隐含波动率情况,计算对应的目标数据,并将结果绘制为3D曲面。例如以Gamma值为计算目标、10%价格变动、15%波动率变动的结果中,3D图的垂直轴为计算目标的数值,水平的两轴分别为价格和波动率的变动数值。
通过该功能,交易员可以直观评估组合在价格-波动率双维压力下的风险曲面,识别极端行情下的潜在损益峰值,提前进行仓位调整或对冲安排。
波动率管理
点击管理界面的【波动率管理】按钮,打开定价波动率管理界面。点击顶部的期权链标签切换对应期权链的定价波动率管理组件,第一次打开时下方表格中的【定价隐波】数值均为0。
定价波动率的设定是OptionMaster整套定价与交易体系的输入核心,操作分为以下几步:
- 曲线初始化:点击顶部的【重置】按钮,将当前该行权价的虚值期权的中值隐波,映射到定价隐波上;
- 曲线形态检查:映射完成后,在波动率图表中查看当前的定价波动率曲线形状,判断是否存在不平滑的行权价;
- 曲线拟合:在组件表格中的【执行拟合】列,勾选要执行拟合的行权价,点击顶部的【拟合】按钮,即可基于OptionMaster内置的Cubic Spline(三次样条插值)算法执行波动率曲线的拟合,将异常点平滑化;
- 手动微调:拟合完成后若仍有不满意的部分,可通过【定价隐波】列的滚动框进行手动微调,点击上下箭头每次上升或下跌0.1%,或直接输入想要修改的数值;
- 整体平移:当基于对波动率曲线高低的整体观点需要对曲线整体平移时,可通过组件顶部的【+0.1%】和【-0.1%】按钮,对所有行权价的定价波动率进行整体平移调整。
完成后的定价波动率曲线即成为后续希腊值计算、情景分析与电子眼交易的理论定价基准,在波动率曲线图表中对应“小圆点”曲线。
电子眼:自动套利交易算法
点击管理界面的【电子眼】按钮,打开交易组合的电子眼自动套利算法功能。电子眼算法可以基于交易员预设的定价波动率曲线,在允许的持仓范围内自动捕捉市场上出现的瞬时交易执行机会,同时结合Delta自动对冲功能来保证投资组合的整体Delta中性。
界面布局
电子眼界面类似T型报价,分为左右区域,中间白色列为行权价,左侧为看涨期权,右侧为看跌期权。每个期权上对应存在一个独立的电子眼交易算法,交易员可以同时启动数百个交易算法(具体数量取决于CPU性能)而互不干扰。
算法配置参数
每个电子眼算法的配置参数包括:
- 交易价差相关:价格价差、隐波价差;
- 仓位限制相关:持仓范围、目标持仓;
- 最大委托:单笔最大的委托数量;
- 方向:算法允许的交易方向,包括只允许做多、只允许做空、允许双向交易。
算法执行流程
电子眼算法的核心执行流程如下:
- 基于定价波动率,计算期权的理论价;
- 计算目标买卖的价差:
- 隐波价差的价格值 = 隐波价差 × 期权理论Vega值;
- 交易价差 = max(价格价差, 隐波价差的价格值);
- 计算目标买卖价:
- 目标买价 = 理论价 − 交易价差 / 2;
- 目标卖价 = 理论价 + 交易价差 / 2;
- 以做多交易为例,当盘口卖1价格低于目标买价时,触发买入信号;
- 计算本轮委托量:
- 算法持仓上限 = 目标持仓 + 持仓范围;
- 剩余多头可交易量 = 算法多头持仓上限 − 当前净持仓;
- 本轮委托量 = min(剩余多头可交易量, 卖1量, 最大委托量);
- 使用目标买价和本轮委托量,发出对应的交易委托。
从流程可见,电子眼的逻辑本质是“以交易员自定义的定价波动率为锚,在理论价两侧挂出双向目标价,价差由价格价差与隐波价差(经Vega折算)取大确定”,并通过持仓上限、委托量裁剪等机制将风险控制在预设范围内,是一个完整的做市/套利自动执行器。
启动与监控
配置好算法参数后,点击该行的【定价】列按钮启动算法的定价计算。【定价】和【交易】按钮的状态显示规则为:为N时代表算法当前未启动该任务,为Y时代表算法已在执行对应的任务。
- 启动定价的期权算法,会开始实时更新目标买卖价等相关数值;
- 此时点击【交易】列的按钮,即可启动算法的交易执行,当价格和持仓满足条件时就会自动发出交易委托;
- 详细的算法运行状态日志信息可以通过右侧日志区域监控。
当需要对多个算法进行批量修改时,可以通过电子眼窗口右上角的全局修改功能进行操作,一次性调整批量期权的算法参数,更加方便快捷。
典型使用工作流总结
综合上述功能,OptionMaster的典型实盘工作流可以概括为:
- 配置:选择期权产品与定价模型,指定各期权链的定价标的物(推荐活跃期货合约),完成组合初始化;
- 研判:通过T型报价、波动率曲线观察市场隐波结构与定价偏差,通过升贴水监控校验定价基准;
- 定基准:在波动率管理中以中值隐波初始化定价曲线,必要时用Cubic Spline拟合平滑并手动微调,形成交易员自己的定价波动率;
- 交易:在电子眼中按行权价配置交易价差、仓位限制与方向,启动定价与交易任务,自动捕捉瞬时机会;
- 风控:以持仓希腊值窗口监控四维度风险敞口,配合Delta对冲功能维持组合Delta中性,并用情景分析对组合进行价格-波动率双维压力测试。
关联资料
- 模块文档:本文即基于 docs/community/app/option_master.md 展开,其余社区应用模块文档见 docs/community/app/index.rst;
- 启动脚本示例:examples/veighna_trader/run.py 展示了
OptionMasterApp的注册方式(默认注释,取消注释即可启用); - 期权合约数据模型:VeighNa核心对象库 vnpy/trader/object.py 中的期权字段(行权价
option_strike、标的合约option_underlying、期权类型option_type、到期日option_expiry、组合option_portfolio等)是OptionMaster解析与组织期权链的数据基础; - 模块功能说明:docs/community/info/introduction.md 概述了OptionMaster在VeighNa生态中的定位;README.md 的功能清单中对期权交易模块的能力进行了概括;CHANGELOG.md 记录了定价模型、隐波计算、希腊值监控等关键能力的迭代历史,可作为了解模块演进与边界行为的参考。
【免费下载链接】vnpy基于Python的开源量化交易平台开发框架项目地址: https://gitcode.com/gh_mirrors/vn/vnpy
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考