策略
散户拥挤逆势反转,多空策略(3 资产散户高占比 USD-M 篮子 DOGE/XRP/SOL,4 小时K线 + GLOBAL 多空 ACCOUNT 比率数据源,在统计极端仓位处反向 ONLY——当散户净多头达到最大时做空/当散户净空头达到最大时做多,回归均值离场,3 参数)
结局: 已放弃
RetailCrowdingContrarianReversalLS
结局总结
RetailCrowdingContrarianReversalLS 试图在一个 DOGE/XRP/SOL 篮子上反向操作散户大众,在全局多空账户比率的极端处进行逆势操作,采用刻意设计的 3 参数、市场中性方案。该策略在 1,695 笔交易中实现了引人注目的 +1814% 收益,且每个完整年份均为正收益,但其夏普比率仅为 0.285,置信区间横跨零值,且该收益是肥尾造成的假象,主要由大约六个极端暴跌日驱动(尤其是 FTX 崩盘期间的 +80.8%),而非一个持续稳定的优势。更严重的是,回测的补充数据流水线仅为主要标的提供了账户比率数据,因此 XRP 和 SOL 实际上是基于 DOGE 的 z 分数进行交易的,核心的分散化前提从未真正实现——这是开发者无法解决的引擎限制问题。分析师在回测审查阶段以风险质量/优势显著性不足为由放弃了该策略,该策略从未进入优化、风险审查或模拟交易阶段。
假设
一个 LONG-SHORT、多标的的逆势策略,覆盖三个散户参与度高的币安 USD-M 永续合约(DOGEUSDT、XRPUSDT、SOLUSDT),基于 4 小时K线,驱动信号为 GLOBAL 多空 ACCOUNT 比率(币安数据中心指标 CSV 中基于计数的散户仓位代理指标——count_long_short_ratio——具有 MULTI-YEAR 历史数据,不同于仅覆盖 API 的大户数据源,后者曾导致此前的“知情仓位”篮子策略在 2021 后陷入沉寂)。该优势是行为性和结构性的,而非价格预测:散户账户群体在极端处系统性地判断错误——当绝大多数散户账户对某个标的净多头时,边际买家已耗尽,未来收益疲弱;当散户净空头达到最大时,下行动能已耗尽,随之而来的是反弹。关键在于,这是对散户情绪的 CONTRARIAN 读取(反向操作大众),NOT 之前已失效的、跟随知情/大户账户趋势的读取方式。刻意采用 3 参数(z_lookback、entry_z、atr_stop_mult)以抵御过拟合导致的失效,且一个 3 标的篮子可稀释单一标的的曲线拟合,并提升交易次数以增强统计可靠性。
第 4 轮迭代修复了第 -4 层 QA 失败问题(标的集合不匹配 + 单一标的可测量性不足),将该策略改造为假设所要求的真正 3 资产篮子:extra_instruments 现在包含 XRPUSDT.BINANCE 和 SOLUSDT.BINANCE,on_extra_bar 已被重写,且额外的两条腿都真正进行交易,具备完整的持仓/离场/仓位规模处理逻辑。这恢复了假设所指明的核心抗过拟合/样本量机制所需的分散化和约 3x 的交易次数(约 300 笔交易,相较之前的 100 笔),解决了 QA 中指出的、夏普比率 CI 在单一标的上横跨零值的问题。数据限制得到了如实处理:我通过核查 src/backtesting/supp_collector.py 并运行 load_for_subprocess 确认,回测流水线仅为主要标的加载了 L/S 账户比率 ONLY(额外标的仅获得资金费率数据),因此严格的逐腿比率篮子会导致 XRP/SOL 无数据可交易(一个虚假的篮子)。因此,该篮子改为共享主要标的 DOGE 的全局账户比率——DOGE 作为三者中散户占比最高的标的,可作为广泛的散户情绪温度计——这仍在 SAME 的多空账户比率逆势机制范围内(NOT 而非改用纯价格代理指标),而每条腿的执行(按共享 z 值确定入场时机,但止损、离场、单腿价格及仓位规模各自独立 ATR)则完全分开处理。z 分数、入场、离场及仓位规模计算逻辑与已通过 DOGE 第 3 层验证的逻辑逐字节一致(100 笔交易,已重构为共享辅助函数 _zscore_for_bars/_atr_of/_size_for),因此 DOGE 的行为得以保留,额外标的的行为完全一致。第 -2 层安全性:额外标的的订单通过基础 _submit_entry_instrument 路由,当模拟缓存未返回标的时会提前返回,因此新增的 on_extra_bar 路径不会导致合成代理崩溃——已在本地验证第 1 层(静态)及全部六个第 2 层场景均通过。导入未变更(未新增被禁止的导入);比率解析器仍保持为局部闭包,以规避代理静态绑定的陷阱。杠杆已在 _size_for 中被引用(max_size = 权益*杠杆/价格),因此不存在设置但未使用的情况。
风险调整后收益优势不显著,且存在依赖崩盘日的肥尾风险。夏普比率仅为0.285,其95% CI为[-0.326, 0.916],横跨零值,因此该优势无法与噪声区分,三个参数的优化也无法将其提升至可推广的~1.5水平。+1814%的总回报是一个肥尾伪影(峰度15.5,偏度1.18),由约6个极端单日贡献——+80.8%发生在2022-11-01 FTX崩盘期间,+40.3%、+37.5%、+32.9%、+30.2%、+30.0%——也就是说这是几次幸运的逆势崩盘做空,而非平滑的散户逆向优势。更关键的是,代码说明承认回测辅助数据管道只能为主腿提供多空账户比率,因此XRP和SOL交易的是DOGE的群体z分数,而非它们自身的数据;因此该假设的核心分散化前提(三个独立的散户持仓信号)并未实现——实际上是一个信号应用于三个相关性较高的主流币种,这就是方差巨大、夏普比率崩溃的原因。这一缺陷是引擎数据交付方面的限制,开发者无法修复,因此迭代无济于事。此外还叠加了max_drawdown 40.4%(CI至98.4%)、换手率784x、冲击成本占总额的14.6%,以及仅有$4.67M的容量。avg_trade_return_pct 0.716%虽然能覆盖手续费门槛,但这是一次因风险质量/优势显著性问题而放弃,而非因手续费侵蚀优势而放弃。
实现
在一个3资产、散户主导的币安USD-M篮子(DOGEUSDT为主要标的 + XRPUSDT,SOLUSDT为额外标的,均为4小时K线)上进行多空反向回归交易。信号为对数GLOBAL多空ACCOUNT比率的滚动z分数(基于计数的散户持仓代理指标,来自币安Vision指标/global_account_ratio数据源)。反向映射策略在极端值处逆势而为:z >= +entry_z(散户净多头达到最大)-> 做空;z <= -entry_z(散户净空头达到最大)-> 做多。三条腿各自独立入场/出场——各自设有ATR止损、均值回归退出(当z对于持仓方向回穿0时退出),以及基于风险的仓位规模控制(以ATR止损距离计算risk_frac的权益比例,上限为杠杆权益名义金额)。DOGE通过基础主要流程进行交易;XRP和SOL则在on_extra_bar中通过 _submit_entry_instrument / _submit_exit_position 进行管理。
验证结果
验证失败(第 4 层 — QA 审查): - 标的集合不匹配:该假设明确是一个 3 资产篮子(DOGEUSDT、XRPUSDT、SOLUSDT),并声明该篮子 IS 是核心的抗过拟合/交易次数机制(“一个 3 标的的篮子可稀释单一标的的曲线拟合,并提升交易次数以增强统计可靠性”)。但交付的代码仅为单一标的 DOGE:config.instrument_id=DOGEUSDT.BINANCE,extra_instruments=[],类文档字符串写明“单一标的”,且没有多标的处理逻辑(on_extra_bar 未被重写)。三个指定标的中有两个(XRP、SOL)缺失,因此代码并未实现其所归属的假设,假设所依赖的分散化和样本量也不复存在。 - 沙盒夏普比率 1.05 的 CI 为 [-0.57, 2.66](横跨零值),基于 100 笔交易,且结果依赖于空头腿(short_win_rate 0.596 对比 long_win_rate 0.417),仅覆盖单一 363 天窗口。将篮子缩减为单一标的后,该优势的可测量性已处于下限。
需决定单一标的 DOGE 是否满足预期意图;若确需真正的篮子,则需要为每条腿分别提供 L/S 补充数据。若接受单一标的方案,需高度重视 OOS/留存验证。
UNIVERSE REDUCED FROM 3-ASSET BASKET TO SINGLE-NAME DOGE(analyst/PM to rule)。该假设明确是一个 3 资产篮子(DOGE/XRP/SOL),依靠该篮子来稀释单一标的的曲线拟合并提升交易次数;而配置为单一标的 DOGEUSDT。开发者披露了该框架限制(L/S 补充数据源仅注入给主要标的),并正确地拒绝了将跨标的散户代理指标用作信号,因为这在信号层面并不合适。DOGE 是指定标的之一,且机制相同,因此这并非严重的标的错配——但它消除了假设本应获得的抗过拟合能力和交易次数可靠性。
发送至优化/留存验证;在剔除最大盈利交易的情况下检查稳定性,并在样本外进行确认。
沙盒中的正收益较为薄弱/由肥尾驱动:+36% / 夏普比率 1.02,但 CI [-0.58, 2.64] 横跨零值,largest_win $11,287 对比 avg_win $2,096(约 5x),偏度 +0.53,仅有 100 笔交易。令人鼓舞的是,NOT 避开了失效的反向-RR 模式(avg_win $2,096 > avg_loss $1,447,胜率 0.51),且拥有真正的非价格类散户数据源,因此该优势是可信的,但仍需 OOS 确认。
验证已加载的 long_short_ratio 映射的是 count_long_short_ratio(全局账户),而非大户/主动成交类指标;如有歧义,需显式选择相应列。
确认该比率字段是预期的 RETAIL 代理指标。代码读取的是 long_short_ratio/longShortRatio,但指标 CSV 中有 count_long_short_ratio(全局账户=散户)、大户比率以及主动成交量比率。逆势优势特指基于计数的 GLOBAL ACCOUNT 比率;若用大户/主动成交比率进行反向操作,将是一个不同、甚至可能相反的信号。
回测评审
- 夏普
- 0.29
- 总收益率
- 1814.71%
- 最大回撤
- 40.43%
- 总交易数
- 1695
- 胜率
- 46.2%
- 盈利因子
- 1.35
avg_trade_return_pct 0.716% 高于期货费用下限;1695 笔交易是一个具有决定性的样本
在 5 个完整年份中有 5 年为正收益(2022 +82%、2023 +22%、2024 +74%、2025 +209%、2026 +76% YTD)——并非严格的单一行情阶段
benchmark_meaningful=false 且贝塔约为 0——真正的市场中性构造(不应因未跑赢买入持有而扣分)
夏普比率 0.285,95% CI 为 [-0.326, 0.916],横跨零值——风险调整后的优势与零无法区分;无法通过调参使其达到可推广的约 1.5
+1814% 的收益是肥尾造成的假象(峰度 15.5),主要由约 6 个暴跌期单日驱动,其中包括在 FTX 崩盘期间的 +80.8%——收益分布不均,并非持续稳定的优势
结构性缺陷:辅助数据管道只能为主腿提供多空比率,因此所有3条腿交易的都是DOGE的群体z分数——该假设的3个独立信号分散化并未实现(且这是引擎层面的限制,开发者无法修复)
max_drawdown 40.4%(CI高98.4%),索提诺比率0.345,换手率784x,冲击成本占总额的14.6%,容量仅为$4.67M——对手续费/冲击成本敏感、规模小、尾部风险高
分析
语义审计发现代码与假设不一致——该代码并 NOT 实现假设内容。需重新编写策略代码,以实现假设 EXACTLY(标的、时间周期、方向、所指明的优势/机制、仓位规模)。具体问题:该假设(标题+正文)定义了一个 LONG-SHORT 的 3 资产篮子,覆盖 DOGEUSDT/XRPUSDT/SOLUSDT,其声明目的是稀释单一标的的曲线拟合并提升交易次数,但 config.extra_instruments 和 extra_bar_types 均为空(仅有 DOGEUSDT.BINANCE),且代码实现的是单一标的策略(单一 _ts_arr/_ratio_arr、单一 self.instrument_id 查询、没有 on_extra_bar/篮子逻辑,文档字符串写明“单一标的”)。策略自身的原理说明字段承认 DOGE/XRP/SOL 篮子因补充数据源框架限制而被判定为“不可行”并被放弃,因此交付的策略实际上是单一标的反转策略,而非假设所声称的 3 资产多空篮子。
迭代历史
验证失败(第 2 层 — 合成场景): 使用的参数:['entry_z', 'risk_frac', 'atr_period', 'z_lookback', 'min_notional', 'atr_stop_mult', 'min_ratio_pts'] 请检查 __init__ 是否从 self.parameters.get() 中设置了所有属性。 - steady_uptrend:TypeError: RetailCrowdingContrarianReversalLS._extract() takes 1 positional argument but 2 were given(K线时间戳:1735692540000) - steady_downtrend:TypeError: RetailCrowdingContrarianReversalLS._extract() takes 1 positional argument but 2 were given(K线时间戳:1735692540000) - flat_ranging:TypeError: RetailCrowdingContrarianReversalLS._extract() takes 1 positional argument but 2 were given(K线时间戳:1735692540000) - volatility_spike:TypeError: RetailCrowdingContrarianReversalLS._extract() takes 1 positional argument but 2 were given(K线时间戳:1735692540000) - zero_volume:TypeError: RetailCrowdingContrarianReversalLS._extract() takes 1 positional argument but 2 were given(K线时间戳:1735692540000) - price_gap:TypeError: RetailCrowdingContrarianReversalLS._extract() takes 1 positional argument but 2 were given(K线时间戳:1735692540000)
结局总结
巨大的头条收益可能只是肥尾造成的假象——需检查该优势是否具有统计显著性(夏普比率 CI 明显偏离零),且并非仅由少数暴跌日支撑;同时需核实多资产分散化的前提是否真正实现,而非被某个将所有资产腿都绑定到同一信号的数据交付限制所破坏。
该策略在预优化的回测审查阶段被放弃,因为其风险调整后的优势与零无法区分(夏普比率 CI 的置信区间跨越零值),且收益依赖于少数几次幸运的暴跌日做空,而非稳定的散户反向优势;由于这三个参数无法将不显著的夏普比率提升至可推广的约 1.5,优化阶段被跳过。
这是一种市场中性的多空逆向策略,应用于以散户为主的3资产Binance USD-M篮子(DOGE/XRP/SOL,4小时K线),在全球多空账户比率出现统计极端值时逆向操作散户群体——当散户净多头达到最大值时做空,当散户净空头达到最大值时买入,在均值回归或触及ATR止损时平仓,仅使用三个经过调优的参数。
在一个具有决定性的 1,695 笔交易样本上,该策略实现了 +1814.7% 的收益,且在全部五个完整年份中均为正收益,但风险调整后的质量较差:夏普比率 0.285,95% CI 为 [-0.326, 0.916],横跨零值,索提诺比率 0.345,盈利因子 1.35,胜率 46.2%,最大回撤 40.4%。该收益是肥尾造成的假象(峰度 15.5),主要由约 6 个极端单日贡献,其中包括在 2022 FTX 崩盘期间的 +80.8%,此外还伴随 784x 的换手率、14.6% 的冲击成本,以及仅约 $4.67 百万的容量。
Stratmill 是研究与模拟交易工具,不提供财务建议,也不是经纪商。回测与模拟结果均为假设性结果。交易存在亏损风险。