跳至正文
全部策略

策略

SOL 4H 趋势策略,采用波动率扩张门控,多空交易(SOLUSDT.BINANCE USD-M——在已实现波动率EXPANDING时参与方向性趋势ONLY,在波动率收缩/震荡市场中保持空仓,使用 ATR 追踪退出,3 个参数)

结局: 已放弃

SolFourHourVolExpansionGatedTrendLS

结局总结

SolFourHourVolExpansionGatedTrendLS 试图通过只在已实现波动率明确扩张时交易、拒绝此前导致其他变体失败的低波动震荡行情,使 4H SOL 趋势跟随策略变得可行。在稳健的 6 年、1019 笔交易回测中,该策略扣除成本后基本盈亏平衡:总回报约为 15%,夏普比率 0.18,其 CI 横跨零,利润因子为 1.022,相对于买入并持有的信息比率为 -1.04;在仅约 $226K 的容量下,模型化冲击吞噬了三分之二的毛利。更糟的是,波动率门控未能通过自身论点的检验:策略在声称要避开的平静市场状态中仍亏损 -25.95%。经过 2 次迭代后,分析师在优化前的回测审查阶段放弃了它,认为该手续费优势信号低于交易成本且无法提升——这是已有 0/N 个失败案例的 SOL 单一标的动量策略族中的又一次失败。

假设

一个LONG-SHORT、单标的、纯OHLCV、具有机制识别能力的趋势跟踪策略,交易SOLUSDT.BINANCE(USD-M永续合约),4H K线。它属于本工厂中唯一曾进入纸面阶段的ONLY机制家族(单标的4H多空双向动量加确认GATE——BTC/ETH/ADA全部存活),但它使用了管道中已有的成交量确认和双时间框架兄弟策略中的DELIBERATELY DIFFERENT门控,因此并非重复。核心洞见:4H加密货币趋势跟踪在低波动CHOP中会流血致死(反复打脸的往返交易,其波动幅度小于手续费——这正是杀死DOT波动压缩挤压策略和所有日内反转变体的坟墓),而其利润几乎完全来自波动率EXPANSION阶段中真正的方向性行情。因此,该策略不再试图探测盘整蓄势并预测突破方向(已失败的DOT挤压方法),而是对压缩不可知,仅在波动率DEMONSTRABLY扩张AND价格已确立趋势方向时才介入——它搭乘已经启动的行情,而非猜测。趋势方向符号=N周期变化率(ROC)的符号(单一趋势回看期)。波动扩张门控=ATR(快)/ATR(慢)高于阈值,即短期已实现波动区间相对自身基线处于高位(真实行情,而非漂移)。当门控为OFF时(波动收缩/震荡),策略FLAT——这就是全部优势:它从结构上拒绝交易杀死失败者的费用坟场震荡区间。恰好3个参数:trend_lookback、vol_ratio_threshold、atr_trail_mult。单标的(无篮子——避免multi_instrument 0/127 backtest_failed崩盘)、单场所(无跨场所基差漂移)。这是具有机制识别能力的多空双向(在组合中代表性不足的方向,占14.2%)、低参数(抗过拟合)策略。

迭代2。反馈:回测门控标记了与-22.31%处权益曲线不一致的指标,并指示以权益曲线为准,即实现可运行但持续亏损。与假设字面一致(“当门控为OFF时策略FLAT”)的最小结构性修复是,之前的门控仅阻止NEW入场——持仓被直接带过波动收缩阶段回到震荡中,在那里宽幅3xATR跟踪止损缓慢回吐趋势利润,而基于符号翻转的离场则晚了许多根K线。这种带仓穿越正是假设拒绝交易的费用坟场区间。改动全部局限于离场/阈值层(导入、类结构以及通过第1-3层的连续信号均未动):(1)should_exit现在在波动扩张比率衰减至vol_ratio_threshold*gate_exit_frac以下时平仓(0.90迟滞,避免在入场边界反复闪烁),并受3根K线最小持有期保护,使入场不会在下一根K线即被平掉;(2)收紧选择性——vol_ratio_threshold 1.10->1.15且trend_min_strength 0.35->0.50——使策略只做更少、真正扩张且已确立的趋势,而非大量单笔波动勉强覆盖约0.10%往返成本的边缘交易;(3)atr_trail_mult 3.0->2.5,使反转时回吐更少。更短、受门控约束的持有也缩小了持仓市值盯市,正是它导致夏普比率(mtm序列)与total_return(权益曲线)符号不一致。仍恰好3个可优化参数,单标的,单场所,无杠杆,多空双向。

