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

Attribution-guided scaling makes its strongest case by cutting neural-net turnover

Liang, Zohren and Cucuringu lift net Sharpe without retraining, chiefly by slowing a book trading 26.70% daily.

2026-10-14 · 7 min read · Machine-learning statistical arbitrage and portfolio attribution · US equities

Reviewing: From Economic Explanation to Performance Improvement in Machine-Learning Portfolios · Yunqi Liang, Stefan Zohren and Mihai Cucuringu · Read it on arxiv

Our backtest of this idea

Our automated quick test, not the paper's

Net-Sharpe-Attribution-Guided XGBoost and Neural-Network Stock Arbitrage

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

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

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

  • Eq 6: dX_t^L = κ(μ − X_t^L)dt + σdW_t; estimate regime-dependent OU signals with a sticky HDP-HMM.: Use lagged projected residual summaries and stock-price momentum; do not estimate OU parameters or regimes. (invalidates: Paper Tables 2 and 7 Sharpe and turnover figures; Figure 9 attribution correlations; Table 6 persistence correlations; Figures 5–7 feature-specific diagnostics)
  • Build a point-in-time liquid stock universe with applicable-year aiquant_screening_table capitalization; use adjusted executable prices; lag signals relative to the executable bar and apply identical accounting to adjusted and unchanged portfolios.: Follow the required applicable-year screen, but cannot verify its within-year publication timing; disclose this limitation and use strictly lagged trading features and observed adjusted-close fills. (invalidates: A claim of fully point-in-time universe membership; paper Tables 2 and 7 results)
  • Paper universe: 346 large-capitalisation, liquid U.S. stocks with undisclosed tickers and Fama–French market, size, value, investment and profitability loadings.: Select the applicable year's top 346 non-ADR stocks by screening capitalization and use an intercept plus a price-derived equal-weighted market-return exposure. (invalidates: Paper Tables 2 and 7 Sharpe and turnover figures; Figure 9 attribution correlations; Table 6 persistence correlations; Figures 5–7 feature-specific diagnostics)
  • Paper daily equity sample October 2000–December 2024 and out-of-sample trading January 2006–December 2024.: Use available prices from 2010 onward and evaluate 2020-01-01 through 2024-07-01. (invalidates: Paper Tables 2 and 7 Sharpe and turnover figures; Figure 9 attribution correlations; Table 6 persistence correlations)

3 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 -24.2%Jul 2024
Sharpe
-0.82
Total Return
-24.2%
Max Drawdown
-31.5%
CAGR
-6.0%
Volatility
6.6%
Beta vs SPY
0.05
Trades
377,462

What the paper reports for its own strategy

  • XGB baseline, OOS 2006-2024: net Sharpe 0.6175 (annualised, 5bp per unit turnover); gross Sharpe 1.0207; net mean 2.55% p.a.; net FF5 alpha 1.19% (t=1.32)
  • FFN baseline, OOS 2006-2024: net Sharpe 0.5750 (5bp); gross Sharpe 1.3051; net mean 2.65% p.a.; net FF5 alpha 1.12% (t=1.11)
  • XGB unstabilised model-specific, OOS 2006-2024, 5bp: net Sharpe 0.6695 (+0.0520, 10% significance)
  • XGB stabilised model-specific, OOS 2006-2024, 5bp: net Sharpe 0.6638 (+0.0463, not significant)
  • XGB unstabilised cross-model, OOS 2006-2024, 5bp: net Sharpe 0.6670 (+0.0495, 5% significance)
  • XGB stabilised cross-model, OOS 2006-2024, 5bp: net Sharpe 0.7559 (+0.1384, 5%); net mean 3.25%, vol 4.30%; net FF5 alpha 1.85% (t=1.97, 5%)

Cutting daily turnover from 26.70% to 13.02% is this paper's strongest result. Liang, Zohren and Cucuringu get there by rescaling the inputs to a neural-network stat-arb book. Over 2006 to 2024, net Sharpe rises from 0.5750 to 0.8250, even as gross Sharpe drops from 1.3051 to 1.1531. The rest of the paper builds the case for that trade-off.

From attribution to a trade

The authors start with a gap between explaining weights and explaining P&L. SHAP (Shapley-value additive) attributions can show which features move a model's weights, yet a weight-driving feature may lose money after turnover costs. As they put it, "A feature that is important for determining portfolio weights need not contribute positively to these outcomes." They extend the attributions through to net Sharpe, then use the result to change the model's inputs while leaving its parameters alone.

