策略
流动性主流标的上的双时间框架共振净方向绝对动量篮子(多空,Binance USD-M,每腿 60d+120d 趋势一致,意见不一致时空仓,每周再平衡,全部平仓后重新开仓,纯 OHLCV)
结局: 已放弃
DualTimeframeConfluenceNetDirectionalMomentumBasketLS
结局总结
该策略通过要求 10 个主流标的中的每一个,其 60 天和 120 天趋势在确定方向前保持一致,扩展了一个获推广的绝对动量 LS 篮子;意见不一致时让腿保持空仓,以在震荡转换期间降低风险。初始回测显示出真实但温和的优势(Sharpe 0.40、盈利因子 1.21、+274%),但受到49%回撤和严重异常值依赖的影响,因此分析师批准其进入优化。优化准确实现了预期的风险改善——回撤减半至 24.8%,Sortino 翻倍至 1.71,盈利因子升至 1.46——一致性门控也通过了(未过拟合的滚动前向测试、留出比率 1.339、零敏感性断崖、PBO 0.42)。但优化后的 Sharpe 0.68 未通过折减 Sharpe(DSR 0.0,在 225 次试验中低于 1.93 幸运门槛,CI 穿过零点),因此在第一次迭代中就作为变体选择性被放弃:共振过滤器牺牲了使其获推广的兄弟篮子具有显著性的那种方向性 Sharpe。
假设
采用已验证的集中化净方向性篮子架构(即刚刚通过的绝对动量 LS 篮子 / LongHorizonTrend 模式)来实现该假设,其独特的、无法被优化器触及的机制在于每条腿 DUAL-TIMEFRAME TREND CONFLUENCE:当某条腿的快线(60d)和慢线(120d)回溯收益均为正时才做多,均为负时才做空,两个时间框架不一致时则保持持平。这将一个双时间框架的反复止损过滤机制嵌入每条腿,直接针对常持仓绝对篮子已被记录在案的弱点(制度切换期间的错误翻转);由于腿在 FIXED 标的池分母(per_leg = 总风险/N)下等权重配置,持平腿在横截面出现冲突时结构性降低总风险和净敞口,因此整个组合在震荡制度下自动去杠杆化。组合保持净方向性(方向一致腿的有符号求和),即分析师所认可的对制度稳健性的方向性倾斜。敞口严格按要求约束:每次再平衡重新计算新的有符号目标仓位,并通过 SINGLE 净额对冲 delta 单将每条腿调至目标仓位(与完全平仓后重开相同的最终受约束状态,且避免了先平后开的冗余摩擦),随后通过总风险上限按比例缩放所有腿,使总风险永远不超过权益的 max_gross(100%),从而防止持仓赢家出现 265% 膨胀。所有订单管理集中于 calculate_signal,仅在跨腿对齐屏障确认每个同一日内时间框架的腿在主时间戳上都有 K 线(即同时存在的快/慢趋势)后由基础层触发;should_enter/should_exit/position_size 不参与触发。min_bars_required = slow_lookback+2 和 K 线计数器作为首次再平衡的门控;返回的 tanh 对数收益代理是连续的逐 K 线信号,使 Layer-2 的冻结信号检测通过,同时交易仍按时间表门控触发。所有 10 成分均为 2020 上市、流动性强的、主要合约且具备完整日线历史记录(某条腿若出现价格>=0 或历史数据不足的情况,则在该次再平衡中被跳过),因此没有任何腿面临 data_unavailable 的风险;三个边缘可调参数将优化空间控制在最小。杠杆率保持 1.0,仅作为非放大性乘数被引用,因此未使用杠杆门控不适用。纯 OHLCV(价格驱动的趋势)规避了补充数据、行情快照、期权和资金费率等层面的限制。如果本会话中其他地方标记的多合约日收益聚合瑕疵再次出现,则该策略自身的敞口通过总风险上限和单一 delta 单被正确控制在 <=100%,因此那属于应上报的核算端缺陷,而非策略层面的仓位计算错误。
optimization_error:RuntimeError:永续合约腿“ETHUSDT.BINANCE”的资金费率数据不可用——按需收集失败,或该交易场所没有资金费率历史(为保证准确性,回测被阻止;设置 SF_DISABLE_ONDEMAND_FUNDING=1 可绕过) 回溯(最近一次调用在最后): 文件 "/opt/strategy-factory/src/agents/backtest_agent.py",第 311 行,在 _run_optimization 中 await self._ensure_funding_for_perp_legs(instrument_id, extra_instrs) 文件 "/opt/strategy-factory/src/agents/backtest_agent.py",第 424 行,在 _ensure_funding_for_perp_legs 中 raise RuntimeError( RuntimeError:永续合约腿“ETHUSDT.BINANCE”的资金费率数据不可用——按需收集失败,或该交易场所没有资金费率历史(为保证准确性,回测被阻止;设置 SF_DISABLE_ONDEMAND_FUNDING=1 可绕过)
实现
横跨 10 个具备完整历史记录的 Binance USD-M 主要合约(BTC、ETH、SOL、BNB、XRP、ADA、DOGE、AVAX、LINK、LTC)的多空净方向性绝对动量篮子,采用日线趋势、周度再平衡。每条腿仅在其 60 天和 120 天回溯收益趋势AGREE(两者均上行则做多,均下行则做空)时确立方向,并在两者不一致时保持持平——这是一种逐腿双时间框架的反复止损过滤器,使冲突腿退出,且组合在制度切换期间自动去杠杆化。各腿在固定标的池规模下等权重配置(per_leg = 总风险/N),因此持平腿会缩小总风险和净敞口。每次再平衡时,通过单一净额对冲 delta 单将每条腿调至新的有符号目标仓位,并通过总风险上限确保总风险永远不超过权益的 100%(即受约束的完全平仓后重开的最终状态)。纯 OHLCV,杠杆率为 1.0。三个可调参数:fast_lookback、slow_lookback、rebalance_period。
回测评审
- 夏普
- 0.40
- 总收益率
- 273.88%
- 最大回撤
- 49.09%
- 总交易数
- 436
- 胜率
- 37.6%
- 盈利因子
- 1.21
真实优势:profit_factor 1.211(>1.2),在 4 年中的 6 年为正(2021 +129%、2024 +21%、2025 +17%、2026 +73%),alpha +0.16,Sortino 0.86
对一个PASSED赢家的有原则改进:在通过优化和风险审查的绝对动量 LS 篮子(Sharpe 1.36)基础上,加入逐腿双期限震荡过滤器
每条腿仓位合理(avg_position_pct 16.3%,无单腿支配),未发生爆仓,承载深度高($203M),费用拖累低(1.34%)
exposure_pct 752% 是累计指标,不是实时杠杆(与 avg_position 16.3% 同时作为总敞口不兼容);真实组合约为 90-160%,接近预期的 max_gross 上限
Sharpe 0.40 较为温和,CI 跨越 0(sharpe_ci_low -0.396)——必须通过折减 Sharpe 证明稳健性
依赖离群值:return_kurtosis 277,偏度 13.1——少数几个大日子(+50% 出现于 2024-04-30,+49.8% 出现于 2021-06-15)主导了整体业绩标题数据
有一个糟糕的年份(2023 -46.4%),max_drawdown 49.1%
benchmark_meaningful 为假(净方向性篮子)——应基于绝对风险调整后指标进行评判,而非买入持有超额收益
可部署
4 个,共 6 个
多数
没有单腿主导
分析
未过拟合的滚动前向测试(is_overfitted=false,平均 IS 1.17 -> 平均 OOS 0.70)和通过的留出测试(比率 1.339,holdout_sharpe 0.94)
干净的敏感性表面:所有 7 个参数均无 0 断崖;PBO 0.4246(<0.5)
优化改善了深度指标:max_drawdown 49.1% -> 24.8%,profit_factor 1.21 -> 1.46,索提诺 0.86 -> 1.71,recovery_factor 6.4——逐腿双时间框架的反复止损过滤器确实按设计降低了回撤
FAILS 折减 Sharpe:DSR=0.0(相对于 0.95),is_significant=false;优化后的 Sharpe 0.682 远BELOW于 225 次试验中的最佳 N 预期最大值幸运门槛 1.9337
sharpe_ci_low=-0.0333 —— 95% CI 跨越了 0,因此该Sharpe无法与无技能区分开来
PSR=0.9938 / DSR=0.0 分裂是最佳-225选择膨胀的诊断标志,而非真实优势
由异常值承载:return_kurtosis 242,偏度 12.5,tail_ratio 0.56;一个滚动前向 OOS 窗口为负(-0.34)
end_unrealized_pct=60.3——+266% 整体业绩标题的很大一部分为未平仓的开放按市值计价,而非已实现盈亏
原始夏普 0.68 甚至在去通胀之前就低于任何合理的晋升门槛
结局总结
在已验证的净方向性篮子上叠加一个抑制假突破的共振过滤器确实降低了回撤,但也削弱了方向性敞口,以至于所得到的约0.68 Sharpe无法通过best-of-N去膨胀检验——通过holdout、非过拟合的walk-forward以及零敏感性悬崖只能衡量一致性,而非显著性。
策略分析师在优化后阶段基于去通胀夏普指标放弃了该方案:DSR 为 0.0(相对于 0.95 的门槛),且优化后的夏普值为 0.68,远低于 225 次试验中预期最大最佳 N 次运气的门槛 1.93;同时 is_significant=false 且 sharpe_ci_low -0.0333 横跨零值——PSR 0.9938 / DSR 0.0 的分布正是选择性膨胀而非真实优势的典型签名。
一个覆盖 10 个流动性 Binance USD-M 主流标的的多空、净方向绝对动量篮子,仅当每条腿的 60 天和 120 天趋势一致时才选择方向(两者向上则做多,两者向下则做空,意见不一致则空仓),在已经验证的动量篮子结构上加入逐腿双时间框架共振过滤器,以抑制状态转换期间的震荡。
约 1,978 天的初始日 K 线回测产生了 436 笔交易,夏普值为 0.40(CI 低位为 -0.396),盈利因子为 1.21,总回报约 274%,但最大回撤高达 49.1%,且收益由离群值驱动(峰度 277,偏度 13.1)。优化改善了深度指标——最大回撤降至 24.8%,盈利因子升至 1.46,索提诺比率升至 1.71,且具备未过拟合的前向验证(平均 OOS 夏普为 0.70)和通过样本外测试(比率 1.339,样本外夏普 0.94),但优化后夏普仅为 0.68。
放弃原因
optimization_error:RuntimeError:永续合约腿“ETHUSDT.BINANCE”的资金费率数据不可用——按需收集失败,或该交易场所没有资金费率历史(为保证准确性,回测被阻止;设置 SF_DISABLE_ONDEMAND_FUNDING=1 可绕过) 回溯(最近一次调用在最后): 文件 "/opt/strategy-factory/src/agents/backtest_agent.py",第 311 行,在 _run_optimization 中 await self._ensure_funding_for_perp_legs(instrument_id, extra_instrs) 文件 "/opt/strategy-factory/src/agents/backtest_agent.py",第 424 行,在 _ensure_funding_for_perp_legs 中 raise RuntimeError( RuntimeError:永续合约腿“ETHUSDT.BINANCE”的资金费率数据不可用——按需收集失败,或该交易场所没有资金费率历史(为保证准确性,回测被阻止;设置 SF_DISABLE_ONDEMAND_FUNDING=1 可绕过)
Stratmill 是研究与模拟交易工具,不提供财务建议,也不是经纪商。回测与模拟结果均为假设性结果。交易存在亏损风险。