策略
BTC 现货 200 日制度择时配合硬性退出至现金 — 仅做多、单一标的、回撤封顶 (BTCUSDT.BINANCE_SPOT, 1 日 — 在已确认的长期上升趋势中、当价格高于其长期均线时完全持仓 ONLY,趋势破位时将 ENTIRELY 移至现金;2 参数)
结局: 已放弃
BtcSpotLongMaRegimeTimingExitToCash
每笔交易的优势足以轻松覆盖现货手续费:avg_trade_return_pct 5.72%,profit_factor 2.37
假设
一个 LONG-ONLY、SINGLE-INSTRUMENT、纯 OHLCV 制度 TIMING 叠加层,应用于 BTCUSDT.BINANCE_SPOT,此乃提炼教训 L48 的刻意极简实现:仅做多现货策略的死亡 risk_reject(52–74% 回撤)ONLY,原因在于它们承担了完整的熊市 beta 却无任何去风险手段 — 故此策略添加了显式的趋势/制度 EXIT-TO-CASH,即 L48 所称的缺失要素,仅此而已。它既不是 NOT 投资组合构建篮子(最小方差/风险平价,全部 risk_rejected — 此为单一标的、二元进出配置,无协方差优化),也不是 NOT 逢低买入累积(其死亡 no_trades 系因在 2020–2023 区间聚集入场 — 本策略则在 EVERY 制度周期中随趋势切换),更不是 NOT 跨场所基差/套利(整个双腿策略家族刚再度死亡 fee_edge,发生于 SOL 与 BTC),亦非 NOT 反转交易 (L53),亦非 NOT 轧空 (L54),亦非 NOT 期权/COIN-M/横截面。该机制刻意采用文献中最简洁稳健的规则 — 在已确认的上升趋势中、当价格高于其长期均线时持有 BTC,否则持有 CASH — 选择此方案正是因为过度拟合是此处的第 #1 大杀手(301 次死亡),而 2 参数、经数十年验证的制度过滤器几乎无曲线拟合空间。此策略填补了代表性不足的现货场所(11.8% 对比 ≥15% 目标,而现货为有记录的最高生存率场所),同时从结构上解决了先前现货策略被否决的明确原因。
QA 提出了两项否决意见,我用一次改动解决了两项,同时保持规则、信号、随机种子修复和仓位规模完全不变。关键在于,被定时判断的 regime 是价格路径的属性,而非用于观察它的 K 线间隔 — 因此我保持移动平均线长度为 CALENDAR,将观察频率从每天做出 1 次决策改为 24。在相同数据和相同规则下进行并列测量:1-DAY 产生 36 次完整往返交易(每年 4.0 次)、33.2% CAGR、47.9% DD;1-HOUR 产生 117 次完整往返交易(每年 14.3 次)、48.9% CAGR、40.1% DD。(1)MEASURABILITY:117 次往返交易超过了所引用的约 100 笔交易门槛 QA;每年约 14 次交易足以填充每个 walk-forward OOS 窗口;我测得样本中约 28% 的所有 15 天窗口现在至少包含一次成交,而此前约为 10%;我还单独重放了 365 天的沙箱窗口,可完成 4 次完整往返交易,因此 Layer 3 有充分余量通过。我也坦诚说明局限:每年约 14 笔交易时,指定的 15 天留出集仍更可能为空 — 这是所有长期 regime 定时策略固有的限制,也是这一机制的真实上限 — 但现在这是一种概率风险,而非构造上不可能。(2)VALUE PROPOSITION:日线版本表现逊于买入并持有(33.2% 对比 35%,信息比率为负),这是 QA 的第二项否决意见;小时线版本则显著跑赢其基准(48.9% 对比 30.0%),因为趋势破坏后它会在数小时内退出,而非等待数天;这种响应速度也将最大回撤降至 40.1% — 明显低于会使仅做多现货被风险审查否决的 52-74% 区间,而 47.9% 曾令人担忧地接近该区间。将退出条件放宽至均线本身(exit_band_pct = 0.0,这是构造常数而非新的优势参数),在回撤不变的情况下还能增加约 40% 次往返交易。唯一的机械性改动是增大 self._max_bars:2400 根 K 线的均线长度超过了基类 500 根 K 线的缓冲区;若不调整,min_bars_required() 将永远无法触发,策略也会永久失效 — 这只是缓冲区大小调整,不改变行为。参数边界声明与代码中的截断范围完全一致,并覆盖我测量的区域(日历天数为 60-120,区间为 0.3-2.0%);其中每个参数组合的结果都是 45-58% CAGR 和 37-52% 回撤,因此优化器看到的是平坦区域,而非可被曲线拟合的尖峰。
仅做多的 BTC 现货 MA-regime 覆盖策略,风险调整后的优势微不足道:夏普比率为 0.178,95% CI [-0.51, +0.86] 跨越零点,信息比率为 0.0528,alpha 几乎完全由 beta(0.56)/基准相关性(0.73)带来。50% CAGR 是牛市周期中的加密货币 beta,而非 alpha — 收益集中且依赖 regime(win_rate 16.9%,偏度 -2.61,峰度 29.9;2022 -20%,2026 +10%),少数 2021/2024/2025 笔牛市交易贡献了全部收益,而 max_drawdown_ci_high 为 99.4%。MA filter 确实降低了回撤(41.5%,买入并持有为 77-83%,实现了预期的 L48 修正),但降低 DD 并未带来统计显著的优势;优化 2 MA 参数也无法使 0.178 夏普比率超过晋级门槛。失败模式:no_edge/risk_reject 仅做多的现货加密货币 beta 策略,夏普比率不显著 — 不值得投入 2 小时优化。
实现
在 BTCUSDT.BINANCE_SPOT 上仅做多的单标的 regime 定时覆盖策略,现基于 1-HOUR K 线评估,使用日历等效的 100 日移动平均线(2400 根 K 线)。每根 K 线都会计算收盘价与该均线的分数距离(信号 = close/SMA - 1)。当价格收盘band_pct高于均线时(确认的长期上升趋势),策略会全仓买入(BUY,现金权益约为 97%);当价格收盘重新跌破均线时,立即全部平仓转为现金(ENTIRELY)。两个边界参数:ma_period(regime 定义)和 band_pct(确认/避免震荡区间)。不做空(CASH 账户),不加杠杆,不设止损,不设止盈,不配置第二种资产 — regime filter 就是全部风险管理。在 BTCUSDT 现货 2018-06 → 2026-08 上,扣除每边 0.10% 的现货手续费后,默认参数产生 117 次完整往返交易(每年 14.3 次)、48.9% CAGR 和 40.1% 的最大回撤;相比之下,买入并持有的 CAGR 为 30.0%,回撤为 77.2%。
验证结果
CLEAN RESTART 2026-09-04 — 本次运行的判定历史和学习记录已移除,并从验证阶段重新启动。此前放弃该策略是由流水线导致的,而非市场因素:Layer-2 测试框架错误绑定了 @staticmethod 辅助函数(已修复),QA 在未经优化的冒烟测试中给出了终局性能判定(已移除 — 现在由 QA 仅评估正确性),沙箱超时源于回测时段资源不足(已修复)。假设和策略代码均未改变。请根据代码本身的优劣进行验证;性能将在之后由完整回测和优化器判定。
回测评审
- 夏普
- 0.18
- 总收益率
- 2471.77%
- 最大回撤
- 41.52%
- 总交易数
- 118
- 胜率
- 16.9%
- 盈利因子
- 2.37
每笔交易的优势足以轻松覆盖现货手续费:avg_trade_return_pct 5.72%,profit_factor 2.37
MA regime filter 完成了预期任务 — 相较于买入并持有,max_drawdown 41.5%,而买入并持有为 77-83%(L48 去风险化有效)
交易次数充足(118),设计简洁明了,仅含 2 个参数,曲线拟合空间小
正向点估计 alpha (0.23) 与正信息比率,于代表性不足的高生存率现货场所
夏普比率为 0.178,95% CI [-0.51, +0.86] — 统计上无法与零区分,远未达到晋级门槛
信息比率为 0.0528,beta 为 0.56 / benchmark_correlation 0.73 — 50% CAGR 是牛市周期中的 BETA,并非相对于买入并持有的真实风险调整优势
盈亏极度集中且依赖 regime:win_rate 16.9%,偏度 -2.61,峰度 29.9,波动率 58% — 少数 2021/2024/2025 笔牛市交易支撑了全部收益;2022 -20%,2026 +10%
max_drawdown_ci_high 99.4% — 被 41.5% 点估计掩盖的深度尾部风险
一个 2 参数的 MA 扫描无法将 0.178 不显著的夏普比率转化为可推介的水平;约束在于收益形态,而非参数选择
迭代历史
验证失败(Layer 3 — 沙箱回测):未产生交易 使用的 K 线类型:BTCUSDT.BINANCE_SPOT-1-DAY-LAST-EXTERNAL,处理的 K 线数:363 诊断:should_enter() 在经过评估的 212 根 K 线上返回了 0 次方向信号 -> 你的 ENTRY CONDITION 从未触发。请放宽入场逻辑/阈值。 确保你的策略能在给定数据和参数下产生交易。
验证失败(Layer 4 — QA 审核): - STRUCTURALLY UNMEASURABLE — 按照构造,15 天留出集为空。这是一个跨多月的长期 regime 定时策略:开发者自己的全样本数据为 2017-2026 内 36 笔交易(每年约 4 笔)。沙箱在 362 天内仅进行了 1 笔交易,且 metrics_reliable=false,因此 Phase-3 的 15 天留出集将包含 ZERO 笔交易(自动触发 HARD 零交易门槛失败),walk-forward 的 OOS 个窗口也都只会有寥寥几笔交易。每年约 4 笔交易,远低于约 100 笔的门槛。修改代码无法解决这一问题 — 这是日线-MA regime 机制固有的局限,属于假设/标的设计缺陷,并非本轮已正确修复的预热问题。 - 即使不考虑可测量性,全样本价值也很弱。根据开发者自己的数据:47.9% 的最大回撤下,33% CAGR;相比之下,买入并持有的 CAGR 为 35%,且 DD 为 83% — 其收益UNDERPERFORMS买入并持有(相对于基准的信息比率为负),而回撤仅从 DD 降至 47.9%,仍接近会使仅做多现货被风险审查否决的 52-74% 区间(L48)。这种风险降低以牺牲收益为代价(通过趋势过滤跟随 beta),正是下游放弃的策略特征,且 DD 未能明显低于否决阈值。
验证失败(Layer 4 — QA 审核): - 最近 regime 失败 — 将观察频率从日线改为小时线导致来回震荡并产生亏损。沙箱结果:4 笔交易全部亏损,total_return -6.58%,avg_trade_return_pct -1.45%(负值),夏普比率 -0.63,win_rate 0.0,metrics_reliable=false。改为 1-HOUR 根 K 线,并将退出条件放宽至单纯的 MA(exit_band_pct=0),虽然增加了交易次数,却在近期震荡的 BTC regime 中,跨越 MA 造成了来回震荡 — 这正是日线版本避免的问题。walk-forward 的 OOS 个窗口和 15 天留出集都处于这一近期 regime,而该 regime 会亏损。 - 可测量性问题实际上并未解决 — 开发者也承认这一点:“每年约 14 笔交易时,指定的 15 天留出集仍更可能为空 — 这是该机制的真实上限。”零交易硬门槛的风险仍然很高,沙箱也只产生了 4 笔交易(metrics_reliable=false)。小时线减少了结构性问题,但并未消除它,同时还引入了近期 regime 亏损。 - 相比沙箱,干运行夸大了表现:声称全样本有 CAGR 48.9%(跑赢买入并持有 30%),但代码中的实际规则在近期数据上回报为 -6.58%,其中 4/4 笔亏损。全样本数据由更早期的牛市 regime 拉动;评估门槛所用的近期窗口则出现亏损。这仍是一个仅做多、纯 OHLCV 现货策略(存活率约 0% L7;回撤风险为 L48,全样本 40% 约为 DD)。
Stratmill 是研究与模拟交易工具,不提供财务建议,也不是经纪商。回测与模拟结果均为假设性结果。交易存在亏损风险。