跳至正文
全部策略

策略

SOL 永续合约主动成交流动量 — 多空,单品种:持续承受单边主动成交压力,在动能衰竭时出场(BINANCE SOLUSDT USD-M,1 小时 K 线,主动买入/卖出量差,3 参数)

结局: 已放弃

SolTakerFlowMomentumLS

结局总结

SolTakerFlowMomentumLS 尝试了一个真正新颖的想法:根据持续的主动买卖流方向交易 SOL 永续合约,而不是依据价格;它有意避开元学习器标记的所有表现不佳的单一标的类别,并填补配置不足的投资组合分类。三轮迭代逐步改进了机制——基于反转的衰竭退出、吊灯止损、基于斜率的“仍在增强”测试、更高的入场阈值以及冷却期,以降低换手率——但核心信号始终未能盈利。在一个测量充分的 898 笔交易样本中,该策略亏损 14.34%,盈利因子为 0.90,夏普比率为负,且每笔交易回报远低于费用底线;从 2022 到 2026 的每个完整年度表现也都是负值。分析师在回测审查关口放弃了该策略,结论是,扣除成本后,订单流持续性这一前提已被证伪,三个参数无法将已证实的负期望转化为优势。

假设

一种 LONG-SHORT、SINGLE-INSTRUMENT 方向性策略,作用于 SOLUSDT.BINANCE USD-M 永续合约,其信号 NOT 完全不源自价格——它是交易所的 TAKER BUY/SELL VOLUME 拆分(激进流),一种加密原生微观结构序列,作为补充数据(taker_ratio)收集,具有多年的 Binance 历史,可注入到 Layer-3 沙盒中。在每根 1 小时 K 线上,我们计算累计主动差分 = (taker_buy_vol - taker_sell_vol)/total_vol,将其作为回溯窗口的滚动 z 分数进行标准化,仅在该 z 分数极端 AND 仍在累积时,在主导激进流的 DIRECTION 方向建仓。这是订单流 MOMENTUM(谁在击打盘口的持续性),有意区别于元学习器标记的失败类:它 NOT OI 门控的(L71),NOT 资金费率门控的(L70),NOT 跨场所套利两腿(L69),NOT 截面轮动篮子(L68),NOT 纯 OHLCV 趋势/动量共振克隆(L9/L41/L62 — 价格序列仅用于出场止损,从不用于入场),且 NOT 期权/COIN-M 结构(L64/L65)。同时填补了三个代表性不足的组合桶:long_short(14.2% 对比 ≤55%),0.7%-生存之书中缺失的新颖微观结构机制,以及中/短周期。刻意仅 3 个拟合参数(z 回溯,entry_z,ATR-止损倍数)以抵御 338x 过拟合墓地。

迭代 3 以最小变更处理每个 QA 发现项,保留(已通过的)流构建、z 分数数学、导入和结构不变。(1) 反向收益/1 根 K 线持仓:衰竭出场在 z < entry_z*0.30 = +0.39 时触发,而噪声 6 小时均值流在下一根 K 线就穿越该值,了结盈利而亏损则跑到止损。它现在仅在流 FLIPS 到反向(z < -entry_z*0.25 适用于多头)且仅在 min_hold_bars=6 之后触发,以及在 1.5 ATR 浮盈后激活的吊灯跟踪止损(在 2.0 ATR 回撤时出场)取代立即 z 衰减出场限制了回撤——因此盈利被允许奔跑,回撤被限制,反转了 avg_win 96 / avg_loss 159 不对称。(2) 424x 换手率/费用拖累:entry_z 将 1.3 上调至 1.8,新增了 6 根 K 线的重新入场冷却期,并削减了每笔交易风险预算(risk_pct 0.01 -> 0.005,名义上限 0.60 -> 0.30)——这些综合起来应能将交易数量削减数倍,并将换手率降低大约一个数量级,这正是 -59.8% 费用驱动的回报所需要的。(3) "仍在累积"在噪声原始流跳动上测试:替换为 build_bars=3 根 K 线上的 z 分数斜率(与极端性测试使用相同的单位),因此入场确认持久的累积而非在流峰值附近重新触发。诚实警告:先前运行显示出真实为负的总毛(未扣换手)边缘,因此如果流动量持续性是真实的,它必须在此表现为更长时间、更大幅度的盈利——如果此迭代仍然返回负的 avg_trade_return_pct,则机制本身被证伪而非参数错误。

