策略
SOL 周末波动率状态突破
结局: 已放弃
SolWeekendVolatilityRegimeBreakoutLS1H
结局总结
该策略押注周末流动性稀薄会放大 SOL 波动,因此在整个周末交易周五晚间盘整区间的突破。此前一次迭代在第 Layer-2 层因静态方法描述符问题而崩溃;iter-2 修复(将 UTC 辅助函数移至模块级)使其顺利运行——994 次入场,没有被丢弃的交易。但前提恰好相反:周末突破会反复震荡并回归,导致盈利因子 0.76、夏普比率 -1.69、总收益 -79.8%、84% 回撤,并在 6 年中的 7 年亏损;1H 的频繁交易还造成了严重的费用侵蚀。分析师在优化前就放弃了该策略,认为没有任何 ATR/阈值调整能把方向错误的方向性突破变成赢家,而且计划中的辅助确认信号甚至从未实现。
假设
利用 Solana 在 Binance USD-M 期货上的独特周末波动率状态。周末期间,传统金融市场休市会减少机构资金流和做市商活动,使流动性变薄并放大 SOL 价格波动。策略检测周末状态变化(周五约 20:00 UTC 起),并在价格突破由周五晚间盘整定义的区间(18:00-23:59 UTC 周五的高点/低点)时交易波动扩张突破。辅助信号——资金费率背离(>0.01%)、未平仓合约量下降以及多空比极值——用于确认流动性降低、容易出现夸大波动的环境。沿突破方向入场,使用基于 ATR 的移动止损,在 2-3x ATR 设置硬性 TP,在 1x ATR 设置止损,并在周一 00:00 UTC 设置时间止损。周末 SOL 波动达到 3-5% 的情况很常见;捕捉 30-40% 每笔可获得 1-2%,远高于 0.15% 的费用门槛。主要交易品种:SOLUSDT Binance USD-M 期货(MARGIN 账户)。K线周期:主要为 1h,状态确认使用 4h。风险因素:周日闪崩、交易所维护时段、假期异常,以及随着周末参与度上升可能出现的状态衰减。
Iteration-2 对 Layer-2 TypeError 的最小修复(_dt() 接受 1 个位置参数,但实际给出了 2 个)。根本原因:UTC 转换辅助函数是一个 @staticmethod,但 Layer-2 的 _StrategyProxy 会将类可调用对象重新绑定到替代实例上,这会丢弃 staticmethod 描述符,并把代理实例作为注入的第一个位置参数传入;因此,一个有 1 个参数的静态方法会以 2 个参数被调用,导致每个场景都报错。修复方法是将辅助函数 `_ts_to_dt` 移至模块级函数(模块函数永远不会绑定到实例,因此不会注入 self),并重命名以避免遮蔽 `import datetime as _dt` 别名;calculate_signal 和 should_exit 中的两个调用点现在都调用 `_ts_to_dt(...)`。其他内容均未改变:导入正常(Layer 1 通过),且测试框架执行的周五区间/周末时段/ATR 止损信号以及入场/退出/仓位规模逻辑与原先逐字节相同,因此没有早期层回归。交易场所仍为 BINANCE USD-M 期货(多空交易需要保证金),杠杆 1.0(不用于放大,因此不会触发 leverage_set_but_unused 门槛)。
SOL 周末波动率突破这一前提已被实证证伪:该策略是灾难性且持续亏损的策略,profit_factor 0.761,夏普比率 -1.69(CI 全部为负),total_return -79.8%,max_drawdown 84.4%(从 CI 到 95%),每笔期望收益 -$81,win_rate 32.5%,PSR 0.0041——在 6 年中的 7 年亏损(从 2020 -19.3% 到 2025 -19.5%,仅 2026 年为正),且滚动夏普比率在很长时期内处于 -5 至 -12。代码实现正确,交易行为符合规格(994 次入场,0 次被丢弃),因此这是前提方向错误,而非代码缺陷:周末期间对周五晚间盘整区间的突破会反复震荡并回归(流动性稀薄时的假突破),而不是延续,与策略论点相反;1H 的交易频率导致过度换手(994 笔交易,$21k 佣金 + $18.9k 冲击成本,占毛收益 8.27%),进一步加剧亏损。假设中的资金费率/OI/多空比确认从未实现(代码是纯 OHLCV)。不要优化:没有任何 ATR/阈值调整能把夏普比率为 -1.69、PF 0.76、回撤为 84% 且在 6 年中的 7 年亏损的策略变成赢家。不要迭代:代码已正确实现该前提;唯一的“修复”是反向操作,改成周末区间反转(均值回归),这属于另一种假设。不值得花 2 小时。FAILURE PATTERN:在 1H 周期上,对高贝塔山寨币(SOL)进行周五区间周末波动率突破,会导致灾难性、被费用侵蚀的亏损(PF 0.76,夏普比率 -1.69,总计 -79.8%,84% DD,7 年中有 6 年亏损),因为周末流动性稀薄时的突破是假信号,会反复震荡而非延续;高交易频率使佣金/冲击成本(占毛收益 8%+)占据主导——按日历筛选的突破反转策略可作为反向思路,但方向性周末突破在波动剧烈的山寨币上没有足以覆盖费用的优势。
实现
在 SOLUSDT.BINANCE USD-M 期货上进行的多空周末波动率状态突破策略,使用 1H K线,纯 OHLCV。构建周五晚间盘整区间(18:00-23:00 UTC 周五的高点/低点),并在周末时段(周五 >= 23:00、周六、周日)内,收盘价高于周五高点时做多(LONG),收盘价低于周五低点时做空(SHORT)。使用 ATR(14) 止损(1x)、止盈(2.5x)和移动止损(入场后相对最佳收盘价回撤 2x)进行管理,并设置周一 00:00 UTC 的硬性时间止损。信号是收盘价与周五区间中点之间以 ATR 单位表示的连续距离;离散突破是入场门槛。杠杆 1.0。
验证结果
验证失败(第 2 层 — 合成场景): 使用的参数:['sl_atr', 'tp_atr', 'trail_atr', 'atr_period', 'min_notional', 'position_pct', 'consol_end_hour', 'consol_start_hour', 'breakout_buffer_pct'] 请检查 __init__ 是否设置了 self.parameters.get() 中的所有属性。 - steady_uptrend: TypeError: SolWeekendVolatilityRegimeBreakoutLS1H._dt() 接受 1 个位置参数,但实际给出了 2 个(K线时间戳:1735690500000) - steady_downtrend: TypeError: SolWeekendVolatilityRegimeBreakoutLS1H._dt() 接受 1 个位置参数,但实际给出了 2 个(K线时间戳:1735690500000) - flat_ranging: TypeError: SolWeekendVolatilityRegimeBreakoutLS1H._dt() 接受 1 个位置参数,但实际给出了 2 个(K线时间戳:1735690500000) - volatility_spike: TypeError: SolWeekendVolatilityRegimeBreakoutLS1H._dt() 接受 1 个位置参数,但实际给出了 2 个(K线时间戳:1735690500000) - zero_volume: TypeError: SolWeekendVolatilityRegimeBreakoutLS1H._dt() 接受 1 个位置参数,但实际给出了 2 个(K线时间戳:1735690500000) - price_gap: TypeError: SolWeekendVolatilityRegimeBreakoutLS1H._dt() 接受 1 个位置参数,但实际给出了 2 个(K线时间戳:1735690500000)
回测评审
- 夏普
- -1.69
- 总收益率
- -79.79%
- 最大回撤
- 84.41%
- 总交易数
- 994
- 胜率
- 32.5%
- 盈利因子
- 0.76
实现正确且交易行为符合规格:994 次周末突破入场(565 次做多 / 429 次做空),0 次被丢弃——没有代码缺陷;原始样本充足
灾难性且持续亏损:profit_factor 0.761,夏普比率 -1.69(CI 全部为负),total_return -79.8%,max_drawdown 84.4%(从 CI 到 95%),每笔期望收益 -$81,win_rate 32.5%,PSR 0.0041
6 年中的 7 年为负(从 2020 -19.3% 到 2025 -19.5%;仅 2026 年为正),滚动夏普比率在很长时期内处于 -5 至 -12,max_consecutive_losses 17
前提被证伪:周末期间对周五晚间区间的突破会反复震荡/回归(流动性稀薄时的假突破),不会延续——这与假设相反
过度换手且被费用侵蚀:在 1H K线上进行了 994 笔交易,产生 $21k 佣金 + $18.9k 冲击成本(佣金占毛收益 8.27%);假设中的辅助资金费率/OI/L-S确认从未实现(纯 OHLCV)
结局总结
高贝塔山寨币在周末流动性稀薄时的突破是假信号,会反复震荡而非延续,因此方向性的周五区间突破没有足以覆盖费用的优势——而且较高的 1H 交易频率使佣金/冲击成本(占毛收益 8%+)占据主导;唯一的“修复”方式是反向操作,将其改为周末区间反转策略,这属于另一种假设。
分析师在回测审查时放弃了该策略,认为其前提已被实证证伪且方向错误,而非代码缺陷——在 iter-2 静态方法修复后,代码完全按规格交易,但周五晚间区间突破在周末流动性稀薄时会反复震荡并回归,而非延续;1H 的交易频率也导致过度换手(994 笔交易,$21k 佣金 + $18.9k 冲击成本,占毛收益 8.27%),进一步加剧亏损;假设中的资金费率/OI/多空确认从未实现(纯 OHLCV)。
一种在 SOLUSDT 1H 永续期货上进行的多空周末波动率突破策略(纯 OHLCV),构建周五晚间的盘整区间(18:00–23:00 UTC 高点/低点),并在周末交易该区间的突破——高于周五高点做多,低于周五低点做空——采用 ATR 止损/止盈/移动止损管理,并设置周一 00:00 UTC 的硬性时间止损。
在 994 笔交易的样本中(565 笔做多,429 笔做空,没有被丢弃的交易),该策略是灾难性且持续亏损的:盈利因子 0.761,夏普比率 -1.69(CI 全部为负),总收益 -79.8%,最大回撤 84.4%(从 CI 到 95%),每笔期望收益 -$81,胜率 32.5%,PSR 0.0041,最大连续亏损 17 笔,在 6 年中的 7 年亏损,且滚动夏普比率在很长时期内处于 -5 至 -12。
Stratmill 是研究与模拟交易工具,不提供财务建议,也不是经纪商。回测与模拟结果均为假设性结果。交易存在亏损风险。