📑 本文目录
论文解读技术分析回测方法论multiple-testingdata-snooping动量诚实回测

论文解读:散户常用技术信号"全灭"——三道闸门证伪RSI/MA交叉/K线/成交量/Sell-in-May


引子:为什么又是”技术分析无效论”

如果你做量化回测超过三年,几乎一定会经历这个心路历程:

  1. 在历史数据上发现某条均线交叉/RSI阈值/K线形态的胜率”显著高于50%”
  2. 实盘上线后发现信号时灵时不灵,扣除手续费后基本打平
  3. 开始怀疑是不是参数没调好,再去网格搜索,结果越调越差
  4. 最终默默把策略下线,归因为”市场变了”

这个循环背后有个学术问题:到底有多少技术分析信号是真的有效,又有多少只是数据挖掘的幻觉?

2026年7月,Hecatus Research的Adam Darmanin在arXiv发表了一篇很短但很硬核的论文《Retail Trader’s Ruin: An Anatomy of Popular Signal Failure》(arXiv: 2607.20093),用一套联合证伪框架(joint falsification framework)一次性给出了答案:散户最常用的5类信号,4类被明确证伪,1类无法判定,没有任何一类通过检验

更值得关注的不是结论本身——“技术分析无效”早已不是新闻——而是论文提出的三道闸门 + 一条动量校准基线的方法论。这套框架可直接移植到我们自己的回测体系里,把”看着不错”的策略提前送进审判庭。


一、核心设计:三道闸门联合证伪

1.1 三道闸门的定义

论文把”策略在实战中可用”定义为三个必要条件的合取(conjunction),任何一个不通过就判负:

闸门名称判定阈值含义
(a)Statistical edgeδ_S = 0.20 Sharpe gap减去”等暴露基准”后的Sharpe差距,95% CI下界必须大于0.20
(b)Economic viabilityδ_R = 0.01 CAGR gap扣完10bps零售成本后的CAGR差距,95% CI下界必须大于1%
(c)Finite-bankroll survival强制平仓概率小于10%在监管杠杆规则下,单季被强平的概率上限不超过10%

最关键的设计是合取判定(AND-composed):

  • SUPPORTED(通过)= 三道闸门全部通过
  • REFUTED(证伪)= 任意一道被明确证伪
  • INCONCLUSIVE(无法判定)= 其他情况(CI跨阈值但未被排除)

这个三态分类比传统的”显著/不显著”二分法更诚实。

1.2 为什么不能只看p值

传统回测研究最大的问题是:“不显著”和”无效”被混为一谈

  • “p值大于0.05” 可能是策略真没用
  • 也可能是样本量不够,CI太宽,根本判定不了

论文明确区分这两种情况:

  • REFUTED 要求95% CI的上界低于预设阈值(甚至低于0),即”即使按最有利情况估计,效果也达不到声称的强度”
  • INCONCLUSIVE 是CI跨阈值,只能说”在这个样本量下判不了”,不能当null结论报

这个区分对应到我们自己的实战场景:跑完一个因子发现IC均值0.02、t值1.3,直接报”无效”是错的,应该报”样本不足以判断”。

1.3 等暴露基准(exposure-matched benchmark)

这是论文最值得借鉴的小技巧。

很多技术信号天然就有低开仓比例(比如”五月卖出”一年只持仓7个月,K线形态可能一年只触发几次)。直接拿策略Sharpe对比满仓买入持有Sharpe是不公平的——满仓持仓时间更长,自然吃到了更多beta收益。

论文构造了一个等暴露基准:信号仓位为1时持有标的,信号仓位为0时持有现金,全程不扣成本。这样基准和策略的”在市时间”完全相同,差异只反映择时能力本身

等暴露基准收益 = sum(signal_t * buy_hold_return_t)
信号超额收益 = sum(signal_t * buy_hold_return_t) - 等暴露基准收益
            = 信号择时产生的真实alpha

