策略
SOL 永续合约 未平仓量确认趋势(单一合约 USD-M,多空双向,2 小时,由 OI 上升作为信念门控,去杠杆时持平)
结局: 已放弃
SolOpenInterestConfirmedTrendLS
结局总结
SolOpenInterestConfirmedTrendLS 镜像了工厂所推广的 ETH 资金费率确认趋势的结构,但同时交换了信号(用未平仓量的上升取代资金费率)和资产(用 SOL 取代 ETH),仅在 OI 扩张时交易 SOL 趋势——核心理念为 OI 上升标志着由信念支撑的趋势延续。实现整洁且密集(708 笔交易、21% 敞口、OI 仅用作信号,无任何会计痕迹),但 OI 确认的前提根本不成立:Sharpe 比率 0.077、盈利因子 1.038、CAGR 为 +1.0%,置信区间穿越零——统计意义上的持平——多年聚合完全对冲。更糟的是,薄弱边缘将容量压垮至 $477k(对比 46% 影响),使其组合增益目的落空。分析师在第二次迭代的回测评审节点上将其放弃,结论是:即便整洁密集地触发,移植一个已推广机制并不等同于优势的证据,且 OI 在 SOL 上的确认并不构成优势——这与进入优化阶段的真正具备优势的 BTC 资金费率确认兄弟策略截然不同。
假设
一个针对 SOLUSDT.BINANCE USD-M 永续期货的做多 SHORT、SINGLE-INSTRUMENT、单场所方向性策略,使用 2-HOUR 根 K 线,当价格趋势被 RISING 未平仓量CONFIRMED时,便建立方向性仓位 ONLY。该机制镜像了已推广的 ETH 资金费率确认趋势(一种用于单一可记价价格腿方向性确认的加密原生信号)的结构,但刻意交换了 BOTH 信号(用未平仓量变化取代资金费率)AND 资产(用 SOL 取代 ETH),因此它是组合ADDITIVE的,而非现有 USD-M 资金费率/TSM 家族的重复。核心论点:伴随 RISING 总体未平仓量的价格变动反映了 NEW 资本入场并持有信念(真正的趋势延续),而 FALLING OI 上的价格变动反映的是仓位平仓/空头回补/多头清算(一种不可靠、往往耗尽的变动)。因此该策略在 OI 扩张时做多上升趋势、做空下降趋势 ONLY,而在 OI 收缩或价格趋势与 OI 不一致时保持持平。CRITICAL DESIGN NOTES 将本策略与已关闭家族区分开:(1) 它是SINGLE可记价的价格腿 —— 不存在 delta 中性对、不存在资金费率/基差 CARRY(此处资金费率绝不作为现金流入账);(2) OI 仅是 SIGNAL,正是元指导原则所说的加密原生数据可有效发挥的作用;(3) 它NOT跨场所、NOT 现货-永续基差、NOT COIN-M、NOT 逐笔驱动;(4) 趋势门控在每一段趋势延伸中CONTINUOUSLY触发(而非罕见的深度回撤事件),因此 walk-forward OOS 窗口密集填充 —— 与杀死每个回撤累积变体的 OOS-全零事件稀疏性特征相反。刻意极简:3 个可调参数(trend_lookback、oi_lookback、oi_rise_threshold)以抵抗过拟合。
上报的 Layer-2(合成)失败为'SolOpenInterestConfirmedTrendLS._to_ns() 需要 1 个位置参数,但传入了 2 个':_to_ns 被声明为 @staticmethod,但被以 self._to_ns(...) 的方式调用,验证代理将策略辅助方法重新绑定为实例方法并传入 self,因此 1-参数 的 staticmethod 收到了 2 个参数。主要修复方案是将 _to_ns 转换为实例方法(去掉 @staticmethod,加上 self);调用点已经使用 self._to_ns(...),因此对于 Layer 2 不需要做任何其他更改。我还预先处理了众所周知的下一个阻碍(Layer-3 OI 数据覆盖):独立的 supplementary_data['open_interest'] 数据源仅覆盖约 2 个月,这将导致所有交易都集中在 2026,并产生一个空的 walk-forward,但指标流将同一 open_interest/open_interest_value 字段存档回溯至约上市时间。_build_oi 现在合并来自 BOTH 'open_interest' 和 'metrics' 的行(按时间戳去重,使用现有的 OI 值键和基于量级的时间戳解析,在时间戳键中加入 'create_time'),并引用 'metrics',以便具备代码感知的补充加载器将其投递。两处更改均限于 OI 加载器和辅助方法;趋势/OI 变化信号、上升 OI 确认入场门控、趋势反转/OI 去杠杆/止损/最大持仓时间退出、连续趋势回报信号以及相对资金的仓位调整保持逐字节一致,因此通过的 Layer-1 检查和信号逻辑得以保留,且无价格回退的 fail-loud 设计也予以保留。杠杆保持 1.0(单一方向腿,无放大),因此未使用杠杆门控不适用。
基于 SOL 的未平仓量确认趋势基本不产生 NO 优势:Sharpe 比率 0.077,CAGR +1.0%,profit_factor 1.038,单笔期望收益 +$6.7 —— 统计意义上的持平,Sharpe CI 跨越 0(-1.23 到 +1.20)。该假设明确移植了已推广的 ETH FUNDING 确认趋势(Sharpe 2.74),同时交换了信号(用上升的 OI 取代资金费率)和资产(用 SOL 取代 ETH);结果显示,未平仓量的上升 NOT 像资金费率确认 ETH 趋势那样确认 SOL 价格趋势 —— 总体盈亏相抵(2023 +22% 被 2021 -7% 和 2022 -14% 所抵消,2024/2025 几近持平,2026 为负)。由于优势如此薄弱,该策略的容量极其微小(capacity_usd $477k,impact_cost_pct 45.78%):只能在玩具级规模部署,这使得其宣称的'组合增益'目的落空,并本身构成一个结构性推广阻碍。不优化(Not optimize):从 Sharpe-0.077 / PF-1.038 的基础出发,调优 3 参数(trend_lookback/oi_lookback/oi_rise_threshold)属于 N 选最佳噪声,无法通过 deflated-Sharpe 门控,即便成功优化也无法跨越 <$500k 容量壁垒。不迭代(Not iterate):账目清晰(敞口 21%,无超敞口缺陷)且触发密集(708 笔交易),因此不存在代码缺陷,也没有特定参数变化能将一个持平信号转变为稳健信号 —— 表现不佳的正是 OI 确认的前提本身。FAILURE PATTERN:当你将确认信号换为未平仓量变化 AND 将资产换为 SOL 时,资金费率确认趋势机制 NOT 泛化 —— OI 上升确认产生接近零 Sharpe 的持平结果,其薄弱边缘将容量压垮至玩具级(不足 $500k,约 46% 影响拖累)。在新信号/资产上整洁密集触发的已推广机制并不构成优势的证据;该 OI 在 SOL 上的迁移不具备任何优势,这使其区别于被送去优化的真正具备优势的 BTC 资金费率确认兄弟策略(PF 1.41)。
实现
做多/做空单一标的的 SOLUSDT.BINANCE USD-M 2 小时未平仓合约量确认趋势策略。当总未平仓合约量上升时(过去 12 根 K 线内变化达到 OI,即 >= 2%),若 ONLY 处于上升趋势则做多,处于下降趋势则做空;策略将 OI 上升解读为新增的信念资金。当 OI 收缩(去杠杆)时则保持空仓。趋势反转、OI 停止扩张、触发 5% 止损或达到 36 根 K 线的最长持仓时间时退出。未平仓合约量仅作为方向性信号,不记作现金流。第 2 次迭代修复了 Layer-2 静态方法的 TypeError(_to_ns 被改成了实例方法),并从 BOTH 的 open_interest 流和指标补充流读取 OI(合并并去重),使回测涵盖完整的 SOL 历史,而非独立 OI 数据源约 2 个月的时间范围。三个可调参数:trend_lookback、oi_lookback、oi_rise_threshold。
验证结果
验证失败(Layer 2——合成场景): 使用的参数:['oi_lookback', 'min_notional', 'position_pct', 'stop_loss_pct', 'trend_lookback', 'max_holding_bars', 'oi_rise_threshold'] 检查 __init__ 是否通过 self.parameters.get() 设置了所有属性。 - steady_uptrend:TypeError:SolOpenInterestConfirmedTrendLS._to_ns() 接收 1 个位置参数,但实际给出了 2 个(柱线时间戳:1735690380000) - steady_downtrend:TypeError:SolOpenInterestConfirmedTrendLS._to_ns() 接收 1 个位置参数,但实际给出了 2 个(柱线时间戳:1735690380000) - flat_ranging:TypeError:SolOpenInterestConfirmedTrendLS._to_ns() 接收 1 个位置参数,但实际给出了 2 个(柱线时间戳:1735690380000) - volatility_spike:TypeError:SolOpenInterestConfirmedTrendLS._to_ns() 接收 1 个位置参数,但实际给出了 2 个(柱线时间戳:1735690380000) - zero_volume:TypeError:SolOpenInterestConfirmedTrendLS._to_ns() 接收 1 个位置参数,但实际给出了 2 个(柱线时间戳:1735690380000) - price_gap:TypeError:SolOpenInterestConfirmedTrendLS._to_ns() 接收 1 个位置参数,但实际给出了 2 个(柱线时间戳:1735690380000)
回测评审
- 夏普
- 0.08
- 总收益率
- 7.11%
- 最大回撤
- 20.72%
- 总交易数
- 708
- 胜率
- 34.0%
- 盈利因子
- 1.04
单一标的机制简洁:敞口 21%、avg_position 15.5%,没有超额敞口/会计处理伪影;OI 仅作信号使用(从未被错误计入收益)
触发密集(约 4.5 年内 708 笔交易),因此结果接近于零在统计上有意义,并非信号稀疏造成的噪声
最大回撤适中,为 20.7% —— 风险可控(因为该策略几乎不承受风险/边缘)
优势接近于零:夏普比率 0.077,CAGR +1.0%,profit_factor 1.038,期望收益 +$6.7/笔交易——统计意义上的盈亏平衡;夏普比率 CI 的区间跨越 0(从 -1.23 到 +1.20)
容量极小:capacity_usd $477k,impact_cost_pct 45.78%——仅能以玩具规模部署,无法实现“增加组合收益”的目的
OI 确认迁移失败:该策略仿照已晋级的 ETH 资金费率确认趋势(夏普比率 2.74),但上升的 OI 无法确认 SOL 趋势——总体效果互相抵消(2023 +22% 被 2021 -7% / 2022 -14% 抵消,2024/2025 基本持平,2026 为负)
优势微乎其微,因此基于当前基础进行优化,至多只是最佳 N 次尝试带来的噪声,不太可能经受住去膨胀夏普比率检验
>0 有实际意义
可部署规模(>约 $10M)
结局总结
当你将确认信号换为未平仓量变化 AND 将资产换为 SOL 时,资金费率确认趋势机制 NOT 泛化 —— 在新信号/资产上整洁密集触发的已推广机制并不构成优势的证据;OI 上升确认产生接近零 Sharpe 的持平结果,其薄弱性将可部署容量压垮至玩具级,使其区别于被送去优化的真正具备优势的 BTC 资金费率确认兄弟策略。
在第二次也是最后一次迭代中,分析师在优化前的回测评审节点给出了'放弃'(abandon)裁决,因此优化、分析和风险审查均未运行:未平仓量的上升 NOT 像资金费率确认 ETH 趋势那样确认 SOL 价格趋势,留下的信号在统计上持平,其薄弱边缘将容量压垮至玩具级(不足 $500k,约 46% 影响)——这本身就是一个结构性推广阻碍——参数调优无任何东西可以挖掘。
一种针对 SOLUSDT.BINANCE USD-M 2H 永续合约的多空单一标的方向性策略:当价格趋势得到 RISING 总体未平仓量确认(代表有信念的新资本)时,建立趋势头寸(上涨趋势做多、下跌趋势做空)ONLY;当 OI 收缩(去杠杆/动能耗尽)时空仓;OI 仅作为信号使用——这是对已晋级的 ETH 资金费率确认趋势策略的刻意移植,同时替换确认信号(用 OI 变化替代资金费率)和资产(用 SOL 替代 ETH),以增加组合收益。
在密集的 708 笔交易、约 4.5 年的样本中,OI 确认的迁移基本未产生优势:Sharpe 比率 0.077,CI 跨越零(-1.23 到 +1.20),CAGR +1.0%,盈利因子 1.038,单笔期望收益 +$6.7(统计意义上的持平),适度的 20.7% 最大回撤,但容量极其微小,仅 $477k(impact_cost_pct 45.78%)—— 总体而言盈亏相抵(2023 +22% 被 2021 -7%/2022 -14% 所抵消,2024-2025 几近持平,2026 为负)。
Stratmill 是研究与模拟交易工具,不提供财务建议,也不是经纪商。回测与模拟结果均为假设性结果。交易存在亏损风险。