AQAI QuantAI research lab for systematic strategies

Automated analysis

This analysis was drafted by our research engine and has not been checked by a human editor. It may contain errors. It separates the paper’s own results from our tests, and any figures called ours come from our own backtest.

Our automated analysisOur backtest

PC1 penalty lowered ten-ETF momentum drawdown from 23.6% to 14.1%

Coefficient selected during development; bootstrap gain interval, [-3.3, 18.4] points, crosses zero; AI crowding remains untested.

2026-11-04 · 8 min read · Momentum with common-factor exposure control · US-listed cross-asset ETFs

Reviewing: Penalize the Common Trade: A Collision-Aware Layer for Learned Portfolios · Eric Benhamou, Jean-Jacques Ohana, Beatrice Guez et al. · Read it on arxiv

Our backtest of this idea

Our automated quick test, not the paper's

Collision-Aware Weekly ETF Momentum — Platform-Capped Sleeve

Backtest period 2020-01-01 to 2024-07-01 · hypothetical, net of modelled costs

Why these figures are not the paper's (2)

This is not a replication of the paper (2)

  • The return-based portfolio layer requires no unavailable machinery, but attributing its common-return component to AI crowding would require holdings and flow evidence not available in the listed data.
  • Available price history supports a shorter evaluation than the reported January 2012–July 2026 sample; published full-period performance cannot be exactly replicated within the stated historical coverage.

The figures below measure what we could run, not the paper's own method, so they are not evidence for or against its claim.