这个做法比跑CAPM回归简单得多,但精确隔离了”择时alpha”和”被动beta”。


二、被测试的5类信号 + 1个动量校准基线

论文从一份77项的内部信号目录(按YouTube/在线课程推广频率排序)中挑出每个类别里最被推广的那一项

家族具体规则数据期间
Trend金叉/死叉(50/200日SMA)NASDAQ-100全样本
OscillatorRSI(14, 30/70阈值)NASDAQ-100全样本
VolumeOBV(3, 12)月度Russell 3000 PIT2007–2025
CalendarSell-in-May(最佳变体)SPY全样本
Candlestick7种K线形态事件研究Russell 3000 PIT全样本
Momentum(校准基准)J&T 12-1动量 top decileS&P 500 PIT2000–2026

动量校准基准(calibration benchmark)是这篇论文最巧妙的设计——后面会专门讲。

数据处理规范(值得抄)

  • PIT(point-in-time)成分股:所有横截面策略都用历史时点上的指数成分股,而不是当前的快照——这是规避幸存者偏差的标准做法
  • Shumway (2001) 退市修正:退市月按-30%/年化收益填补,不是直接丢弃
  • 流动性加权:动量基准按美元成交额加权(Korajczyk & Sadka 2004),不是等权

这与我们 backtest-guardrails skill里的B1(退市股补全)和B3(数据排除规则)几乎是同一套规范。


三、结果:4证伪 + 2无法判定 + 0通过

3.1 闸门(a)统计显著性结果

家族Sharpe gap 95% CI统计闸门判定
Trend[-0.234, 0.265]INCONCLUSIVE(CI跨阈值δ_S)
Oscillator (RSI)[-0.608, -0.175]REFUTED(显著负向)
Volume (OBV)[-0.193, 0.175]REFUTED(上界小于δ_S)
Calendar (Sell-in-May)[-0.618, 0.000]REFUTED(上界小于δ_S)
Candlestickmax|d| = 0.026 vs δ_d=0.2REFUTED(效应量太小)
Momentum(基准)[-0.295, 0.548]INCONCLUSIVE

注意 RSI(14)的Sharpe gap是负的且统计显著——意味着RSI择时不仅没帮助,还显著跑输等开仓时间的”傻持”基准。这跟”超卖买入、超买卖出”教科书逻辑正好相反。

3.2 闸门(b)经济显著性结果

家族CAGR gap 95% CI经济闸门判定
Trend[-0.081, 0.024]INCONCLUSIVE
Oscillator (RSI)[-0.149, -0.044]REFUTED(显著负向)
Volume (OBV)[-0.086, 0.013]INCONCLUSIVE
Calendar (Sell-in-May)[-0.131, -0.026]REFUTED(显著负向)
Candlestick1/7形态在5bps成本下保留方向性REFUTED(其余6/7失效)
Momentum(基准)[-0.044, 0.130]INCONCLUSIVE

Sell-in-May的CAGR gap显著为负——按民间传说的方向持仓反而亏钱。论文特别指出:在US样本上,5月-10月的实际收益反而高于11月-4月,与传统说法完全相反。

3.3 闸门(c)生存概率(FINRA 2x杠杆规则)

家族P(强平) 95% CI生存闸门
Trend0.009 [0.0065, 0.0124]通过
Oscillator0.013 [0.0097, 0.0167]通过
Volume0.000 [0.000, 0.001]通过
Calendar0.003 [0.0019, 0.0056]通过
Momentum0.004 [0.0023, 0.0062]通过

关键发现:在US FINRA规则下(25%维持保证金,最高2x杠杆),所有家族都轻松通过生存闸门。换言之,杠杆破产不是这5个家族的瓶颈——它们的死因是统计/经济闸门,不是Kelly破产。

