回测应用:期权中高频波动率择时价差策略回测
本文围绕“期权中高频波动率择时价差策略回测”展开,并给出文章标题信息、作者/来源与发布日期等基础信息。
Source: https://dolphindb.cn/blogs/333
What this page covers
- 隐含波动率、期权交易与回测动机
- 中高频回测平台的关键环节与挑战
- DolphinDB 中高频回测解决方案的模块组成
- 策略逻辑、情景分析与事件化实现要点
- 回测数据处理流程与引擎创建/执行步骤
- 结果查询、性能对比与 JIT 使用注意事项
- FAQ:数据格式匹配与换月逻辑处理
技能认证特训营第二期报名推广
页面顶部包含技能认证特训营第二期的限时报名链接与福利提示。
- 页面提供“技能认证特训营第二期”报名入口链接。
- 该入口被描述为限时报名相关信息。
回测应用:期权中高频波动率择时价差策略回测(文章标题与信息)
给出文章标题、作者/来源(DolphinDB)与发布日期。
- 文章标题为“回测应用:期权中高频波动率择时价差策略回测”。
- 作者/来源标注为“DolphinDB”。
- 文章发布日期为 2026-03-16。
背景与动机:期权与隐含波动率、回测必要性、DolphinDB定位
解释隐含波动率在期权交易中的作用、波动率套利与价差策略思路,并说明用历史高频数据回测验证的重要性及 DolphinDB 的适用性。
- 期权价格影响因素包括 S0、K、T、σ、r。
- σ 被描述为唯一不可直接观测的变量。
- 隐含波动率通常由市场报价结合 BSM 等模型反推。
- 隐含波动率短期波动被描述为波动率套利的交易机会来源。
- 复杂多腿与动态风控策略被描述需要历史高频数据回测验证。
中高频回测平台关键环节与挑战
描述中高频回测平台的三个关键环节及面临的性能、成交模拟与架构扩展等挑战。
- 关键环节包括行情数据按顺序回放。
- 关键环节包括委托订单撮合。
- 关键环节包括策略开发与回测绩效评估。
- 海量数据使查询与计算性能要求更高。
- 回测应尽可能模拟真实成交与冲击等因素。
DolphinDB中高频回测解决方案与模块组成
说明 DolphinDB 的中高频回测解决方案由行情回放、模拟撮合引擎插件与回测插件构成,并支持多语言与兼容外部方案。
- 解决方案包含库内行情回放模块。
- 解决方案包含模拟撮合引擎模块。
- 解决方案包含事件型中高频回测引擎模块。
- 策略研发与测试支持 DLang、Python 或 C++。
- 模块化方案被描述可与外部环节融合成完整回测方案。
1. 基于 DolphinDB 的期权波动率择时价差策略
介绍策略逻辑、盈亏情景分析与在 Backtest 插件中的事件化实现结构及关键代码片段。
- 本文实现策略为“融合波动率择时的垂直价差策略”。
- 回测频率设为快照频。
- 回测初始资金设置为 1000000。
- 牛市看涨信号包含“IV 偏低”与“MACD 上穿”条件。
- 熊市看跌信号包含“IV 偏高”与“MACD 下穿”条件。
- 牛市看涨价差开仓规则为做多平值并做空虚值二档看涨期权。
- 熊市看跌价差开仓规则为做多平值并做空虚值二档看跌期权。
- 平仓依据为监控期权对价差变动比例阈值区间 [-0.03, 0.05]。
2. 回测流程
展示使用 Backtest 插件进行期权中高频回测的数据处理全流程,包含流程图与引擎创建/执行步骤。
- Backtest::createBacktester 的核心参数包括 eventCallbacks、config、securityReference。
- config 可配置 dataType=1 以选择快照行情。
- config 可配置 callbackForSnapshot=0 以仅触发 onSnapshot。
- config 可配置 matchingMode=3 与 latency=50(ms)。
- 通过注入 symbol='END' 的数据作为回测结束标志。
- 给出期权回测所需数据结构文档链接。
- 教程描述将 optData 与 securityReference 以 CSV 形式提供下载并可用 loadText 加载。
3. 策略评价
说明如何获取回测结果与示例成交明细,并给出性能对比、JIT注意事项与测试环境配置。
- 提供回测结果查询接口列表(如 getTradeDetails、getPosition、getReturnSummary)。
- 给出一次成交示例包含成交时间与价差计算表达。
- 给出不开启 JIT 的性能对比数据(数据条数、订单数、耗时、速率)。
- 给出开启 JIT 的性能对比数据(数据条数、订单数、耗时、速率)。
- 开启 JIT 后回调函数中不能使用“表”数据结构,需要转为字典处理。
- Backtest 插件的 JIT 仅在 3.00.2 以上版本的 DolphinDB Server 支持开启。
- 给出测试环境的硬件与软件配置表信息。
4. 总结
概述策略实现、回测流程梳理与 Backtest 插件在中高频期权回测中的适用性与价值。
- 策略基于标的走势与 IV 水平选择牛市看涨或熊市看跌价差。
- 策略通过实时监控价差变动用于止盈止损平仓。
- 总结中将该场景描述为体现 Backtest 插件性能与触发机制等能力。
5. 常见问题(FAQ)
回答数据源格式匹配与长周期回测换月逻辑处理等问题,并提供相关示例代码与说明。
- 提供将 Csmar 数据转换为 Backtest 所需格式的转换代码,并封装为函数。
- FAQ 示例代码包含 dbName='dfs://OptBackTest' 与 tbName='csmar'。
- 金融期权换月逻辑:按剩余到期日确定主力,并在换月日注入被换月合约行情。
- 商品期权换月逻辑可由期货快照计算主力或使用已有主力表。
附录(脚本与数据下载)
提供回测脚本与数据压缩包的下载链接。
- 提供回测脚本下载链接。
- 提供数据压缩包下载链接。
Facts Index
| Entity | Attribute | Value | Confidence |
|---|---|---|---|
| 文章发布日期 | date | 2026-03-16 | high |
| DolphinDB | appears_as | 作者/来源标注为“DolphinDB” | high |
| 隐含波动率(IV) | role_in_option_pricing | 作为期权定价的核心参数,其短期波动为波动率套利提供交易机会。 | medium |
| 回测验证 | importance | 复杂多腿组合/高频信号/动态风控策略在实盘前需要用历史高频数据进行严谨高效回测以评估有效性与可行性。 | medium |
| DolphinDB | positioning_for_backtest | 依托高性能计算引擎与数据处理能力,被描述为中高频策略回测的理想选择。 | low |
| 期权价格影响因素 | factors_listed | 当前标的价格(S0)、执行价格(K)、期限(T)、标的未来波动率(σ)、无风险利率(r)。 | high |
| 标的未来波动率(σ) | observability | 被描述为唯一不可直接观测的变量,因此成为期权定价与交易的核心因素。 | medium |
| 隐含波动率计算 | method | 通常使用 Black-Scholes-Merton(BSM)等模型,用市场期权报价反推计算隐含波动率。 | medium |
| 波动率交易者 | delta_neutral_portfolio | 可通过构建 Delta 中性组合,从波动率的绝对定价错误或相对变化中获利;例如 IV 低于预期时构建正 Vega 组合,反之构建负 Vega 组合。 | medium |
| 波动率状态作为择时因子 | applied_to_directional_strategies | 温和看涨且 IV 偏低时可用牛市看涨价差;温和看跌且 IV 偏高时可用熊市看跌价差,以较低成本建立方向性头寸并限制损失。 | medium |
| 本文实现的策略 | strategy_type | 融合波动率择时的垂直价差策略;结合标的方向判断与当前 IV 状态构建牛市看涨价差或熊市看跌价差组合。 | high |
| 中高频量化交易策略回测平台 | key_components | 行情数据按顺序回放、委托订单撮合、策略开发与回测绩效评估。 | high |
| 中高频策略回测 | challenges_listed | 海量数据对查询与计算性能要求高;应尽可能模拟真实成交与冲击等因素;引擎需灵活可扩展以支持多策略与指标。 | high |
| DolphinDB 中高频回测解决方案 | core_components | 库内行情回放、模拟撮合引擎、事件型中高频回测引擎三大核心组件。 | high |
| DolphinDB 回测解决方案 | supported_languages | 支持通过 DLang、Python 或 C++ 进行中高频策略研发和测试。 | high |
| 回放功能(模块) | capability | 支持将一个或多个不同结构的分布式表数据严格按时间或指定多列排序回放到流表中。 | high |
| 模拟撮合引擎插件(模块) | capability | 支持沪深交易所 Level-2 逐笔与快照行情,遵循“价格优先、时间优先”撮合规则,提供高精度撮合并支持多种撮合模式与参数配置。 | high |
| 回测插件(模块) | capability | 支持自定义指标,支持逐笔、快照、分钟、日频回测,输出收益/持仓/交易明细;逐笔与快照支持高精度回测,实现仿真与回测一体化验证。 | high |
| 三个模块化解决方案 | compatibility | 与外部解决方案兼容性良好,可与用户已有环节融合成完整回测方案。 | medium |
| 本文回测数据范围 | data_source_and_scope | 使用上期所黄金期权一个交易日中日盘的全部数据,基于 DolphinDB Backtest 回测插件实现策略回测。 | high |
| 回测开始日期 | start | 2025.02.17(日盘开始) | high |
| 回测结束日期 | end | 2025.02.17(日盘结束) | high |
| 回测频率 | frequency | 快照频 | high |
| 初始资金 | initial_cash | 1000000 | high |
| 回测标的 | instrument | 黄金期货主力合约对应的看涨期权 & 看跌期权 | high |
| 牛市看涨开仓信号 | entry_condition | IV 偏低且标的价格上升趋势:期权 IV < 过去 30 个快照 IV 均值 - 1.0*标准差;期货最新价 MACD > 0 且上一个快照 MACD < 0。 | high |
| 熊市看跌开仓信号 | entry_condition | IV 偏高且标的价格下降趋势:期权 IV > 过去 30 个快照 IV 均值 + 1.0*标准差;期货最新价 MACD < 0 且上一个快照 MACD > 0。 | high |
| 牛市看涨价差开仓规则 | position_construction | 做多平值 + 做空虚值二档看涨期权(对市价单双开)。 | high |
| 熊市看跌价差开仓规则 | position_construction | 做多平值 + 做空虚值二档看跌期权(对市价单双开)。 | high |
| 平仓信号/规则 | exit_condition | 实时监控(平值–虚值)期权对价差,对期权对市价单双平;价差相对初始值变动比例上下界为[-0.03, 0.05]。 | high |
| 盈亏情景分析假设 | underlying_price_assumption | 黄金期货价格假设为 675 元/g。 | high |
| 情景分析期权合约(看涨价差) | contracts | 平值看涨 AU2503-C-672;虚值二档看涨 AU2503-C-688。 | high |
| 情景分析期权合约(看跌价差) | contracts | 平值看跌 AU2503-P-672;虚值二档看跌 AU2503-P-656。 | high |
| 权利金大小关系(注释) | premium_relation | 由于平值期权权利金 > 虚值期权权利金,因此 C1>C2,C3>C4。 | high |
| 牛市看涨价差组合 | pnl_scenarios | 给出了 St 大幅下跌/区间波动/大幅上涨三种情况下多平值看涨与空虚值二档看涨及1:1组合的损益方向与公式表达。 | high |
| 熊市看跌价差组合 | pnl_scenarios | 给出了 St 大幅下跌/区间波动/大幅上涨三种情况下多平值看跌与空虚值二档看跌及1:1组合的损益方向与公式表达。 | high |
| 价差组合的收益风险特征总结 | risk_reward_characteristics | 最大亏损锁定为期初净支出;最大盈利上限为行权价之差减去净权利金支出;以牺牲无限潜在收益换取更低盈亏平衡点与减仓成本。 | medium |
| DolphinDB Backtest 插件 | event_callbacks | 提供事件化回调函数,包括 onSnapshot、onBar、onTrade 等;本文主要使用 onSnapshot 并结合 context 状态字典开发策略。 | high |
| context 状态变量设计(本文) | variables | 设计 lastTimeDict、longPair & shortPair、longState & shortState 三类变量用于策略实现。 | high |
| 策略结构图 | image_url | https://cdn.dolphindb.cn/resources/jYuy_Z9IH-MzD9a9aEUIb/c078ad530d6bff86e0c10a235fae7c8f.png | high |
| onSnapshot 入参 | parameters | onSnapshot 回调函数有三个入参:context(上下文状态字典)、msg(快照行情字典)、indicator(自定义指标)。 | high |
| 非主力合约过滤逻辑 | rule | 从 mainContractDict[tradeDate] 取当日主力合约列表;若合约不在列表则 return。 | high |
| 期权对状态变量数据结构(本文) | data_structure | 使用嵌套字典 <String, Dict<String, List>>;List 长度为2,保存[平值期权名称, 虚值二档期权名称]。 | high |
| longPair 与 shortPair 的填充条件(示例代码) | rule | 当 ivSignal==1 且 trendSignal==1 时填充 longPair(direction==1 的 level==0 与 level==-2);当 ivSignal==-1 且 trendSignal==-1 时填充 shortPair(direction==2 的 level==0 与 level==-2)。 | high |
| 快照截面划分 | assumption_and_rule | tradeTime 对每合约回调单调递增;若 lastTimeDict[contract]==tradeTime 则 return,否则更新 lastTimeDict 并进入截面触发的开平仓逻辑。 | high |
| 平仓触发阈值(代码示例) | rule | 计算 state=price1-price2;若 state 突破 stateList[0] 或 stateList[1] 则触发对期权对市价双平并删除价差记录。 | high |
| 开仓资金约束(代码示例) | rule | 若 Backtest::getAvailableCash(engine) <= 100000 则 return,不开仓。 | high |
| 开仓去重逻辑(代码示例) | rule | 通过 Backtest::getPosition 检查 opt1 多仓与 opt2 空仓是否已存在;若无持仓则分别下单开多/开空各1手。 | high |
| 期权回测所需数据结构文档 | url | https://docs.dolphindb.cn/zh/plugins/backtest/option.html | high |
| 回测流程图 | image_url | https://cdn.dolphindb.cn/resources/jYuy_Z9IH-MzD9a9aEUIb/c3f444ce036d7c0986e8fcda8e208c26.png | high |
| Backtest::createBacktester | core_parameters | 核心参数包括 eventCallbacks、config、securityReference。 | high |
| 回测数据文件(教程描述) | provided_as | 清洗完成的期权行情数据 optData 与标的基础信息表 securityReference 保存为 CSV 文件并在附件中提供下载;可用 loadText 加载。 | medium |
| 引擎配置参数(代码示例) | dataType_and_callbackForSnapshot | config['dataType']=1(选择快照行情);config['callbackForSnapshot']=0(仅触发 onSnapshot)。 | high |
| 引擎配置参数(代码示例) | maintenanceMargin | config['maintenanceMargin']=1.0。 | high |
| 引擎配置参数(代码示例) | cash | config['cash']=1000000。 | high |
| 引擎配置参数(代码示例) | enableAlgoOrder | config['enableAlgoOrder']=true(开启算法订单)。 | high |
| 引擎配置参数(代码示例) | outputOrderInfo | config['outputOrderInfo']=true(输出拒单原因)。 | high |
| 引擎配置参数(代码示例) | matchingMode | config['matchingMode']=3。 | high |
| 引擎配置参数(代码示例) | latency_ms | config['latency']=50(模拟订单延时ms)。 | high |
| 主力合约配置(代码示例) | main_contract | mainContractDict[2025.02.17]=['AU2504']。 | high |
| 期权合约基本信息表图示 | image_url | https://cdn.dolphindb.cn/resources/jYuy_Z9IH-MzD9a9aEUIb/a0e664a562534e9fc9da38998bbc68b5.png | high |
| 执行回测:读取行情数据(代码示例) | filter_rule | 仅取主力合约:where symbol.startsWith('AU2504')。 | high |
| 快照频期权行情结构图 | image_url | https://cdn.dolphindb.cn/resources/jYuy_Z9IH-MzD9a9aEUIb/6908e0a99f135d36c46264c57628b633.png | high |
| 期权档位标识定义 | encoding | 输出 INT 类型:0 表示平值,-k 表示虚值 k 档,k 表示实值 k 档。 | high |
| 开仓信号判定(文字描述) | rule | 当 MACD 由负转正且 IV 突破 30 根快照均值 + 标准差时为牛市看涨价差开仓信号;当 MACD 由正转负且 IV 突破 30 根快照均值 - 标准差时为熊市看跌价差开仓信号。 | medium |
| MACD 计算函数(代码示例) | parameters | macdFunc 默认参数:short_=24, long_=52, m=18;macd=(dif-dea)*2 并 round(macd,4)。 | high |
| 趋势信号 trendFactor(代码示例) | encoding | trendFactor = 1 若 macd>0 且 prev(macd)<0;-1 若 macd<0 且 prev(macd)>0;否则 0。 | high |
| IV 阈值计算(代码示例) | formulas | ivLongLevel = mavg(IV.ffill(),30) - mstd(IV.ffill(),30);ivShortLevel = mavg(IV.ffill(),30) + mstd(IV.ffill(),30)。 | high |
| IV 信号 ivFactor(代码示例) | encoding | ivFactor = 1.0 若 IV < ivLongLevel;-1.0 若 IV > ivShortLevel;否则 0.0。 | high |
| signal 指标向量(代码示例) | composition | signal = fixedLengthArrayVector(double(levelRank), double(ivFactor), double(trendFactor))。 | high |
| 回测结束标志(代码示例) | method | 向引擎注入一条 symbol='END' 的数据作为回测结束标志。 | high |
| 回测插件接口说明链接 | url | https://docs.dolphindb.cn/zh/plugins/backtest/interface_description.html | high |
| 回测结果查询接口(代码示例) | functions_list | Backtest::getContextDict, getTradeDetails, getOpenOrders, getPosition, getDailyPosition, getAvailableCash, getDailyTotalPortfolios, getReturnSummary。 | high |
| 成交示例(文字描述) | open_trade_time_and_spread | 触发牛市看涨价差信号后,9:30:25 AU2504-P-672 & AU2504-P-656 成交,价差 11.58-5.68=5.9。 | medium |
| 成交示例(文字描述) | close_trade_time_and_spread | 9:51:06 该期权对价差降至 11.1-5.4=5.7,触发价差变动幅度下限并双平。 | medium |
| 策略成交订单信息图 | image_url | https://cdn.dolphindb.cn/resources/jYuy_Z9IH-MzD9a9aEUIb/55426c04ee72bc5cbf43a6734e0e9643.png | high |
| Backtest 插件 JIT 优化 | enablement | 在 Backtest::createBacktester 创建引擎时将 jit 参数设为 true 可开启 JIT 优化。 | high |
| 性能对比(不开启JIT) | benchmark_row | 注入引擎数据条数 283177;成交订单数 38;回测耗时 2.39 s;处理速率 118484 条/s。 | high |
| 性能对比(开启JIT) | benchmark_row | 注入引擎数据条数 283177;成交订单数 38;回测耗时 1.51 s;处理速率 187534 条/s。 | high |
| Backtest 插件处理速率 | observed_result | 表中结果显示处理速率均 > 10w 条/s;开启 JIT 相比不开启 JIT 的性能提升 50% 以上。 | medium |
| JIT 支持条件 | server_version_requirement | Backtest 插件仅在 3.00.2 以上版本的 DolphinDB Server 支持开启 JIT 优化。 | high |
| JIT 开启后的回调函数限制 | data_structure_limit | 开启 JIT 后在回调函数中不能使用“表”数据结构,需要转换为字典处理。 | high |
| JIT 开启后的输入数据结构 | possible_adjustment_needed | 在部分情况下需要调整输入引擎的数据结构(指向官网相关说明)。 | medium |
| 测试环境(操作方式) | deployment_mode | 安装 DolphinDB server,并配置为集群模式。 | high |
| 硬件环境 | kernel_cpu_memory | 内核 3.10.0-1160.88.1.el7.x86_64;CPU Intel(R) Xeon(R) Gold 5220R @ 2.20GHz;内存 512 GB。 | high |
| 软件环境 | os_and_dolphindb_version | 操作系统 CentOS Linux 7 (Core);DolphinDB server 版本 3.00.4 2025.09.09 LINUX_JIT x86_64;license 限制 16 核 128 GB。 | high |
| 总结中的策略核心逻辑描述 | core_logic | 根据期货标的价格走势与期权 IV 水平,通过牛市看涨价差与熊市看跌价差以较低成本建立方向性头寸,并实时监控期权对价差变动用于止盈止损平仓。 | medium |
| Backtest 插件能力(总结) | stated_strengths | 该场景体现 Backtest 回测插件优异性能、丰富策略触发机制与全面回测评价结果,可为 FICC 领域中高频策略回测提供借鉴。 | low |
| FAQ:Csmar 数据源匹配 | what_is_provided | 提供将 Csmar 数据转换为 DolphinDB Backtest 所需数据格式的转换代码并封装为函数。 | high |
| FAQ 代码:目标数据库与表 | db_and_table_names | dbName='dfs://OptBackTest';tbName='csmar'。 | high |
| FAQ 示例日期区间 | start_end | startDate=2025.02.17;endDate=2025.02.17。 | high |
| FAQ:换月逻辑(金融期权) | handling_guidance | 在 context 添加内存表记录品种-合约-剩余到期日,按剩余到期日确定主力;换月交易日需将被换月合约行情一同取出注入引擎以便执行换月平仓逻辑,其余时间仅注入主力合约行情。 | high |
| FAQ:换月逻辑(商品期权) | handling_guidance | 可基于期货快照行情计算合约K线与主连行情确定每日主力,或使用已有主力合约表;取数逻辑同金融期权。 | high |
| 附录:回测脚本 | download_url | https://docs.dolphindb.cn/zh/tutorials/script/backtest_volatility_timing_vertical_spread/%E5%9B%9E%E6%B5%8B%E8%84%9A%E6%9C%AC.dos | high |
| 附录:所有数据 | download_url | https://docs.dolphindb.cn/zh/tutorials/data/backtest_volatility_timing_vertical_spread/data.zip | high |
| 技能认证特训营第二期限时报名 | url | https://www.qingsuyun.com/h5/e/217471/5/ | high |
Referenced visual assets (URLs)
- 策略结构图:https://cdn.dolphindb.cn/resources/jYuy_Z9IH-MzD9a9aEUIb/c078ad530d6bff86e0c10a235fae7c8f.png
- 回测流程图:https://cdn.dolphindb.cn/resources/jYuy_Z9IH-MzD9a9aEUIb/c3f444ce036d7c0986e8fcda8e208c26.png
- 期权合约基本信息表图示:https://cdn.dolphindb.cn/resources/jYuy_Z9IH-MzD9a9aEUIb/a0e664a562534e9fc9da38998bbc68b5.png
- 快照频期权行情结构图:https://cdn.dolphindb.cn/resources/jYuy_Z9IH-MzD9a9aEUIb/6908e0a99f135d36c46264c57628b633.png
- 策略成交订单信息图:https://cdn.dolphindb.cn/resources/jYuy_Z9IH-MzD9a9aEUIb/55426c04ee72bc5cbf43a6734e0e9643.png