Our own audit found this run does not follow the paper faithfully (5)

  • Equation (22), gross wealth factor and drifted holdings: G_{t+1} = a_t w_tᵀ(1+R_{t+1}), p_{t+1} = [a_t w_t ⊙ (1+R_{t+1})] / G_{t+1}.: Retain the original expression as source-only context. Execute an event-based cash-inclusive account recursion, including old-holdings exposure before execution and the residual cash allocation. (invalidates: Direct replication of Tables 4–6 account returns, drawdowns, turnover and modeled costs; direct replication of the reported volatility-matched and bootstrap numerical results)
  • Form signals only after completed Friday weeks, handle Friday holidays at the Friday boundary, and execute at the next exchange session's adjusted open.: Preserve completed-Friday signal formation and holiday handling, but execute at the next session's adjusted close. (invalidates: Exact requested next-session-open experiment; direct numerical comparability with the author's Friday-close path and the requested open-execution path)
  • Use adjusted close for signals and valuation, adjusted open for stated fills, never raw_close, and do not add dividends again.: Use adjusted close for signals, valuation and the declared next-session close fills; actual adjusted opens are analysis-only. Never use raw_close or add dividends again. (invalidates: Exact requested open-execution results)
  • Use the fixed risky ETF order and stable ties; SHY is benchmark only; remain invested in top three even when all momentum is negative.: Preserve fixed membership, tie order, benchmark role and top-three membership regardless of momentum sign, but invest only the capped risky sleeve and retain residual account cash. (invalidates: Fully invested top-three account construction; Tables 4–6 empirical performance magnitudes and original turnover/cost comparisons)

1 further finding(s) are described in the note.

These are our findings about our own implementation, not criticisms of the paper. Read the figures below as a description of what we ran.

Jan 2020Total 12.9%Jul 2024
Sharpe
0.74
Total Return
12.9%
Max Drawdown
-5.5%
CAGR
2.7%
Volatility
3.9%
Beta vs SPY
0.05
Trades
756

What the paper reports for its own strategy

  • Collision-aware (φ=0.75): CAGR 7.98%, Jan 6 2012 – Jul 24 2026 (760 weeks), net of 10 bp per dollar traded
  • Collision-aware (φ=0.75): annualized volatility 10.68%, same sample and costs
  • Collision-aware (φ=0.75): excess-return Sharpe 0.667 (weekly returns in excess of SHY, annualized by √52), same sample and costs
  • Collision-aware (φ=0.75): maximum drawdown -14.14% (weekly sampling), same sample and costs
  • Collision-aware (φ=0.75): mean weekly traded notional 0.193 of pre-trade wealth; annual modeled cost 1.00% of wealth
  • Drawdown gain vs momentum 9.47 pp, paired-bootstrap 95% CI [-3.25, 18.38]; Sharpe gain 0.004, 95% CI [-0.324, 0.329]

A penalty on first-principal-component loading reduced a ten-ETF momentum rotation's worst loss from 23.60% to 14.14% across 760 weeks, after 10 basis points per dollar traded. The authors chose the penalty strength during development. Moving to the neighboring grid values, 0.50 and 1.00, surrenders about a quarter of that improvement: drawdown rises to 16.39% and 16.78%. I would try this as a drawdown overlay well before accepting the authors' name for it. They acknowledge that linking the direction to AI crowding requires holdings and flow data. My concern is more specific. Much of the PC1 penalty may amount to a volatility tilt.

A subtraction added to momentum

Benhamou, Ohana, Guez, Setrouk, Saadi and Jacquot begin with a concern about market structure. Allocators trained by different teams can read the same prices and optimize similar losses. They may then buy the same assets on good news and sell them together after losses. The authors use signal collision to mean exposure to this shared direction. Their concern is the common trade, a position many allocators hold simultaneously, and their title proposes penalizing it. The paper puts the argument plainly: "Model diversity does not guarantee trade diversity."

The theoretical setting is a linear-impact game. Each of N mean-variance allocators accounts for how its trade affects its own position, while disregarding the effect on everyone else. At unit signal and risk cost, with impact L=0.1 and N=10, private exposure reaches 0.476 versus a social optimum of 0.333. The individually small differences produce aggregate excess exposure of 1.429. Charging a toll solely on overlap with other allocators recovers the social choice. The toll disappears when nobody else holds the trade, which the authors use to distinguish it from generic shrinkage. A feedback model identifies the gain at which return-chasing allocation becomes unstable. A spectral result then gives conditions under which the leading covariance eigenvector can proxy for the unseen crowded direction.

The trading experiment needs much less machinery. On each completed Friday, it calculates 52-week momentum for SPY, QQQ, IWM, EFA, EEM, VNQ, IEF, TLT, GLD and DBC. It also extracts the leading eigenvector from the trailing 104-week covariance matrix. Taking absolute loadings removes the sign ambiguity and measures each asset's participation in the common mode. The rule standardizes both vectors across the ten names, then scores each asset as momentum z minus φ times loading z. It holds the top three in equal thirds for the following week. SHY supplies only the cash rate for the excess-return Sharpe. The authors name this the collision-aware rule.

At φ=0.75, the authors report a 7.98% CAGR over January 6, 2012 to July 24, 2026. Volatility is 10.68%, excess-return Sharpe 0.667 and maximum drawdown 14.14%. The corresponding plain-momentum figures are 9.18%, 12.62%, 0.664 and 23.60%. Weekly traded notional drops 20.0%, from 0.241 to 0.193 of wealth; modeled annual cost declines from 1.25% to 1.00%. Drawdown and trading carry the claim. The authors describe Sharpe as essentially unchanged, and the rule's 0.667 trails naive equal weight at 0.686.

What can an implementer reproduce?

The replication target is unusually well specified. The paper supplies the source file's SHA-256 prefix (8efbf1c8aef2969). Because the price panel ends on a Thursday, it excludes the partial week labelled July 31, 2026. Fees enter through the exact self-financing equation, a + 0.001 x ||a w - p||_1 = 1. Bisection solves it, ensuring fees are charged once. The bootstrap uses fixed seeds and 2,000 draws with a 13-week expected block.

Discretion enters when the theory becomes a trading rule. The proof that collision exposure falls monotonically applies to a continuous mean-variance problem. It also requires the budget direction to be orthogonal to the penalized direction (c'Σ^-1 1 = 0). The authors describe the rank rule as an approximation "with one discretionary coefficient." We did not find a test of that condition in the 760-week run.

Covariance, rather than correlation, supplies the eigenvector. In a universe containing bonds, gold and small caps, higher-variance assets tend to dominate that vector. An implementer should therefore expect some of the loading penalty to behave like a volatility penalty. The paper's figures are consistent with that reading: PC1 lowered volatility from 12.62% to 10.68%, whereas the PC2 placebo discussed below reached 13.60%.

The authors also acknowledge Friday-close execution as a limitation.

Beyond lower volatility

The penalty does appear to do something more. Scaling momentum's excess returns by 0.834 after the fact gives the authors a risk-matched comparison. Its CAGR is 7.95%, volatility 10.56% and Sharpe 0.664, close to the collision-aware figures of 7.98%, 10.68% and 0.667. Yet drawdown remains 19.89%, a gap of 5.75 points. With volatility nearly matched at 10.56% against 10.68%, the wrapper's change in holdings delivered a shallower trough.

The authors explicitly label that comparison ex-post and uninvestable: the scaling factor uses full-test volatility. They also run two placebos. Penalizing the second eigenvector gives a CAGR of 11.08% and a Sharpe of 0.746, both above the headline rule, alongside 13.60% volatility. That volatility exceeds momentum's 12.62%; the PC1 penalty had reduced it to 10.68%. The second-eigenvector drawdown is 23.37%, within a quarter point of momentum's 23.60%.

Shuffling PC1 loadings across assets in 200 runs yields a median drawdown of 24.91%. The 95% simulation band extends from 19.32% to 33.44%, leaving the reported 14.14% below its lower bound. In their conclusion, the authors say these diagnostics "reject several simple explanations."

The tests rule out an arbitrary direction and random ranks. They leave open whether absolute PC1 loading is effectively a trailing-volatility rank. We did not find a direct trailing-volatility penalty among the diagnostics. I would add that placebo first.

The drawdown headline depends on φ=0.75

The authors deserve credit for printing the entire grid. Drawdown is 23.60% at φ=0, 19.30% at 0.25, 16.39% at 0.50 and 14.14% at 0.75. It then rises to 16.78% at 1.00 and 20.32% at 1.25, before falling to 18.70% at 1.50. Sharpe reaches its maximum of 0.730 at φ=0.50 and drops to 0.276 at 1.50. This uneven dose-response is difficult to read as smooth risk control.

Removing each asset in turn still improves drawdown in nine of ten universes. But the median improvement is 5.38 points, considerably below the 9.47 headline. The range runs from -0.80 to 9.28. Excluding GLD reverses the sign.

The paired bootstrap estimates a drawdown gain of [-3.25, 18.38] points and a probability of improvement of 0.895. The authors acknowledge these limitations. They say the drawdown endpoint was selected after development had begun and describe the finding as exploratory. They also disclose that φ was not preregistered and that the crash-reduction estimate "remains statistically unresolved." Their defense is that the result "establishes a reproducible risk-control association."

Reproducible is a fair description: the hashed file regenerates the path. But the paper describes the 760 weeks as an untouched evaluation while also saying that φ was chosen during development and that the grid is descriptive. The grid's lowest drawdown occurs at 0.75. The bootstrap holds φ fixed at 0.75 when rebuilding paths; it does not repeat the selection. We therefore read its interval as understating uncertainty.

Our 30%-sleeve rerun, 2020 to mid-2024

Our figures need two disclosures up front. We lack the holdings and flow data needed to attribute the common return mode to AI crowding, so our run says nothing about that story. Our available prices also cover a shorter window than the paper's 2012 to 2026 sample. We cannot reproduce its published full-period results here.

Instead, we ran only the φ=0.75 rule from January 2020 to July 2024. Three ETFs received 10% each, making a 30% risky sleeve alongside 70% non-interest-bearing cash. DBC was unavailable, leaving nine names. Trades filled at the next session's close, with commissions of $0.004 a share and a $1 minimum. We did not run a momentum comparator. This measures the wrapped rule alone and says nothing about the paper's drawdown claim.

Our backtest produced 2.74% CAGR and about 13% total return. Volatility was 3.87%, maximum drawdown 5.53%, Sharpe 0.74 and beta to SPY 0.05. Holding 70% cash dilutes that beta. The implied sleeve beta is roughly 0.17, consistent with rotation away from equities, though it tests nothing. The paper reports 7.98%, 10.68%, 14.14% and 0.667 for its rule. Our return and risk are thus roughly a third of its figures, with a slightly higher Sharpe.

Those Sharpes measure different things. The paper calculates excess returns over SHY for 2012 to 2026. Ours covers 2020 to mid-2024, with different execution and costs. The methods differ, and the sleeve accounts for most of the gap. Multiplying the paper's figures by 0.3 gives about 2.4% CAGR and 3.2% volatility, close to our results. Our code also sized positions against initial capital, allowing the risky allocation to drift slightly below 30% as the account grew.

The shorter period includes the 2020 shock and the joint stock-bond drawdown of 2022. Those episodes may explain some of the remaining difference, but we cannot quantify their effect or its direction. The absence of DBC may matter as well. Execution and fee conventions could move the comparison either way.

Common-mode control until holdings establish the link

The authors distinguish the questions answered by their game and their backtest. They acknowledge that macro shocks, duration exposure and changing stock-bond correlation can each generate a leading component. Their proposed validation proceeds through a holdings-overlap direction derived from N-PORT or 13F filings, signed flow along the frozen direction, and a locked period with φ fixed at 0.75. Until a filings-based direction aligns with PC1, I would describe this as common-mode control for a three-name ETF rotation.

The locked test must deliver a drawdown improvement at φ=0.75 on unseen weeks. It must also beat a plain trailing-volatility penalty at matched turnover. Include a trailing-volatility rank in the comparison. If the PC1 penalty still keeps drawdown below the volatility-matched 19.89%, I will take the composition effect seriously.

Our backtest stops at 2024-07-01, and everything after that date is deliberately left untouched so the same strategy can be checked out of sample later.

How our backtest worked

The steps the code we ran actually executed, from its strategy card. Ours, not the paper's — it is one automated implementation of the idea, not the authors' own.

1. Validate the complete ordered ten-ETF universe and SHY benchmark coverage.
   Require 105 aligned weekly closes, including pre-evaluation history.
2. After each completed Friday boundary, use the week's last actual session close.
3. Calculate each ETF's compounded return over the latest 52 completed weeks.
4. Demean 104 aligned weekly simple returns; calculate sample covariance / 103.
5. Use a deterministic symmetric eigensolver to obtain the leading unit eigenvector.
   Take componentwise absolute values; record eigenvalues and eigengap.
6. Separately standardize momentum and absolute loadings across all ten ETFs
   using population standard deviations. An exactly zero dispersion gives zeros.
7. Score = z_momentum - 0.75 * z_absolute_PC1.
   Rank descending; resolve exact ties by the prescribed symbol-key order.
8. Select three ETFs even when all momentum observations are negative.
   Set each risky target to 0.10 and cash target to 0.70.
9. Retain old holdings until the next actual exchange session's adjusted close.
   Mark holdings, solve a + 0.001 * ||a*w - p||_1 = 1 by bisection,
   then replace targets. Sell deselected names; resize retained names.
10. Preserve old exposure before execution and new exposure afterward.
    Build complete Friday-to-Friday account returns; separate terminal stubs.
11. Independently evaluate every prespecified penalty, the zero-penalty comparator,
    the ex-post volatility-matched diagnostic and paired bootstrap comparisons.

These steps describe the declared method, not a verified reconstruction of the supplied run. The truncated code sizes positions against initial capital rather than current account wealth and defines p on that basis. The reported universe has nine names rather than ten, and platform post-processing applies the commission schedule below. Missing signal history suspends target formation; missing execution prices cancel the entire rebalance.