但是!换成ESMA的EU CFD规则(5:1杠杆上限,10%维持保证金)后,Trend的强平概率跳到 11.2% [10.3%, 12.2%],Oscillator跳到 14.6% [13.5%, 15.7%],双双突破10%阈值。这告诉我们:杠杆会杀人,但只在高杠杆+薄保证金场景下才成为约束

3.4 联合判定

SUPPORTED(通过)= 0 个
REFUTED(证伪)  = 4 个:Oscillator / Volume / Calendar / Candlestick
INCONCLUSIVE    = 2 个:Trend / Momentum基准

H1(至少一个家族通过三道闸门)被拒绝。


四、动量校准基准:论文最聪明的设计

4.1 为什么需要校准基准

如果框架太严苛,可能会误杀真实存在的alpha——这是任何严格回测框架都面临的质疑。

论文的解决方案:把一个已知有效的策略(横截面12-1动量,Asness 2013等论文反复验证过)放进同一个流水线。如果连动量基准都被REFUTED,说明框架太严,所有判定都不可信。如果动量基准INCONCLUSIVE但5个家族都REFUTED,说明框架有判别力。

4.2 结果:动量基准INCONCLUSIVE,从未REFUTED

动量基准的Sharpe gap = +0.109,CI = [-0.295, 0.548],跨阈值但未被排除。在δ_S ∈ {0.10, 0.20, 0.30}三个阈值下都是INCONCLUSIVE。

这个结果不能证明动量有效(因为CI下界为负),但能证明:框架没有机械地证伪任何不确定的估计。如果框架是”任何不显著的就判REFUTED”,动量早该被毙了——但它没有。

4.3 论文诚实承认的局限

作者直接指出:n=312个月对这个量级的效应是underpowered的。最小可检测效应(MDE)大约是0.60 Sharpe单位,而文献里分散动量的典型Sharpe gap在0.5–0.9之间——也就是说论文的样本量本来就不够大,无法在80%功效下检出真实动量效应

这种把方法论局限放在台面上的写法非常少见,也是这篇文章可信度高的原因之一。


五、EU复制实验:跨市场一致性验证

为了避免”只在美国一个市场有效”的质疑,论文还跑了18个网格的EU复制实验

  • 6个主要EU国家ETF(德/法/英/西/意/瑞) × 3种指标(金叉/RSI/MACD)
  • 18个单元里有4个原始p小于0.05,但全部是负向
  • 经过Benjamini-Yekutieli多重检验校正后,0个通过

另外还在567只STOXX 600个股上跑了一遍,结论一致:金叉和OBV类信号在EU市场同样跑不赢买入持有

这种跨市场一致性是US单市场结论的有力佐证。


六、与已有量化工程体系的对比

6.1 vs 我们 backtest-guardrails skill

论文检查项对应guardrail一致性
Pit + Shumway退市修正B1 退市股补全✅ 完全一致
10bps零售成本(5bps/leg)B5 交易成本建模(A股万5+千1滑点≈25bps)论文偏宽松
等暴露基准隔离择时alpha无对应论文新增,值得借鉴
三态判定(SUPPORTED/REFUTED/INCONCLUSIVE)二态(通过/不通过)论文更细致
联合合取判定各项独立检查论文更严格
δ_S=0.20 Sharpe gap作为materiality阈值B8 随机基线(策略需显著优于随机)思路一致
动量校准基准作为阳性对照无对应论文新增,强烈推荐
δ_S敏感度网格 {0.10, 0.20, 0.30}B9 参数鲁棒性 ±20%/±50%扰动思路一致

论文的方法论与我们既有框架高度互补:等暴露基准、三态判定、阳性对照这三个设计可以直接移植到我们的回测流水线里。

6.2 vs 已有博客实战文章