在决定性的 1019 笔交易 / 6 年样本中,这是一个易受手续费/冲击影响、优势低于成本的信号:profit_factor 1.022(接近盈亏平衡,低于 1.05 可行性底线且处于 fee_edge 区间),夏普比率 0.18,其 CI [-0.61, 1.02] 横跨零,information_ratio -1.04。模型化市场冲击在仅 $226K 的微小容量下吞噬了毛利的 66.5%,因此名义上的 0.236% 单笔回报并非持久优势。波动率扩张门控未能兑现其前提——策略在本应避开的平静市场状态中仍亏损 -25.95%。这是单一标的 4H 趋势/动量 LS 克隆策略,远低于唯一曾存活的层级(夏普>=1.5 且 PF>=2.0,L90),而 SOL 动量策略族已经有 0/N 失败案例(fee_edge / 高-PBO 失败)。对于一个毛优势被手续费和冲击消耗殆尽、且低于交易成本的 PF-1.022 信号,优化无法挽救。失败模式:fee_edge / 优势低于成本。

实现

SOLUSDT.BINANCE USD-M 永续合约,4H K线,只有在已实现波动率EXPANDING时才参与交易的多空趋势跟随策略。趋势得分 = N 根K线变化率除以 ATR(50)*sqrt(N) 进行标准化(每根K线连续计算)。门控 = ATR(10)/ATR(50) >= vol_ratio_threshold。门控开启且 |趋势得分| >= trend_min_strength 时入场(得分为正时 BUY,为负时 SELL)。退出条件:趋势符号翻转;波动率扩张门控切换至 OFF(比率跌破阈值*0.90,且至少持有 3 根K线);或从入场后最佳收盘价起算的 ATR 追踪止损,距离为 atr_trail_mult*ATR(50)。仓位规模按追踪止损距离承担 2% 的权益风险,并以权益名义价值的 1x 为上限;不使用杠杆。

验证结果

无需进行功能性更改;如果基础方法的名称冲突造成混淆,可以改名为例如 _min_bars(),并直接从 calculate_signal 调用。

min_bars_required() 覆盖了框架方法(静态分析器 base_shadow 警告)。这里的覆盖看起来是有意且合理的(trend_lookback+2、atr_slow_period+2、20 中的最大值),并通过 `len(self._bars) < self.min_bars_required()` 控制 calculate_signal,因此遵守了预热要求。请确认基础模板确实会在自身的预热控制中调用此覆盖;如果基础模板使用私有预热计数器,则额外腿部/预热语义仍然成立,因为策略会自行进行保护。

可以选择在提交订单时(在 _submit_entry 钩子中)初始化追踪状态,以便锚点从入场K线开始精确设置;目前这样也可以接受。

ATR 尾随锚点(_trail_best/_trail_worst)和 _entry_bar_i 会在首次检测到新持仓 ID 时于 should_exit 内(重新)初始化。如果 should_exit 未在持仓开仓的确切 K 线上调用(在基础流程中,每根 K 线上开仓和平仓通常互斥),尾随追踪实际上会从开仓之后的 K 线 AFTER 开始。这是尾随锚点/持仓计数器中轻微的偏一错误,不会破坏正确性——它较为保守(min_hold 实际上从开仓后的 K 线开始计数),并符合开发者所述意图。

沙盒冒烟测试向分析师提出三个盈利能力问题,供其在完整回测中权衡:(1) impact_cost_pct 50.91%,capacity_usd 仅约 $386K,换手率为 130.8——单一 4H SOL 组合的 avg_position_pct 32.6% 权益会产生较大的模型化冲击,消耗约一半毛利(如果容量受限,avg_position_pct/max_notional_frac=1.0 仓位规模是可调整的杠杆);(2) 策略在平静波动率市场状态中LOSES(-25.92%,夏普比率 0.036),仅在正常/压力状态下盈利——这与假设自身关于震荡行情是坟场的前提一致,但平静市场状态下的亏损很大;(3) 表面夏普比率为 0.18,其 CI [-0.61, 1.02] 横跨零,且相对于买入并持有的 information_ratio -1.04。这些都不影响正确性;代码忠实实现了假设,优化器尚未运行。应由真实的全历史回测和分析师判断是否存在优势。

