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

The paper never benchmarks its advertised tuning method

A rank-averaged XGBoost+TabNet book made 51.26% in 2025, while the ensemble's decisive regression remains missing.

2026-09-08 · 9 min read · US large-cap equities in a daily cross-sectional long-short portfolio

Reviewing: Tabular Deep Learning for Algorithmic Trading: Cross-Regime Bayesian Optimisation for Equity Signal Generation · Joshua Le Grice · Read it on arxiv

Our backtest of this idea

Our automated quick test, not the paper's

Point-in-Time Cross-Regime XGBoost-TabNet Rank Ensemble

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 (3)

  • The platform does not contain Google Trends or stock-specific search-volume data, so any search-attention features used by the study cannot be reproduced; the implementable version would omit them rather than replace them with an unrelated alternative-data proxy.
  • News and press-release sentiment are not supplied as a precomputed score and must be generated in code from article text or embeddings. Historical news coverage begins around 2020, so a full eleven-year replication using news features is not possible; a 2010-era version would need to exclude news features, while a feature-complete version is limited to roughly 2020 onward.
  • The reported performance is specific to the study's data engineering, universe construction, regime definitions, execution assumptions, and hyperparameter search budget. A platform backtest would test a reconstructed implementation rather than validate the reported return, Sharpe ratio, or alpha.

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 (16)

  • deviation left undescribed by the audit (invalidates: The paper's selected Hybrid n = 6 and its exact Hybrid return, Sharpe, drawdown, precision, alpha, beta, PSR, robustness, and concentration-sensitivity results are not directly comparable if constituent sizes produce a half-integer mean.)
  • deviation left undescribed by the audit (invalidates: Paper alternative-data attribution, feature rankings, Hybrid performance, noise-robustness values, and quarterly precision values are not directly reproducible.)
  • deviation left undescribed by the audit (invalidates: The paper's exact same-day signal timing, reported model probabilities, portfolio holdings, turnover, and all reported performance and attribution results are not directly comparable.)
  • deviation left undescribed by the audit (invalidates: All paper return, risk, precision, attribution, robustness, statistical-test, and model-correlation values describe a different universe and are not directly comparable.)

12 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 696.5%Jul 2024
Sharpe
0.75
Total Return
696.5%
Max Drawdown
-365.1%
CAGR
58.8%
Volatility
207.9%
Beta vs SPY
1.43
Trades
13,306

What the paper reports for its own strategy

  • Hybrid ensemble, OOS 2025 (252 trading days), 2.2bp per trade per leg: total return 51.26%, Sharpe 2.44, Sortino 5.35, Calmar 6.60, max drawdown -7.76%
  • Hybrid ensemble, OOS 2025: annualised CAPM alpha 0.423 (p = 0.011), beta 0.048, Probabilistic Sharpe Ratio 0.960
  • Hybrid final portfolio value approximately $15.1m from $10m initial capital by end of 2025
  • XGBoost, OOS 2025: return 33.61%, Sharpe 1.37, max drawdown -8.58%, CAPM alpha 0.276 (p = 0.171), ending ~$13.4m
  • MLP, OOS 2025: return 17.34%, Sharpe 0.77, drawdown -12.35%
  • TabNet, OOS 2025: return 9.30%, Sharpe 0.44, drawdown -15.24%

A twelve-name daily book lives or dies by selection. This one holds six longs and six shorts at equal weight, stays dollar-neutral and unlevered at 100% gross, enters at the close, and exits after one day.

Market exposure is not the intended source of return. Beta against the S&P 500 is 0.048. Le Grice works with roughly 300 large-cap S&P 500 constituents from January 2015 to December 2025, giving about 750,000 stock-days across ~2,500 trading days and 50 features. Training covers 2015 through 2024. The models then run once over the 252 trading days of 2025.

The headline book returned 51.26% on that holdout, with a Sharpe of 2.44. Its annualised CAPM alpha is 0.423 at p = 0.011. Over the same window, the S&P 500 returned 18.01% at Sharpe 0.77.

Everything rests on how the twelve names are selected.

Next-day returns are converted into a three-class label. Tomorrow's log return is percentile-ranked across the cross-section, with the top decile labelled long, the bottom decile short, and the middle 80% hold. Five model classes learn that label: logistic regression, XGBoost, an MLP, TabNet, and an FT-Transformer. Each model assigns every stock-day a long probability and a short probability.

The headline strategy is called the Hybrid. It takes the daily probabilities from XGBoost and TabNet, converts them into within-day ordinal ranks separately on the long and short sides, then averages those ranks across the two models. The book buys the top six names on the long ranking and shorts the top six on the short ranking. This rank-first construction prevents a poorly calibrated model from controlling the blend. There is no trained meta-learner.

The information case is familiar from cross-sectional equity ML. News diffuses with a delay, while nonlinear interactions among technical, fundamental, macro and alternative inputs can escape a linear model. The lagging rules receive some attention: monthly macro +21 trading days, quarterly fundamentals +63, jobless claims +5, and news and Google Trends +1. A RobustScaler is fitted per fold. Redundant features above a variance inflation factor (VIF) of 10 are removed, although the paper retains a small number of high-VIF features when domain relevance is judged more useful than the collinearity cost.

The advertised contribution concerns hyperparameter choice. Le Grice calls the method cross-regime Bayesian optimisation. Instead of tuning against one validation year, Optuna's Tree-structured Parzen Estimator runs 30 trials per model. Every trial is scored across three expanding-window validation years, 2022, 2023 and 2024, with a one-day purge at each boundary.

The objective gives 0.4 weight to mean return over a 15% target and 0.4 to mean Sharpe over 1.5, then subtracts 0.2 times mean drawdown over 10%. Quadratic penalties apply to any negative-return or negative-Sharpe fold, along with any fold whose drawdown exceeds 15%. Any configuration returning below -20% in any regime receives a hard 10.0 penalty. Portfolio size n is tuned jointly from 5 to 8 and resolves at 6.

Final models are retrained from 2015 to 2024, then run once through 2025, a span of 252 days. Costs are set at 2.2bp per trade and charged per leg on entry and exit. The paper supports the 2.2bp assumption with Hagströmer's 2.84bp mean effective spread for S&P 500 constituents (1.42bp one-way). A passive S&P 500 buy-and-hold supplies the performance benchmark.

One strong holdout year

The Hybrid returned 51.26%, posted a Sharpe of 2.44, and finished near $15.1m from $10m. Its maximum drawdown was -7.76%, the lowest among the models. It was also the only model with significant CAPM alpha: 0.423 annualised, p = 0.011, beta 0.048, PSR 0.960. XGBoost alone produced 33.61% at Sharpe 1.37, with alpha p = 0.171. TabNet returned 9.30% at Sharpe 0.44.

TabNet entered the blend because its errors were relatively orthogonal to XGBoost's. Pairwise CAPM R-squared with XGBoost is 0.028 for TabNet, compared with 0.149 for the MLP. The MLP was rejected despite returning 17.34% against TabNet's 9.30%. Two models carrying alpha p-values of 0.171 and 0.479 become the sole configuration with p = 0.011 when combined.

That aggregation result is the paper's best finding. It concerns model combination more than tabular deep learning. No individual deep architecture beat gradient-boosted trees, a result the paper states directly.

A second finding comes from what fails to separate the strategies. Across all six strategies and all four years in the main table, accuracy stays between 0.786 and 0.799, while F1 ranges from 0.337 to 0.369. The 2025 accuracy spread alone is 0.789 to 0.795, even as annual returns range from -5.69% to 51.26%. Logistic regression and XGBoost are separated by half a point of accuracy, 0.789 versus 0.794, and by 39 points of return.

The hold class accounts for 80% of observations by construction, so a constant-hold predictor scores 80%. The paper says aggregate accuracy "reflects its ability to identify stocks that will not be traded," while per-class precision offers almost as little separation. On the short side, the figures are 0.239 versus 0.240.

Quarterly signal precision provides another strand of generalisation evidence that the headline return conceals. Throughout 2025, the Hybrid remains 13 to 17 percentage points above the 10% random baseline in every quarter. Long precision ranges from 23.06% to 25.78%, and short precision from 24.34% to 26.67%, based on 360 to 384 signals per side per quarter. No quarter collapses. Pairwise KS tests classify the four quarters as distinct environments, so one favourable stretch does not account for the entire signal.

The appendix skips the decisive comparison

The appendix reports pairwise regressions. Regressing Hybrid on MLP yields relative alpha 0.373 (p = 0.015); on TabNet, 0.377 (p = 0.009); and on FT-Transformer, 0.413 (p = 0.005). Those are also the three comparisons named in the accompanying text. A Hybrid-on-XGBoost row is missing.

The table includes only the reverse direction: XGBoost versus Hybrid, with relative alpha -0.022, p = 0.894, beta 0.776, and R-squared 0.388. Under the table's convention, XGBoost contributes nothing beyond the ensemble. The regression that would measure the ensemble's edge over its own tree constituent never appears.

The reported figures still establish two points. First, the series overlap substantially, with R-squared 0.388. Second, the Hybrid surpassed XGBoost by 17.65 points of return and delivered both a higher Sharpe (2.44 versus 1.37) and a smaller drawdown (-7.76% versus -8.58%).

Other tests answer different questions. The Friedman test across all six strategies fails to reject equal rank distributions (p = 0.352). The Hybrid's daily return distribution is also indistinguishable in shape from the index (KS p = 0.339, Wilcoxon p = 0.682). Neither result compares the Hybrid directly with XGBoost. The paper attributes the alpha to a handful of large days, including the April 2025 tariff episode.

The author anticipates the objection in his conclusion: "a strategy can be statistically indistinguishable from its peers and still be the most profitable in production, since classification metrics being consistent across models does not mean the strategies are equivalent in practice." His first point holds. Daily-rank tests provide weak evidence of equivalence, as the documented LogReg-versus-XGBoost gap demonstrates. Production profitability therefore needs separate evidence. The missing Hybrid-on-XGBoost regression would supply precisely that test. We have one year, one holdout, and no direct test of the pair whose separation matters most.

The author's own counterfactual

Adopting the method means paying for extra tuning. TabNet's 30-trial search required 19.6 hours, compared with XGBoost's 10.8 minutes, while the cross-regime objective backtests every trial three times. The paper makes no claim that this cost pays for itself: "No single-regime baseline was tuned under an identical objective function." Its abstract uses matching caution, describing the framework as "associated with out-of-sample generalisation."

That disclosure deserves credit. It also means the headline remains a one-year backtest of a rank ensemble, with the framework's incremental value left unmeasured. The Pagliaro comparison cannot close the gap. It reports Sharpe 1.18 for a regime-aware LightGBM framework using different data and a different period.

The regime certification carries less information than its framing suggests. Every pairwise KS test rejects at p < 0.001. Yet the 2023-versus-2024 return statistic is 0.015, and the training-versus-2025 statistic is 0.022. Each test compares two individual years of daily cross-sectional returns, amounting to tens of thousands of stock-days per fold. With a sample that large, those p-values reflect n more than they establish that folds 2 and 3 represent different worlds.

The input-noise exercise is described as gradual deterioration before a threshold. Gaussian noise equal to 5% of each feature's own standard deviation immediately reduces Sharpe from 2.44 to 1.13. At 10% noise, Sharpe rises to 1.53; at 20%, it falls to 0.04; and at 50%, it returns to 0.26. Movement in both directions looks more like a high-variance small-sample surface than a degradation curve. The random-feature null (-8.21%, Sharpe -1.44) does what it should by ruling out backtest mechanics.

The author is candid about deployability. Constituents are identified from the S&P 500 at the end of the sample, which overstates returns relative to a point-in-time universe. The 2.2bp cost excludes stock borrow fees and availability, with the omission most damaging when short signals are strongest. At n = 6, the portfolio breaches conventional issuer concentration limits. The N = 3 Sharpe peak is uninvestable, and market impact remains unmodelled.

Reported figures represent the best of about 161 trialled configurations. The Deflated Sharpe Ratio could not be calculated because per-trial Sharpes were not retained. PSR 0.960 should therefore be treated as an upper bound.

Our reconstruction breaks before comparison

Our figures need a disclosure first: we cannot reproduce the feature set. Google Trends and stock-specific search-volume data were unavailable, so we dropped those inputs instead of substituting proxies. The supplied news sentiment had no score. We built one in code using a different vendor from the paper's Bloomberg firm-level feed. Our news history begins around 2020, ruling out the eleven-year panel.

Only the 63-day fundamental lag from the paper's schedule was implemented. We also skipped both the paper's ensemble selection and its Optuna search, hardcoding XGBoost plus TabNet instead. These results test a reconstruction rather than the paper's result.

Our run spans 2020-01-02 to 2024-07-01 and uses an annually rebuilt point-in-time top 300 by market cap. It returned 6.96% in total with a Sharpe of 0.75. For the Hybrid on its 2025 holdout, the paper reports 51.26% and 2.44. The pairs are measuring different setups: the periods do not overlap, the universes and feature matrices differ, and our side performed no hyperparameter search.

Our risk figures are worse than useless. Volatility was 207.88%, beta to SPY was 1.43, and maximum drawdown reached -365.10%. A solvent dollar-neutral book running at 100% gross cannot produce those figures. Stored daily returns also sum to 696%, against the reported 6.96% total. Our return aggregation and exposure accounting conflict internally. Until that is repaired, our Sharpe, drawdown and beta cannot support a comparison.

The return level is easier to interpret, though still thin. Win rate was 50.65%. Profit factor was 1.06.

Period choice explains some of the shortfall. Our window averages COVID, the 2022 bear, and the 2023-24 bull, whereas the paper's headline covers one favourable year that includes the April tariff shock. The Hybrid's in-sample fold returns were 5.92% in 2022, 3.61% in 2023, and 25.99% in 2024. Those figures sit far nearer our 6.96% than the headline 51.26%.

Universe construction matters too. We rebuild membership annually, removing the survivorship that the paper acknowledges inflates its result. Missing features and the omitted selection step could also account for part of the gap, since the configuration earning 51.26% emerged from a search we did not run. The available evidence cannot fully explain the difference, and most of it speaks to our implementation.

One experiment would change my view of the framework: use the same 30-trial budget, the same search space and the same objective under single-regime validation, then evaluate on the same holdout. Le Grice identifies that experiment as the direct extension. Until it is run, and until someone regresses the Hybrid on XGBoost, the evidence supports a twelve-name daily rank ensemble with one strong year and an untested margin over its best constituent.

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. Annually identify the point-in-time top 300 stocks by market capitalization.
2. Apply the sample-wide required-price completeness rule; do not impute prices.
3. Build features using only information available by the signal as-of time:
   - lag price-derived inputs to the previous completed trading day;
   - shift quarterly fundamentals by 63 trading days, check publication time when available,
     and forward-fill only within ticker;
   - aggregate weekend news into the next trading day and assign zero only for no coverage.
4. For each stock-day, calculate next-day log return and its percentile rank within the
   eligible cross-section. Label ranks below 0.10 Short, above 0.90 Long, and the rest Hold.
5. Use expanding validation folds with a one-trading-day purge. Optimize XGBoost and
   TabNet hyperparameters and portfolio size n in [5, 8] using the cross-regime portfolio
   objective rather than classification accuracy.
6. Fit the selected models with class balancing and early stopping. The intended hybrid
   score averages the models' within-day ordinal ranks separately for Long and Short;
   the operative specification does not uniquely bind this aggregation rule.
7. Each day, rank stocks by the hybrid Long and Short scores. Buy the top n Long names
   and short the top n Short names, equal-weighting each side at 50% of capital.
8. Rebalance market-on-close at 100% gross exposure. Charge 2.2 bp on each one-way
   changed-notional leg; a directional flip pays an exit and an entry leg.
9. Report the unbuffered reference portfolio separately from the extension that retains
   positions while they remain within n + 2 of their directional ranking.