这篇论文的结论与我们博客上多篇实战发现高度呼应

  • 5558条信号、42.9%胜率》:自建信号系统实测胜率远低于教科书宣称值——对应论文RSI被判REFUTED
  • 均值回归策略的牛市陷阱:5086条信号》:超卖买入在多头环境反而最差——对应论文RSI Sharpe gap为负
  • 三系统交叉验证:动量信号当日全面溃败》:动量在极端波动日失效——对应论文动量基准INCONCLUSIVE(不是被判有效)
  • 量化信号74%→19%胜率过山车》:同月内极端波动——对应论文强调样本量不足时无法判定

学术论文为我们的实战发现提供了理论框架——“为什么5558条信号只有42.9%胜率”的根因,可以用论文的三门控框架解释:没通过统计闸门 + 没通过经济闸门 = REFUTED,与”参数没调好”无关。


七、实践启示:把三门控框架移植到A股

7.1 等暴露基准的最简实现

针对我们的ETF/可转债择时策略,等暴露基准可以这样实现:

import pandas as pd
# signal: 0/1仓位序列, returns: 标的日收益
def exposure_matched_benchmark(signal, returns):
    in_market = signal.mean()  # 信号在市比例
    bh_when_in = (signal * returns).sum() / signal.sum()  # 信号为1时的均收益
    # 等暴露基准 = 信号为1时持有,为0时持有现金(收益0)
    benchmark = signal * returns  # 现金段收益为0
    # 信号alpha = 策略均收益 - 等暴露基准均收益
    # 但因为基准 = 信号收益,所以差异只在加权方式
    return benchmark

# 真正的"等暴露"差异在择时vs随机择时
# 跑1000次随机重排signal,看策略Sharpe的分位数

更严格的做法:把signal序列随机重排1000次,每次保持总开仓比例不变,看真实策略Sharpe在随机分布中的分位数。如果分位数低于90%,说明择时能力没有统计显著性

7.2 阳性对照:动量基准在A股的移植

要在A股用论文的校准思路,需要一个已知在A股有效的策略做对照。候选:

  • 小市值异象(A股长期有效,但2024年以来有所衰减)
  • 低波动率因子(A股防御性风格持续占优)
  • ST摘帽事件驱动(A股特色,但样本量小)

把这个已知有效的策略跑进同一个回测流水线,如果它被判REFUTED,说明框架在A股也太严,需要重新校准阈值。

7.3 三态判定的报告模板

我们 backtest-guardrails skill的报告模板可以升级为三态:

策略名称: XXX
[统计闸门] Sharpe gap = X, 95% CI [L, U]
  - SUPPORTED: L 大于 δ_S(0.20)
  - REFUTED: U 小于 δ_S 或 U 小于 0
  - INCONCLUSIVE: CI跨δ_S

[经济闸门] CAGR gap = X, 95% CI [L, U]
  - SUPPORTED: L 大于 δ_R(0.01)
  - REFUTED: U 小于 δ_R 或 U 小于 0
  - INCONCLUSIVE: CI跨δ_R

[生存闸门] 强平概率 P = X, 95% CI [L, U]
  - SURVIVES: U 小于 10%
  - FAILS: L 大于 10%

最终判定: SUPPORTED / REFUTED / INCONCLUSIVE

这个模板比”通过/不通过”二分法信息量大得多——读者能看出策略到底是真无效还是样本不足。


八、局限性分析

8.1 论文自身承认的局限

  1. 无原始holdout:所有数据和规则定义都已在之前的论文里被检验过,没有真正的样本外数据。“stationary bootstrap只是量化估计不确定性,不是OOS检验”——这一点论文诚实标注了。
  2. 不同家族用不同universe:Trend/Oscillator/Calendar用指数级别数据,Volume/Candlestick/Momentum用横截面PIT数据。虽然各有各的”canonical实现”,但跨家族比较时严格性打折。
  3. K线形态被排除在闸门(c)之外:因为K线是事件研究设计,没有连续可交易收益序列喂给杠杆模拟。这是设计局限,论文坦白披露。
  4. 未经过同行评审:作者明确写”manuscript has not undergone external peer review”。
  5. 成本模型简化:用固定10bps round-trip,没有真实的bid-ask/流动性数据。作者说”5-20bps敏感性网格”已报告,但缺乏broker/CME-SPAN级别的精细建模。