Their base trade is residual statistical arbitrage across 346 large-cap U.S. stocks. They regress each stock's return on the Fama-French five factors in a rolling 60-day window and make the residuals tradable with factor-mimicking portfolios. Positions seek mean reversion in cumulative residuals. For each stock-day, the models receive an 18-feature vector: Ornstein-Uhlenbeck parameters fitted to 30-day cumulative residuals, regime features from an HDP-HMM (a hidden Markov model that infers its own number of regimes), residual moments, and liquidity measures.

XGBoost (XGB) and a 32/16/8/4 ReLU feedforward network (FFN) turn those signals into residual weights. Both train directly on net Sharpe with a charge of 5bp per unit of turnover. The weights are L1-normalised. Every 252 days, the authors refit the models using four years of training data and one year of validation. Across 4,781 out-of-sample days, baseline XGB delivers 0.6175 net Sharpe at 13.21% daily turnover; baseline FFN delivers 0.5750 at 26.70%.

The proposed measure asks how net Sharpe responds when a multiplier λ on each standardised feature moves away from 1. To estimate that sensitivity, the authors take SHAP attributions of residual weights and carry them through normalisation, turnover, daily return, mean, volatility and Sharpe. A positive net-Sharpe attribution indicates a local benefit from raising feature i. Compared with Shapley values calculated directly on Sharpe using more than 500 sampled coalitions, the first-order estimates correlate at about 0.76 for XGB and 0.90 for FFN.

Each year's validation attributions set the next year's feature multipliers. The mapping is 1 + 0.5·tanh(signal / cross-feature sd), bounded to [0, 3]; model parameters stay frozen. A stabilised version compounds each new multiplier with the preceding year's. A cross-model version averages the XGB and FFN multipliers before applying them to either model. Net Sharpe rises in all eight model-rule combinations, with seven significant under a one-sided Ledoit-Wolf test.

The neural net trades less

Costs explain much of the FFN improvement. Its baseline gross mean of 6.01% becomes a net mean of 2.65%, leaving 3.36 points a year to 5bp costs. With the stabilised model-specific rule, gross mean slips to 5.76% while net mean climbs to 4.12%; the cost drag falls to 1.64 points. Roughly a quarter point of gross return is surrendered to recover about 1.7 points in costs. The authors likewise say the gain comes "primarily by reducing portfolio turnover and transaction costs".

The persistence results make that account more convincing. FFN turnover attributions have a median validation-to-trading-year correlation of 0.9947. Gross Sharpe attributions have a median correlation of 0.0705, which is not significant; net Sharpe attributions fall between them at 0.2190. Turnover is the part that carries forward. The authors identify pre_res and pred_res as features that help gross Sharpe while contributing most negatively to net Sharpe. Among 13 features that help FFN gross Sharpe, only 6 remain positive after costs.

The test for 0.8250 is whether simpler trading controls can match it. Despite training on net Sharpe at 5bp, the baseline FFN trades 26.70% daily, suggesting its trading penalty was too weak. A turnover penalty, a no-trade band or ordinary weight smoothing calibrated to 13.02% turnover would be a natural comparison. We did not find one in the paper. A sign-only rule gets to 0.7818, versus 0.8250 using full attribution magnitudes. Most of the benefit therefore comes from which way each feature is adjusted, consistent with the authors' statement that "the direction of feature contributions constitutes an important component" of the signal.

The cost grid helps their case.

For stabilised FFN rules whose attributions are estimated at 5bp or more, net Sharpe remains near 0.4 when out-of-sample costs reach 10bp. The baseline turns negative.

Why borrow FFN's signal for XGBoost?

XGB gains +0.0463 from its own stabilised attributions, an insignificant improvement. Average those attributions with FFN's and the gain becomes +0.1384, reaching 0.7559 at the 5% level. Without stabilisation, cross-model and own-model results are close: 0.6670 and 0.6695. The stronger result needs both changes. Here gross Sharpe rises from 1.0207 to 1.1678 while turnover moves from 13.21% to 14.06%. The authors suggest FFN "tends to capture a broader set of potential arbitrage opportunities". Their supporting measure is a median yearly cross-model correlation of 0.1899 for net Sharpe structure across 19 years.

The volatility-scaling appendix puts the XGB result under greater pressure. Inverse 30-day volatility scaling of stock weights takes the XGB baseline to 0.8078, above every unscaled XGB intervention. Once scaling is in place, model-specific XGB gains narrow to +0.0161 and -0.0076. Stabilised cross-model scaling still contributes +0.0894, reaching 0.8972 at 5%. That surviving gain deserves credit. It also comes through gross Sharpe and depends on FFN attributions, even though FFN gross-Sharpe attributions show little year-to-year persistence (median 0.0705, insignificant). The cross-model evidence rests on 19 annual updates.

