策略
BTCUSDT.BINANCE Perp 4H 未平仓合约量激增仅做多趋势策略(头寸催化剂 + 价格方向门槛 + 趋势过滤器,4参数)
结局: 已放弃
BtcOpenInterestSurgeTrendLong4H
结局总结
BtcOpenInterestSurgeTrendLong4H 是工厂首次尝试使用未平仓合约头寸流——区别于价格、执行流或波动率——作为BTC上的主要做多信号;该策略以价格上涨和趋势过滤器为门槛来确认OI激增,并在缺少OI数据时如实保持空仓,而不退化为价格代理信号。它通过了验证流程,产生256笔交易;但第-2次迭代修复(合并OI-历史API与 Binance Vision metrics)仍留下2023-2025断档,因此交易只集中在2020-2022和2026,无法进行滚动前推验证。即使在有数据的区间内,该信号也没有优势,且对手续费脆弱(PF 0.95,夏普比率-0.39,手续费占比8.23%)。作为本时段第三个辅助数据覆盖死局,分析师在回测审查关卡放弃了该策略,并建议为历史未平仓合约量覆盖范围提交数据收集工单,之后再重新考虑该机制。
假设
在BTCUSDT.BINANCE永续合约上使用4H K线的单资产仅做多趋势策略。方向触发器来自12-HOUR OPEN INTEREST SURGE,并结合价格方向门限和趋势门限。持仓量数据(来源于supplementary_data → open_interest,列于工厂可用补充数据源中)衡量每个快照时所有当前未平仓BTC永续仓位的美元价值;OI的急剧INCREASE预示AGGREGATE POSITIONING IS SCALING UP——有新鲜资金入场押注——这在机制上是比以下信号DIFFERENT的信息渠道:(a)价格衍生信号(在本轮的轮动/动量/MR/突破放弃中已大量失败),(b)波动率衍生信号(失败的BB Squeeze + Vol-Contraction-Expansion),(c)执行层面信号(taker流量不平衡——我待提交的策略,使用trade_ticks)。OI是POSITION FLOW(押注正在建立),不同于执行流(哪一方在支付价差)和价格(两者的结果)。这是我见过的第FIRST个将OI delta作为主要信号进行测试的工厂假设——该补充数据类型已列出但显然尚未测试。方向门限(最近收盘价 > 3根K线前的收盘价)至关重要:OI可能因EITHER多头涌入而上升,也可能因OR空头涌入而上升;将OI飙升与同期价格上涨结合,可确认为多头头寸,而非空头头寸。趋势过滤器(50根SMA,位于4H ≈ 8天)确保策略处于趋势行情而非震荡。仅有4个参数(远低于5参数过拟合上限)。交易频率估计:在BTC上,伴随价格上涨 + 趋势向上确认的12小时OI飙升 > 3%每年发生30-60×次——在6年以上的Binance永续数据上→共180-360笔交易→每个前向滚动窗口12-24 OOS笔交易,远高于分析师经验验证的5笔交易下限。关键基础设施测试:如果open_interest数据能正确加载到工厂管线中,将为未来研究打开一整个NEW数据类别。如果加载失败(类似于据分析师称阻塞了9策略的HL资金费率缺口),该失败本身具有信息价值,并会触发一个基础设施工单。
回测已到达第 3 层;信号/门槛/退出/仓位规模逻辑已通过前几层,因此这是修复所报告数据覆盖回归的最小改动。根因(已由引擎确认):辅助数据源由 data_sufficiency.py 在SELECTIVELY注入,该脚本会检测策略源代码中的字面量supplementary_data键;前一版本只引用了"open_interest",其采集类型为open_interest_hist(Binance 的OI-历史API,只覆盖近期区间 -> 观察到的约2个月内14笔交易)。拥有104笔交易的2020-2025同类策略从"metrics"数据源(Binance Vision 指标)获取了OI,该数据源包含多年期 sumOpenInterestValue。修复方式:_load_oi 现在通过共享的 _parse_oi_rows 辅助函数,解析并合并来自BOTH supp['open_interest']和 supp['metrics']的OI;代码中的字面字符串"metrics"使检测器注入该完整历史数据源。解析范围仅限于DOLLAR未平仓合约量价值字段(open_interest_value / sumOpenInterestValue / sum_open_interest_value),确保合并后的序列单位一致,且激增比率不会在数据源边界处跳变;时间戳处理新增create_time(Binance metrics 毫秒),并采用 int(float(ts)) 配合现有的基于数量级的 _norm_ns,使毫秒/微秒/纳秒/秒单位均能正确归一化;数据行按时间戳合并、排序并去重(保留最后一条)。策略其他所有部分——OI-delta 信号、激增/价格上涨/趋势门槛、无数据时保持空仓(不回退到仅价格信号)、退出规则和相对于资金的仓位规模——与前一迭代逐字节一致,因此第 1-2 层仍应通过,第 3 层现在应产生假设预估的180-360笔多年期交易。根据决策规则,回测显示跨多年、多种市场状态的交易后,优化时仅扫描4核心参数(oi_surge_threshold、oi_lookback_bars、sma_period、take_profit_pct),并收紧边界;基础设施参数保持固定。杠杆保持为1.0,仅作为非乘数被引用,因此不适用未使用杠杆检查。
不要优化——OI-激增机制无法验证(多年数据缺口),且在有数据的区间看不到优势。尽管已处理约6年的 K 线,256笔交易却只集中在2020-09至2022-08和2026,而2023/2024/2025期间只有NO笔交易(annual_returns跳变2022 -> 2026),因为合并后的open_interest+metrics OI数据源存在2023-2025断档。这是开发者已经尝试过的第-2次迭代修复(将仅覆盖近期历史的OI-历史API数据源与 Binance Vision 的 metrics sumOpenInterestValue 合并,以覆盖完整历史),但缺口仍然存在——这表明多年期OI数据确实不在目录中(或仍无法读取),并非简单调整加载器即可解决;这与本时段 taker-flow `metrics`和`liquidations`策略遇到的是同一种基础设施死局。采用3窗口的滚动前推测试时,有一个完整窗口将没有数据,因此无法验证优势。除此之外,即使在覆盖区间内,该信号也没有优势:profit_factor 0.95,夏普比率-0.39(sharpe_ci_low -2.06),期望收益 -$22.8/笔交易,total_return +1.1%(持平);同时commission_pct_of_gross 8.23%(对手续费脆弱),且覆盖年份收益为负(2022 -11.8%,2026 -5.9%)。任何优化都无法凭空生成多年期OI数据源,也无法让一个盈亏平衡、被手续费吞噬的信号盈利。建议提交历史未平仓合约量覆盖范围的数据收集/基础设施工单(这是阻碍 taker-flow 和强平假设的同类缺口);在存在连续多年期OI数据源之前,AND信号在区间内显示出扣除手续费后为正的优势,应放弃该策略,而不是再次优化或迭代。
实现
仅做多的持仓量激增趋势延续策略,应用于 BTCUSDT.BINANCE 永续合约,4 小时K线。连续信号为 12 小时(3 根K线)的持仓量变化;当 OI 在 12 小时内激增 >= 3%,且 AND 价格在同一窗口内上涨(确认多头方向的仓位布局),并且 AND 收盘价 > 50 根K线 SMA(上升趋势状态)时做多。达到 3% 止盈、2% 止损或 24 小时超时止损时退出。第 2 次迭代修复了 OI 历史覆盖范围回归问题:现在将 OI 序列与来自 BOTH 的 open_interest(OI 历史 API,仅近期数据)及指标数据(Binance Vision,多年期 sumOpenInterestValue)补充数据源合并;仅解析美元计价字段,并按时间戳合并,因此策略现在可以使用完整的 2020-2026 OI 历史数据,而不是约 2 个月的数据片段。纯 OHLCV + OI,无仅基于价格的备用方案,杠杆 1.0,四个核心参数。
回测评审
- 夏普
- -0.39
- 总收益率
- 1.11%
- 最大回撤
- 20.54%
- 总交易数
- 256
- 胜率
- 45.3%
- 盈利因子
- 0.95
真正新颖的信号通道(OI头寸流)——若能加载,将开辟一个新的数据类别;诚实的不回退设计(缺少OI数据时保持空仓)
有数据的区间内执行正常(256笔交易,没有仓位规模错误)
OI数据只覆盖2020-2022 + 2026——尽管第-2次open_interest+metrics 合并后,多年期2023-2025断档仍然存在;无法进行滚动前推验证
即使在有数据的区间内也没有优势:profit_factor 0.95,夏普比率-0.39(sharpe_ci_low -2.06),期望收益 -$22.8/笔交易,total_return +1.1%(持平)
对手续费脆弱:commission_pct_of_gross 8.23%;覆盖年份的年回报为负(2022 -11.8%,2026 -5.9%)
本时段第三次辅助数据覆盖失败(主动买卖流指标、强平数据,现在是OI)——这些 Binance Vision 数据源的多年期目录覆盖不完整
分析
请NOT优化——此版本仅能看到约2个月的持仓量数据(14笔交易,全部为2026-03-26至2026-05-15),覆盖6.5年范围,因此没有任何可优化的基础。CRITICAL CONTEXT:同一假设的姊妹实现在使用OI数据时,在2020-2025范围内实现了104笔交易(多机制,夏普比率2.43),因此多年持仓量数据IS可用且可加载——此处14笔交易的窗口是数据加载回归问题,NOT结构性OI历史上限。ACTION:(1)调试 _load_oi():确认注入的supplementary_data['open_interest']中的字段名和时间戳单位与解析器预期一致(open_interest_value / sumOpenInterestValue / open_interest / sumOpenInterest;timestamp_ms / timestamp / ts),并确认注入到本次回测的是FULL多年OI历史,而非最近约2个月的切片。(2)重新运行初始回测,并验证其现在能在2020-2026范围内产生数百笔交易(该假设自身的180-360估计),如同104笔交易的姊妹版本。DECISION RULE:一旦回测能产生多年、多机制的交易,则继续进行优化(扫描ONLY个4核心参数:oi_surge_threshold、oi_lookback_bars、sma_period、take_profit_pct,收紧钳制范围使优化器无法逃离已验证区域——并硬编码基础设施参数,使Optuna搜索保持在4维);如果该版本的OI数据确实无法加载超过约2个月,则在任何优化之前先修复注入/解析问题。NOTE:本讨论文件夹中已存在单独的iteration_1_feedback.md,来自对104笔交易版本的优化后分析(参数匮乏修复)——保持原样,未被覆盖。
结局总结
只有当数据目录连续覆盖多年时,真正新颖的信号通道才可检验——未平仓合约量和本时段的主动买卖流及强平数据源一样,Binance Vision 历史数据并不完整;诚实的不回退设计会正确地保持空仓,但无法得到验证;必须先具备数据基础设施,才能评判这一机制。
分析师在优化前的回测审查关卡基于两个原因放弃了该策略:多年期OI数据缺口(第-2次open_interest+metrics 合并未能弥补)导致滚动前推验证无法进行,因为一个窗口将完全没有数据;此外,即使在有数据的区间内,该信号扣除手续费后也没有优势——优化无法解决这两者中的任何一个。
仅做多、单一资产的BTCUSDT 4H趋势策略,以未平仓合约量作为主要信号——当12小时内OI激增超过3%(表明有新的头寸资金押注)且同期价格上涨门槛成立(确认是多头而非空头方向的建仓),并通过50根 K 线的SMA趋势过滤器时入场做多;退出方式包括止盈、止损、时间止损,参数为4;这是工厂中首个将OI delta 作为主要信号进行测试的假设。
在存在OI数据的区间内,策略执行正常(256笔多头交易,没有仓位规模错误),但没有显示出优势:总回报持平,为+1.1%(CAGR -1.05%),盈利因子0.95,夏普比率-0.39(低至-2.06的CI),每笔交易期望收益 -$22.8,手续费占毛收益的8.23%。关键问题是,尽管 K 线覆盖约6年,交易却只集中在2020-2022和2026,因为合并后的OI数据源存在2023-2025断档。
Stratmill 是研究与模拟交易工具,不提供财务建议,也不是经纪商。回测与模拟结果均为假设性结果。交易存在亏损风险。