策略
BTC COIN-M 盘整制度均值回归,多空(BTCUSD_PERP.BINANCE_CM,1小时K线 —— 在市场无方向时,从48小时锚点ONLY反转2-西格玛拉伸;回归均值时退出;纯粹的OHLCV,趋势过滤器旁观,约2参数)
结局: 已放弃
BtcCmInverseHourlyRangingRegimeReversionLS
回测门槛: - 指标不可靠:不一致:Sharpe 0.12 与 total_return -100.00% 的符号相反——Sharpe 根据 mtm_equity_curve 序列计算,而收益来自权益曲线。应依据权益曲线判断。
假设
一个LONG-SHORT、单品种MEAN-REVERSION策略,基于BTC保证金COIN-M反向永续合约(BTCUSD_PERP.BINANCE_CM,约0.06% RT吃单 → 0.10%手续费底线)。它一次性填补了三个代表性不足的桶位 —— BINANCE_CM场所(3.5%对5%目标)、多空方向(13.1%对推送目标),并采用了与近期COIN-M失败DISTINCT的机制DELIBERATELY(其中ETHUSD_PERP波动率制度切换是DIRECTIONAL趋势-按-波动率-桶位带反转符号;SolCoinM是突破陷阱反转;我之前的CM思路是交易时段延续)。这不是动量/趋势克隆(L38),不是组合构建篮子(L48),不是非行情源过滤器(L46),不是期权结构(引擎坟场),也不是日期/季度/清算边缘(L47 data_unavailable)。它是纯粹的OHLCV —— 生存率最高的标签家族(no_supplementary_data 3%)。核心思路:在大部分小时里加密货币NOT趋势,在那些无方向窗口中,远离短期滚动锚点的剧烈K线内拉伸会过度延伸并回弹。我们衡量价格相对于其48小时滚动均值的z分数,当价格推导的方向性指标(效率比率)显示市场处于盘整时,我们ONLY反转该拉伸 —— 在趋势中则完全旁观,这是朴素均值回归的典型失败模式。符号正确:仅在震荡中反转极值,绝不在趋势中。
第3次迭代修复了-100%权益曲线的两个机械性原因,未触碰z分数、ER过滤器、入场极性或反向合约仓位(这些全部已通过第1-3层)。(1)反向盈亏:第2次迭代的FIXED 2%括号腿是西格玛缩放信号的错误单位。ER过滤器刻意选择平静窗口,此时真正的盈利目标 —— 回到48小时锚点的距离,(|z|-exit_z) x 西格玛 —— 远在2%内部,因此赢家被信号退出提前平仓,仅获得百分之零点几的利润,而2%止损只有在波动率扩张中才会被触发并被完全支付(第1次迭代:avg_win $438 对 avg_loss $914,胜率63%)。两条腿现在都以西格玛为单位:TP位于反转目标(与信号退出目标相同,但以INTRA-BAR到达),止损位于TP/rr_target,形成结构性的1.5:1盈亏比,任何反转目标无法覆盖min_edge_frac(往返手续费+松弛)的入场都被跳过。(2)路径盲仓位:在BINANCE_CM上,所有盈亏/手续费以BTC结算,而get_account_equity()读取未触及的USD稳定余额,因此返回恒定的100k,每笔入场都以全部起始资金进行仓位 —— 亏损尾部随后挖出LINEAR的洞,正好到-100%,而不是衰减。该策略现在从已平仓头寸收割已实现盈亏(币本位盈亏按当前价格转换为USD,在仓位→平仓转换时每笔交易收割一次,从不按K线收割),并按权益+已实现进行仓位,以起始的15%为下限;该修正仅在合约是反向合约时应用,因此其他地方不变。每笔交易风险(1.0%)和总仓位上限(30%)也被削减,因此回撤会缩小下一次下注。杠杆保持1.0。
negative_expectancy:在决定性的1059笔交易/6.9年样本上的负期望均值回归 —— 账户被清算(total_return -100%,PF 0.82,avg_trade_return_pct -0.174%即BELOW ZERO,远低于约0.10% COIN-M往返,期望值 -$49.79/笔,夏普-0.86)。核心前提被证伪,而不是调参不当:表现在平静/盘整三分位上WORST(夏普-1.84,-100%回报) —— 这正是ER过滤器所选择的精确震荡 —— 因此ER<=er_max制度过滤器无法隔离出有利的回归窗口。没有正的总边际可供手续费优势挽回,因此优化entry_z/er_max无法扭转符号错误的制度响应。这是同一机制的3次迭代,达到同样的归零。不值得花2小时优化。
实现
在BTC保证金的COIN-M反向永续合约上进行多空均值回归(BTCUSD_PERP.BINANCE_CM,1小时K线)。每根K线都计算收盘价相对于48小时滚动均值/标准差的 z 分数,以及同一窗口内的考夫曼效率比。当效率比显示市场没有方向性(ER <= er_max)时,对偏离2个标准差的行情进行反向交易(高于锚点时SHORT,低于锚点时LONG),并且仅在此条件下入场(ONLY);趋势期间完全观望。平仓采用交易场所管理的OUO括号订单,其订单腿在每次入场时均为SIGMA-SCALED——止盈恰好设在均值回归目标位((|z|-exit_z) x 标准差),止损设为止盈距离的1.5倍,因此每笔交易的风险回报比为1.5:1;此外还有价格回归锚点时触发的信号平仓,以及48根K线的最长持仓限制。仓位规模按实际括号订单止损金额计算,风险为1%的PATH-AWARE权益,上限为30%的总名义价值,并向下取整为整$100张反向合约。
验证结果
确认get_account_equity()在回测引擎中对BINANCE_CM(反向、BTC保证金)账户返回什么。如果它已经反映了已实现BTC盈亏,则移除_realized_usd修正以避免重复计算;如果它确实是常数,则当前的收割是正确的。
_path_equity()对反向合约将已收割的已实现盈亏加到get_account_equity() ONLY上,基于get_account_equity()返回恒定的USD稳定余额(从不跟踪BTC结算的盈亏路径)的假设。如果引擎中的BINANCE_CM账户权益实际上反映了BTC余额变化(即已经跟踪了路径),则会重复计算亏损,并使仓位缩减速度超出预期。效果是保守的(回撤后下注更小),并非灾难性的,因此不会卡住 —— 但get_account_equity()是冻结的100k这一点,应根据引擎的反向账户核算进行验证。
验证基类模板是否遵循重载的 min_bars_required();如果它使用不同的钩子名称,则应与之对齐。
min_bars_required(self) 遮蔽了基类框架方法(静态分析 base_shadow 警告)。如果基类模板依赖自身的预热门控,且不会分派到此重载方法,那么框架可能不会强制执行预期的 48+5 根 K 线预热期。合成环境和沙盒均已运行且正确完成预热,因此这仅供参考。
沙盒净亏损(total_return -12.5%,Sharpe -0.36,PF 0.96,avg_trade_return_pct -0.025%,即低于约 0.10% CM 的往返成本),共 564 笔交易。值得注意的是,状态归因显示,WORST 表现出现在平静三分位(收益 -11.87%,Sharpe -0.66)——这正是 ER 门控设计要筛选的区间震荡条件——与假设预测相反(均值回归应在震荡市中表现最佳)。这是对核心前提的直接检验,而在这次未经优化的测试中结果适得其反。其机制(每笔交易较薄的均值回归优势必须覆盖反向合约手续费)可能无法在扣除成本后成立。值得让分析师检查 ER<=er_max 门控是否确实筛出了盈利的均值回归时段,再决定是否投入优化预算;调整 entry_z/er_max 未必能扭转方向错误的状态响应。
回测评审
- 夏普
- -0.86
- 总收益率
- -100.00%
- 最大回撤
- 100.00%
- 总交易数
- 1059
- 胜率
- 41.1%
- 盈利因子
- 0.82
可靠且具有决定性的样本:在 6.9 年的 1H BTC COIN-M 数据中有 1059 笔交易,metrics_reliable=true。
机制符号正确(反转拉伸、趋势中旁观),实现干净;仓位/反向合约处理合理。
在具有决定性的样本上,期望收益为负:profit_factor 0.82,avg_trade_return_pct -0.174%(BELOW ZERO,并非仅仅低于约 0.10% COIN-M 的手续费下限),单笔期望收益 -$49.79,Sharpe -0.86,其中 CI [-1.80, 0.09]。
账户LIQUIDATED(total_return -100%,清算2024-05-21) —— 这是同一机制的第3次迭代,再次归零。
核心前提被证伪:WORST 状态三分位是平静/区间震荡(收益 -100%,Sharpe -1.84)——这正是 ER 门控旨在筛选的震荡条件。均值回归理应在此表现最佳,结果却适得其反。
盈亏结构不利(41% 胜率),且 ER<=er_max 门控并未 NOT 筛出盈利的均值回归时段——完整历史数据证实了 QA 对优势的担忧。
分析
回测门槛: - 指标不可靠:不一致:Sharpe 0.12 与 total_return -100.00% 的符号相反——Sharpe 根据 mtm_equity_curve 序列计算,而收益来自权益曲线。应依据权益曲线判断。
迭代历史
验证失败(第4层 —— QA复核)[类别=no_edge]: - NET LOSER,带有假设声称ER过滤器本应防止的反向盈亏比。profit_factor 0.815(<1),total_return -22.36%,avg_trade_return_pct -0.167%(为负),期望值 -$62.6,夏普-0.416,阿尔法-0.066,共316笔充分计量的交易。教科书式的回归陷阱:win_rate 0.630但avg_loss $914是avg_win $438的两倍多 —— 回归失败的尾部加上4%止损和手续费淹没了众多的小盈利。效率比率过滤器NOT修复反向盈亏失败的模式。与ETH-CM布林带均值回归兄弟(PF 0.96)同样的死亡,在这里更糟(PF 0.815,负avg_trade)。没有参数变化能拯救一本平均亏损是平均盈利2x且每笔回报为负的账册。 - 均值回归-反趋势在此反向盈亏比剖面上是反复阵亡的家族;ER过滤器本应是差异化因素,但未能提供。结构性的不对称(到锚点的小目标与宽幅的回归失败亏损)是固有的,无法通过entry_z/er_max修复。
验证失败(第4层 —— QA复核)[类别=no_edge]: - iter-2忠实实现的净值为负且无优势:total_return −25.8%,夏普−0.264(CI [−1.37, 0.83]),PF 0.903(<1),avg_trade_return_pct −0.078%(为负,低于CM手续费底线),期望值 −$38.84/笔,共423笔交易。请求的K线内括号修复QA被正确应用并在机械上生效(PF 0.815→0.903,尾部归一化),但只是把更大的亏损变成较小的亏损,并未形成优势 —— 正是开发者的ETH-CM先例所预测。 - 尽管有对称的2%/2%括号,盈亏比仍呈反向:win_rate 0.593但avg_win $608 < avg_loss $983。由于回归锚点的退出(|z|≤0.25,在2% TP内部)限制了盈利的规模,而亏损会一直跑到完整的2%止损位,因此>50%的胜率仍然亏损。long_win 0.586 / short_win 0.600两者都>0.5 —— 这不是极性错误,反转确实发生;只是几何结构无法覆盖成本。
Stratmill 是研究与模拟交易工具,不提供财务建议,也不是经纪商。回测与模拟结果均为假设性结果。交易存在亏损风险。