策略
Deribit BTC月度单腿多头期权趋势凸性策略(以低成本-IV为门控,双向均可交易方向)
结局: 已放弃
BtcDeribitMonthlyLongOptionTrendConvexityCheapIV
结局总结
BtcDeribitMonthlyLongOptionTrendConvexityCheapIV 刻意采用做多 Vega、看涨方向的思路,与流程中的做空波动率及非方向性期权组合相反;它买入单个 OTM 看涨期权或看跌期权,将 BTC 趋势观点转化为风险有限的凸性收益结构,并顺利通过了此前阻碍类似策略的多腿执行和 Layer-3 门槛。但回测仅产生 9 笔交易,因为目录中的 Deribit 月度 BTC 链仅涵盖约 12 个到期日,始于-2025年中;引擎还将这些指标标记为不可靠——表面夏普比率为 3.43,置信区间从 -13 延伸至 +11,而全部净收益都来自 2026 年二月这一个月。评审者判定为 revise_hypothesis,并指出这是第二次得到相同的 9 笔交易结果,浅薄的期权链无法通过修改代码增加月度周期。凸性论点从未被证伪;只是现有期权历史数据不足以检验它,因此策略被放弃,没有第三次迭代并撞上同一道墙。
假设
通过SINGLE多头期权腿而非永续合约来表达BTC趋势判断,将趋势跟踪的收益结构转化为风险有限的凸性结构。当BTC处于确认的上升regimeAND隐含波动率便宜时,买入一份约5%行权价的OTM月度CALL;当处于确认的下降regimeANDIV便宜时,买入一份约5%行权价的OTM月度PUT。不设对冲腿,不使用卖空保证金——最大亏损即为所付的权利金。这是流水线中已有的做空波动率现金担保卖出看跌期权及无方向性长跨式期权的刻意反向策略:此处我们是LONG vega,LONG方向,从BTC收益的肥尾中获利,而永续合约趋势跟踪者由于手续费损耗和止损反复止损而无法捕捉这部分收益。单腿结构使其避开了从未通过验证的多腿期权执行路径(L2)。Deribit BTC是流动性最好的加密期权市场,在目录中已有希腊字母/IV数据,且单腿Deribit BTC结构此前已通过Layer-3沙盒测试(长跨式、CSP卖出均已达到backtest_review),因此数据可用性和执行方面的风险已被降低。此策略同时填补了两个最欠代表的类别:期权场所(约5% vs 目标15%)和long_short方向(15% vs 目标),中长周期,且只有4个参数。
第3次迭代针对第-3层墙钟超时(>300秒)的修复。所有信号逻辑已经通过了第1层和第2层,因此本次修复严格限定于反馈中指出的单根K线开销问题。根本原因:_realized_vol_cheap() 使用Python for循环遍历完整收盘价历史(`for i in range(n): rolls[i] = rets[i:i+w].std()`)来计算滚动标准差——每次调用为O(n·w),作为cheap-IV回退方案在每根DVOL历史较浅的K线上执行(即回测早期/存在缺口的全部部分),这正是诊断所描述的“在每根K线内于on_bar内部重建列表”的模式。修复方案:(1) 将该循环替换为完全向量化的累积和滚动标准差(总体标准差,ddof=0——与np.std默认值一致),使该回退方案变为O(n)且不含Python循环;(2) 按K线时间戳记忆化cheap-IV判定结果(_iv_cheap_ts/_iv_cheap_val),使得同一根K线的周期/腿扫描内的重复调用为O(1);DVOL路径此前已经通过np.searchsorted实现O(log n),未作改动。未改动任何导入、类结构、行情状态逻辑、展期逻辑或开平仓门控——因此第1层和第2层不会出现回退风险。为进一步防范腿K线数量问题(与滚动期权系列策略曾遇到的相同故障模式),配置将永续合约主AND与rolling_options腿`timeframe`固定为1-DAY(扩展器默认腿为1-HOUR,会导致6-24x腿K线爆炸),并将lookback_days上限设为365(约12个月度周期)。
实现
BTC Deribit MONTHLY单腿多头期权趋势凸性策略,以低成本-IV为门控,双向均可交易方向。主要BTC-PERPETUAL.DERIBIT(1-DAY)驱动展期时钟并提供每日收盘价序列;可交易的腿是所解析出的月度约5% OTM看涨与看跌合约。当BTC处于确认的上升regime(价格高于上升的50天SMA)AND隐含波动率便宜(DVOL百分位数<=0.40,以已实现波动率百分位数作为兜底)时,买入一份OTM月度CALL;处于确认的下降regimeAND便宜IV时,买入一份OTM月度PUT。每个月度到期日最多持有一条多头腿,在到期前5DTE展期,并在regime反转不利于该腿或触发-70%权利金灾难性止损时提前离场。做多vega加做多方向,最大亏损=所付权利金,无卖空/对冲腿。
验证结果
验证失败(Layer 3 —— 沙盒回测):冒烟测试超过了300秒的挂钟时间限制。这几乎总是意味着某些逐bar运算的开销随历史长度线性增长——例如每次都重新扫描完整的资金费率/补充数据序列,或在每个bar上于calculate_signal()/on_bar()内部重建列表并调用min()/sorted()。请在__init__中预先计算好排序的时间戳数组ONCE并使用bisect,或使用以时间戳为键的缓存查找,使每bar开销为O(log n)而非O(n)。
分析师:请确认整个窗口期内的total_trades;一个双重门控的月度长期权方案可能产生过少的交易而无法得出可靠结论。可考虑将lookback_days延长至365之外,以积累更多到期日。
交易数量/统计效力偏低。月度期限(dte 30)基于365天的期权链回溯窗口(约12个到期日),并进一步经过BOTH确认趋势的行情状态门控和ANDcheap-IV门控筛选,因此在该窗口内实际开仓的多头腿数量远低于10(沙盒共产生9笔)。这远低于约100笔交易这一能够清晰区分优势与噪声的门槛,而较宽的夏普比率区间CI([-13.1, 11.1],PSR 0.77)也证实该估计的置信度较低。这是双重门控月度期权策略所固有的问题,属于分析师需要留意的注意事项而非代码缺陷,但在没有更长窗口验证之前,不应信任该策略给出的任何夏普比率/PF。
确认BacktestRunner._apply_fees覆盖了DERIBIT期权腿工具;在信任avg_trade_return_pct之前,请确认完整回测中的手续费不为零。
沙盒测试报告显示,9笔期权交易中total_commission=0.0001(接近于零)。Deribit期权手续费(每份合约按标的资产的0.03%收取,上限为权利金的12.5%)对于LONG这类需要支付权利金的期权而言是不可忽略的,且开仓和平仓都要收取手续费。手续费接近零的结果表明,注入的腿工具上可能未对期权手续费进行建模,这会高估支付权利金的多头期权组合的净收益。这属于回测引擎/手续费方面的问题,而非策略代码的缺陷。
可考虑在DVOL和RV均不可测量时默认为False(跳过开仓),使每次开仓都真正满足低成本-IV这一必要条件;或通过日志确认在该宽松兜底条件下没有发生任何开仓。
当两种波动率度量均不可用时,低成本-IV门控会PERMISSIVE:如果DVOL历史数据稀疏(小于min_iv_samples)AND已实现波动率的兜底方案也无法计算,_iv_cheap会返回True,这意味着可能在WITHOUT未确认低成本-IV条件的情况下开仓。该假设将便宜的IV作为必要条件之一('确认regime AND IV便宜')。对于BTC的Deribit DVOL而言,该窗口很快就会被填满,因此影响仅限于回测早期/存在数据缺口的部分,但在该区域内产生的任何交易都仅基于regime判断,而非规范所要求的regime-AND-低成本-IV组合条件。
分析师:请验证每笔交易的权利金支出占权益的比例是否合理(风险有限的多头期权每笔交易应只承担较小百分比的风险);如果1份合约相对权益而言过大,请改用基于权利金预算(risk_frac)的仓位规模设定方式。
沙盒测试中avg_position_pct=93.6%。仓位规模通过继承的_leg_size方法固定为每次开仓1份合约(contracts=1.0)。对于多头期权而言,真实风险即为所付权利金(风险有限,且-70%止损进一步限定了风险),因此报告出的较高position_pct可能反映的是引擎对期权NOTIONAL(合约数x标的资产)的估值,而非实际承担风险的权利金。值得确认在完整回测中,固定的1份合约规模不会在低权益水平下导致过度集中,或产生相对权益而言大得不合理的权利金支出。
回测评审
- 夏普
- 3.43
- 总收益率
- 10.15%
- 最大回撤
- 9.79%
- 总交易数
- 9
- 胜率
- 44.4%
- 盈利因子
- 1.86
机制健全并通过了验证:单一多头期权腿=以有限风险方式表达趋势判断的凸性结构,不涉及多腿执行路径。
填补了两个欠代表的类别(期权场所+long_short方向)。
在有交易发生的情况下,单笔交易的凸性表现良好(PF 1.86,正偏度1.55,max_dd仅为9.8%)。
在整个可用期权历史数据中仅有9笔交易;引擎标记metrics_reliable=false。
全部净收益来自单一异常月份(2026-02 +14.3%);其余8个月大致相互抵消。
sharpe_ci_low = -13.1 —— 夏普比率CI横跨0;deflated_sharpe无法计算。该指标在统计上没有意义。
目录中的Deribit月度BTC期权链仅覆盖约12个到期日(2025-07起);lookback_days=365已经涵盖了这一范围——没有任何开发者层面的改动能够增加月度周期。
这是第二次得到相同的9笔交易结果,在同一个数据壁垒上再次迭代属于原地打转。
分析
不要NOT对9笔交易进行优化(引擎已将metrics_reliable标记为false,且全部+100%收益均来自Feb-2026这一个孤立异常值)。根本原因在于数据覆盖范围,而非逻辑本身:rolling_options.lookback_days为365,因此月度期权链扩展仅找到约12个周期(从2025-07起)。已晋级的CSP同类策略使用了lookback_days=1100,获得了一条可回溯至2023、共36个周期的期权链。FIX:将rolling_options.lookback_days提高到约1100,使月度Deribit BTC期权链覆盖2023-2026,从而产生约36个入场机会(约为原交易数的3x),并获得一个跨越2024牛市和2025-26回撤期、在统计上可检验的样本。在投入优化算力之前,重新回测并确认该优势在约30+笔交易中依然存在(正期望值NOT依赖于单一月份,win_rate和profit_factor保持稳定)。其余部分保持不变。
结局总结
一个机制健全、已通过验证的期权策略,如果目录中只有约12个月度到期日,仍然无法得到有效验证——9笔交易,夏普比率置信区间从CI到-13再到+11,且全部收益来自一个月份,这样的数据无法支撑优化,因此在反复迭代之前必须先确认期权链的深度。
回测审核员在优化前的关卡返回了'revise_hypothesis'判定:机制本身是合理的且已通过验证,但目录中的Deribit月度BTC期权链仅覆盖约12个到期日(2025-07起),因此lookback_days=365已经涵盖了这一范围,没有任何开发者层面的改动能够增加周期数——而且这已是第二次得到相同的9笔交易结果,进一步迭代只会在数据壁垒上原地打转。该最终阶段已被放弃。
一个在Deribit BTC月度到期日上的单腿多头期权策略,以凸性方式表达方向性趋势判断:在确认的上升regime且IV便宜时买入一份约5%行权价的OTM看涨期权,在确认的下降regime且IV便宜时买入一份约5%行权价的OTM看跌期权,最多持有一条风险有限的腿(最大亏损=权利金),并按月展期。
在可用期权历史数据中,回测仅交易了9次(6份看涨,3份看跌,平均开仓IV 0.323,净开仓vega +751,约24 DTE),metrics_reliable=false:名义夏普比率为3.43,盈利因子为1.86,呈正偏度且最大回撤为9.8%,但sharpe_ci_low的-13.1(CI横跨零值),且全部净收益都由单一异常月份(2026-02,+14.3%)承担。未运行任何优化阶段。
Stratmill 是研究与模拟交易工具,不提供财务建议,也不是经纪商。回测与模拟结果均为假设性结果。交易存在亏损风险。