Thin edges, many arms

Absolute returns are small. Annualised volatility is about 4 to 5%, with baseline net means of 2.55% and 2.65%. Gross five-factor alphas have t statistics of 3.19 and 4.44; baseline net alphas have t statistics of 1.32 and 1.11. The best interventions reach t of 2.35 for FFN and 1.97 for XGB. Main results use a flat 5bp charge per unit of turnover. We found no charge for market impact, borrow or financing in the cost model. The authors say the liquid large-cap universe "reduces concerns about trading frictions and market impact". With the FFN trading 26.70% daily, that assumption has force: at 5bp, costs take 3.36 points from its 6.01 gross points a year.

Table 7 and the appendix sign and rank table together cover 24 intervention arms, spanning two models, four update rules and three signal transforms. The paper also examines volatility-scaled, linear-model, top-K, quantile and regime variants. The authors fix η = 0.5 and the [0, 3] bounds; we did not find an account of how those settings were chosen. They test improvements arm by arm. We did not find a reality-check or deflated-Sharpe adjustment, though White, Hansen and Bailey and López de Prado appear in the references. A t of 1.97 would be the first result at risk under such a correction. There is also context missing for the 9.6% of FFN feature-years with significant net attributions: chance alone yields 5% under a 5% two-sided test. We did not find a selection date or criteria for the 346 stocks.

The authors acknowledge that first-order effects miss interactions when many exposures change together, and that attributions may depend on regime. Those concerns are secondary to the FFN cost-control comparison.

Our 2020 to 2024 FFN run lost 24%

The following figures come from our own backtest, run from January 2020 to July 2024, of the headline stabilised model-specific FFN arm. It lost 24.24% and produced a Sharpe of -0.82. Volatility was 6.59%, against the paper's 5.00% for this arm, so leverage does not explain the loss. The authors report 0.8250 for the arm over 2006 to 2024. Our Sharpe has the opposite sign and is 1.6 lower. These are results from different setups.

Our inputs depart substantially from theirs. We used seven price-derived features instead of eighteen, omitting the OU and regime signals. Among the omissions is prob_signal, the paper's strongest positive net contributor for FFN. The features left in our run lean toward residual measures such as pre_res and pred_res, which the paper associates with net-Sharpe losses through turnover. Our residual calculation removes an intercept and an equal-weighted market loading only. The book's beta to SPY was 0.05, indicating that the market leg was neutralised. Size, value and profitability exposure likely remained in the residuals during the 2020 to 2022 style swings; those unhedged style legs are the likely source of further damage. We did not implement the paper's stock-date SHAP propagation either. Consequently, the multipliers we compounded, bounded up to 3, were not its signal and could have increased costly features rather than suppressed them.

Two other possible contributors remain unverified. We charged $0.004 per share with a $1 order minimum across 377,462 orders. That could exceed 5bp per unit of turnover, although we cannot check the direction. Our yearly top-346 capitalisation screen may also select different stocks from the paper's undisclosed list. Over a 4.5-year window, Sharpe has a standard error near 0.45. We cannot fully account for the gap with the evidence available. This run is one automated pass on our implementation, rather than a verdict on the authors' work.

A direct cost-control comparison would move us toward the paper's interpretation. Run a turnover-penalised or smoothed FFN at 13.02% daily turnover. If its net Sharpe still falls clearly short of 0.8250, the attributions have earned credit beyond slowing the book.

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.

For each calendar year, screen the top 346 eligible non-ADR stocks by capitalization.
For each completed walk-forward vintage:
  Fit price-derived market loadings and construct seven lagged residual/price features.
  Train XGBoost and a four-layer ReLU network on the trailing training window;
  select hyperparameters on the following completed validation window.
  Derive validation-period attribution signals; form bounded, magnitude-based
  model-specific and cross-model feature-exposure multipliers.
  Freeze model parameters and multipliers for the subsequent trading vintage.
At each eligible close, apply the selected arm's multipliers to available features;
project model allocations off the intercept and market loading, normalize stock
weights to unit L1, and submit long/short market-on-close trades. Skip an
undefined or singular new allocation; account for actual holdings and trades.
Track unchanged and intervention arms as comparable diagnostic books.

The specified executed arm is the stabilized, model-specific neural-network arm; the other arms are shadow diagnostics.