8.2 实践者视角的额外质疑

  1. δ_S=0.20阈值偏主观:作者给了三点理由(与Cohen’s d=0.2一致/约为基准Sharpe的25-40%/低于文献动量Sharpe gap),但承认”no canonical threshold exists”。换成δ_S=0.10时REFUTED数量从4降到3,结论对阈值选择有一定敏感性
  2. 动量基准INCONCLUSIVE的双刃剑:作者把这个解释为”样本不足”,但也可以反过来质疑——如果连这个被广泛验证的策略在这个pipeline里都跑不出显著结果,pipeline本身的可信度存疑。作者的诚实态度(直接承认MDE=0.60高于典型动量Sharpe gap)让这个解释更可信,但不能完全消除质疑。
  3. 样本周期未指明具体起止:NASDAQ-100/SPY的”full sample”覆盖了哪些年?2008金融危机和2020疫情是否包含?这些极端事件对均线/RSI类信号的影响极大。
  4. 未覆盖A股/港股:EU复制只覆盖了发达市场,没测A股这种散户主导、T+1、有涨跌停板的市场。我们的5558信号实战数据暗示A股的RSI/MA可能比US更没用(因为散户参与度更高、噪音更大),但需要独立验证。

8.3 最值得商榷的一点

论文把”动量校准基准INCONCLUSIVE”作为”框架有效”的证据。这个逻辑链是:

如果框架太严,连真实alpha都会被证伪;动量基准没被证伪(只是INCONCLUSIVE),所以框架不算太严。

INCONCLUSIVE ≠ 通过。动量基准的Sharpe gap CI下界是 -0.295——也就是说在95%置信下,动量可能比基准差0.295 Sharpe单位。如果论文真的想用动量证明”框架有判别力”,应该让动量通过(SUPPORTED),而不是只让它”没被证伪”。

作者把这一点处理得很谨慎(“we do not widen the momentum universe until it clears the bar”),但从读者视角看,动量基准INCONCLUSIVE既支持了”框架不机械”,也削弱了”框架能识别真alpha”的强主张


九、总结

这篇论文最大的贡献不是”证伪了4个技术分析信号”——这个结论大家心里早有数。真正的价值在于:

把”统计显著性 + 经济意义 + 生存概率”三个独立维度组合成一个合取判定框架,并用一个已知有效的策略(动量)做阳性对照来校准框架的判别力。

这种思路比我们目前的 backtest-guardrails skill更精细——特别是”三态判定”和”阳性对照”这两个设计,值得直接移植到我们的回测流水线。

对个人量化交易者的最直接启示:

  1. 别再相信单一信号。RSI/MA/K线/成交量/Sell-in-May这5个最经典的信号,全部被严格框架证伪或无法判定。如果还在用,至少跑一遍等暴露基准对比。
  2. 分散化是唯一的免费午餐。论文里动量基准INCONCLUSIVE而不是REFUTED,关键原因是它是横截面分散化策略(top decile 1130只股票),而不是单标的择时。单标的择时天生样本不足、CI太宽,几乎不可能通过严格框架。
  3. “没显著” ≠ “无效”。这个区分在实战中极其重要——如果回测IC的t值是1.3,正确的报告是”样本不足以判定”,而不是”策略无效”。

论文信息

  • 标题:Retail Trader’s Ruin: An Anatomy of Popular Signal Failure
  • 作者:Adam Darmanin(Hecatus Research, Malta)
  • arXiv ID:2607.20093
  • 发布日期:2026-07-22
  • 分类:q-fin.ST (Statistical Finance)
  • 项目主页https://hecatusresearch.com/
  • 篇幅:12页(含附录)

相关阅读

💬 评论