回测评审

夏普
0.18
总收益率
14.95%
最大回撤
22.25%
总交易数
1019
胜率
45.6%
盈利因子
1.02

可靠的 1019 笔交易 / 6 年样本(metrics_reliable=true);代码忠实实现了由波动率扩张门控的 LS 机制(1019 发出信号 = 1019 提交,平衡的 630 做多 / 389 做空)。

avg_trade_return_pct 0.236% 名义上超过了 0.15% Binance USD-M 底线,且 max_drawdown 22.2% 并不极端。

profit_factor 1.022——扣除成本后基本盈亏平衡,低于审查门控的 1.05 可行性底线,并明确落在 fee_edge 区间 [0.85,1.10],交易数超过 300 笔(L18)。毛优势处于交易成本之内。

夏普比率 0.18,自助法 CI [-0.61, 1.02] 横跨零,且相对于买入并持有的 information_ratio -1.04——没有可辨别的优势;total_return 在 6 年内仅约为 15%,alpha 为 -0.005。

impact_cost_pct 在 capacity_usd 时的毛利润 66.5% 仅约为 $226K——建模的市场冲击消耗了三分之二的毛优势;该策略只有在极小规模下才有实际可行性。

波动率扩张 GATE 未能实现其明确目的:策略在平静市场状态中仍大幅失血(-25.95%,夏普比率 0.035)——正是它声称要从结构上拒绝交易的震荡行情——且仅在正常/压力状态下盈利。QA 对平静市场状态的担忧已得到证实。

单一标的 4H 趋势/动量 LS 克隆策略,远低于该策略类别中唯一曾存活的层级(ADA 胜出策略:夏普>=1.5,PF>=2.0;本策略为 0.18 / 1.02——L90)。基础回测结果已是上限;去膨胀/留出测试只会使其更低。

SOL 单一标的动量策略族已有 0/N 失败案例:SOL 量能确认动量(fee_edge)、SOL 4H 动量(PBO 0.63、DSR 0.14)、SOL HL 双-TF(PBO 0.75)最近均已失败。

分析

回测门控: - 指标不可靠:不一致:夏普比率 0.13 与 total_return -22.31% 的符号相反——夏普比率根据 mtm_equity_curve 序列计算,而回报来自权益曲线。请根据权益曲线进行判断。

结局总结

波动扩张门控未能兑现其前提——该策略在其本应空仓观望的平静机制中仍亏损-25.95%——单标的4H SOL动量依然为0/N,扣除手续费和冲击成本后接近盈亏平衡。

分析师在回测审查阶段(优化前)放弃了该策略:决定性的 1019 笔交易样本显示,信号优势低于成本且容易受手续费/冲击影响,利润因子处于 fee_edge 区间的 1.022,夏普比率 CI 横跨零,因此分析师认为优化也无法提升它。

一个 3 参数、多空交易的 4H 趋势跟随策略,交易 SOLUSDT.BINANCE USD-M 永续合约;仅在已实现波动率扩张时参与(ATR 快线/ATR 慢线高于阈值),并在波动率收缩/震荡市场中保持空仓,旨在跟随已确立的方向性行情,同时从结构上避开手续费坟场式震荡市场。

在 6 年、1019 笔交易的样本中,总回报约为 15%,夏普比率为 0.18(自助法 CI [-0.61, 1.02]),利润因子为 1.022,胜率为 45.6%,最大回撤为 22.2%,相对于买入并持有的信息比率为 -1.04。其 0.236% 的 avg_trade_return_pct 名义上超过了 0.15% 门槛,但模型化市场冲击消耗了毛利的 66.5%,且容量仅约 $226K。

Stratmill 是研究与模拟交易工具,不提供财务建议,也不是经纪商。回测与模拟结果均为假设性结果。交易存在亏损风险。