aggressor_flow_momentum_negative_expectancy:SOL 主动成交流动量在经过充分测量的 898 笔交易样本中净亏损——total_return -14.34%,profit_factor 0.90(<1.0),期望收益 -$15.87/笔交易,夏普比率 -0.295(CI [-0.967, 0.343]),avg_trade_return_pct 0.0549%(低于 0.15% 期货手续费底线),information_ratio -0.88。每个完整年份均为负值(2022 -8.1%、2023 -0.86%、2024 -4.66%、2025 -0.31%、2026 -2.87%),因此订单流持续性这一前提在任何市场环境下扣除成本后都无法成立。根据 L8/L9,总回报为负且 PF<1.0 属于淘汰条件;这已经是具有相同负期望收益核心的第 3 次迭代;3 个拟合参数无法将负期望收益变为正值,因此约 225 次试验的优化只会对噪声过拟合。微观结构机制新颖且构建干净,但已证实的负优势意味着策略前提被证伪,而非仅有调参空间。

实现

多空 SOLUSDT USD-M 永续合约,基于 1 小时 K 线,完全由交易所主动买入/卖出激进流驱动(补充 taker_ratio + 指标 taker_long_short_vol_ratio,合并为以小时 END 为键的单一小时差分序列以避免前瞻偏差)。信号为 6 小时滚动激进差分相对于其自身尾部 z_lookback 分布的 z 分数,每根 K 线连续返回。当 |z| >= entry_z AND z 分数在过去 build_bars 根 K 线内持续上升/下降时,顺着主导流的方向入场(多根 K 线的累积,而非 1 根 K 线的跳动)。出场:自入场的固定 2.5-ATR 止损,在 1.5 ATR 浮盈后激活的吊灯跟踪止损,72 根 K 线的时间止损,以及要求激进流实际 FLIP 反向(z 超过 -0.25*entry_z)且仅在最短持仓 6 根 K 线之后才触发的动能衰竭出场。仓位规模以 ATR 风险为基础,每次止损出局占权益的 0.5%,上限为权益名义的 30%;6 根 K 线的冷却期阻止对同一流峰值的立即重新入场。

验证结果

验证失败(Layer 4 — QA 审查): - 费用不可行/扣除费用后负向边缘。Layer-3 沙盒在样本充足的(930 笔交易,363 天)中决定性为负:total_return -59.8%,profit_factor 0.357(<1.0),avg_trade_return_pct -0.0404%(NEGATIVE,即使在量级上也低于 0.15% 期货可行性下限),Sharpe -0.28(CI [-2.09, 1.27] 跨越零),information_ratio -0.52,max_drawdown 60.6%。根据 QA 检查清单项 7 — 负的 avg_trade_return_pct 与 PF<1.0 是硬性费用可行性失败,必须被阻止而非推进到 2 小时优化运行。 - 高换手率与反向收益相矛盾,违背假设中"承受 SUSTAINED 单边压力"的论点。换手率为 424x,avg_holding_period 约为 1 小时 2 分钟(≈1 根 K 线),尽管 max_hold_bars=72。根本原因:动能衰竭出场在 exit_level = entry_z*exit_z_frac = 1.3*0.30 = 0.39 时触发,因此在 z>=1.3 入场的多头会在噪声 6 小时均值 z 衰减到 0.39 以下时立即出场(通常是下一根 K 线),而亏损单则跑到 2.5-ATR 止损。结果 avg_win 96 对比 avg_loss 159 — 盈利快速了结,亏损则放任:与让趋势奔跑相反。它在剥头皮式交易单根 K 线的 z 峰值,并为此支付 424x 权益的费用。 - "仍在累积"在原始流变化(flow - prev_flow > 0)上测试,而极端性在 z 分数上测试。在流峰值附近,flow_delta 会逐根 K 线翻转符号,因此入场会在噪声峰值附近聚集/重新触发,而非确认持久的累积——从而推高换手率。

在 BACKTEST_REVIEW 将策略提交分析师进行多年回测;如果完整历史中扣除期货手续费后的单笔优势仍低于 0.15%,则应以优势偏弱/手续费后不可行而放弃,而非继续迭代参数。

边际费用可行性。Layer-3 沙盒(206 笔交易 / 363 天,一个干净且样本量充足的样本)报告 avg_trade_return_pct = 0.146%,仅 BELOW 0.15% 期货的每笔交易下限,具有 profit_factor 0.969(<1.0),负的 total_return,以及 Sharpe -0.40(CI [-2.06, 1.21] 跨越零)。按参数化的订单流动量边缘并未明显超过约 0.10% 的往返期货成本。这不是代码缺陷——机制、入场、出场和仓位规模都正确执行——但实际实现的每笔交易边缘处于/低于可行性边界。开发者标记的配置文件论证中出现了相同的特征。

分析师在决定优化/迭代/放弃时,应权衡 total_return / profit_factor / USD 期望值高于 avg_trade_return_pct。

指标含义不明确(并非策略错误):报告显示 avg_trade_return_pct = +0.146%,同时 avg_trade_pnl_usd = -4.98 且 profit_factor < 1.0。此处 avg_trade_return_pct 与 USD 期望收益符号不一致;扣除手续费后的经济收益为负。

回测评审

夏普
-0.29
总收益率
-14.34%
最大回撤
22.30%
总交易数
898
胜率
46.9%
盈利因子
0.90

真正新颖的微观结构机制(主动激进流,非源于价格的入场)——填补了代表性不足的桶

测量良好的 898 笔交易样本以及干净、非克隆的实现(无 OHLCV/OI/资金费率/跨场所拐杖)

经过 3 轮迭代,换手率已降低;benchmark_correlation ~0(按敞口计算为市场中性)

净亏损:total_return -14.34%,PF 0.90(<1.0),期望收益 -$15.87/笔交易——根据 L8/L9 属于淘汰条件

夏普比率 -0.295,置信区间 CI [-0.967, 0.343];索提诺比率 -0.24;欧米伽比率 0.89 —— 不存在风险调整后优势

avg_trade_return_pct 0.0549% —— 远低于 0.15% 期货手续费底线(L22)

每个完整年份均为负值(2022 -8.1%、2024 -4.66%、2026 -2.87%)——这一前提在所有市场环境下均被证伪

information_ratio -0.88;相同的负期望收益核心已是第 3 次迭代

迭代历史

验证失败(Layer 2 — 合成场景): 使用的参数:['entry_z', 'risk_pct', 'atr_period', 'z_lookback', 'exit_z_frac', 'min_notional', '_param_bounds', 'atr_stop_mult', 'max_hold_bars', 'min_stop_frac', 'min_z_samples', 'flow_window_hours', 'max_notional_frac'] 请检查 __init__ 是否通过 self.parameters.get() 设置了所有属性。 - steady_uptrend: TypeError: SolTakerFlowMomentumLS._to_ns() takes 1 positional argument but 2 were given (bar timestamp: 1735690740000) - steady_downtrend: TypeError: SolTakerFlowMomentumLS._to_ns() takes 1 positional argument but……展开收起

验证失败(Layer 2 — 合成场景): 使用的参数:['entry_z', 'risk_pct', 'atr_period', 'z_lookback', 'exit_z_frac', 'min_notional', '_param_bounds', 'atr_stop_mult', 'max_hold_bars', 'min_stop_frac', 'min_z_samples', 'flow_window_hours', 'max_notional_frac'] 请检查 __init__ 是否通过 self.parameters.get() 设置了所有属性。 - steady_uptrend: TypeError: SolTakerFlowMomentumLS._to_ns() takes 1 positional argument but 2 were given (bar timestamp: 1735690740000) - steady_downtrend: TypeError: SolTakerFlowMomentumLS._to_ns() takes 1 positional argument but 2 were given (bar timestamp: 1735690740000) - flat_ranging: TypeError: SolTakerFlowMomentumLS._to_ns() takes 1 positional argument but 2 were given (bar timestamp: 1735690740000) - volatility_spike: TypeError: SolTakerFlowMomentumLS._to_ns() takes 1 positional argument but 2 were given (bar timestamp: 1735690740000) - zero_volume: TypeError: SolTakerFlowMomentumLS._to_ns() takes 1 positional argument but 2 were given (bar timestamp: 1735690740000) - price_gap: TypeError: SolTakerFlowMomentumLS._to_ns() takes 1 positional argument but 2 were given (bar timestamp: 1735690740000)

结局总结

如果期望收益为负,再新颖、构建再干净的微观结构信号也毫无价值——主动成交流持续性(主动成交差值)在任何市场环境下扣除成本后都未能成立;一旦充分测量的样本显示 PF 低于 1.0,更多迭代和参数也无法挽救它。

分析师在优化前回测审查关口给出了“放弃”的结论:在大样本和所有市场环境下,已证实的负优势(总回报为负且 PF 低于 1.0,按工厂规则属于淘汰条件)意味着策略前提被证伪,而非仅有调参空间,因此三个参数无法将负期望收益变为正值,优化只会对噪声过拟合。这已经是相同负期望收益核心的第三次迭代;策略从未进入优化、优化后分析师审查或风险审查。

在 SOLUSDT Binance USD-M 永续合约(1 小时 K 线)上的多空、单品种订单流动量策略,其入场信号并非源于价格,而是交易所的主动买入/卖出量差(激进流),在回溯期内进行 z 分数标准化,并在极端的、仍在累积的单边压力方向上进行交易,在流动反转、吊灯跟踪止损、ATR 止损或时间止损时出场,仅 3 个拟合参数。

在经过充分测量的 898 笔交易样本中(459 笔多头 / 439 笔空头,胜率 46.9%),策略净亏损:总回报 -14.34%,盈利因子 0.90,期望收益 -$15.87/笔交易,夏普比率 -0.295(95% CI [-0.967, 0.343]),索提诺比率 -0.24,信息比率 -0.88,以及 0.0549% 中的 avg_trade_return_pct —— 远低于 0.15% 期货手续费底线;从 2022 到 2026 的每个完整年份也均为负值。

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