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

TimeGAN replacement drives the Rachev denominator toward zero

Over half of replacement portfolios have near-zero synthetic downside; every return interval against history includes zero.

2026-10-21 · 8 min read · Portfolio Optimization · The same 12 US-listed ETFs

Reviewing: Rachev-Ratio Portfolio Optimization with TimeGAN Scenarios: Replacement versus Supplementation · Yifan He · Read it on arxiv

Our backtest of this idea

Our automated quick test, not the paper's

TimeGAN Supplementation versus Replacement: Matched ETF Tail-Ratio Experiment

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

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

Run on a different market than the paper

The paper trades bond; we have no price data for it, so the strategy below runs on The same 12 US-listed multi-asset ETFs. instead. The judge did not state why the mechanism survives the swap.

The paper's own figures describe its universe and do not carry over to ours.

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

  • Equation (2): W = {w in R^n : sum_{i=1}^n w_i=1, 0<=w_i<=1}.: Replace the upper target bound by the required 0.10 cap throughout optimization and its supporting searches. (invalidates: Paper-specific optimized target concentration and near-corner incidences; paper-specific selected denominator and candidate-source incidences; all numerical performance, turnover, cost-sensitivity, floor-sensitivity, and allocation-related association results for optimized arms; the paper's paired interval outcomes are not expected replication targets under the changed feasible set)
  • Section 4.2 policy targets: w_AI-RRP(t)=arg max_{w in W} RR_hat(w;D_t_tilde), w_Hybrid-RRP(t)=arg max_{w in W} RR_hat(w;H_t).: Use W_cap, the capped simplex, in both target definitions and in historical-only optimization. (invalidates: The paper's numerical optimized allocations and their realized performance, turnover, floor incidence, and paired comparison outcomes)
  • Section 6.1 floor-band subproblem: max_{w,z,u} a_U^T w-r_f, subject to u_j>=-(w^T r_j-r_f)-z, u_j>=0, z+alpha^-1 sum_j p_j u_j<=epsilon, a_L^T w-r_f<=epsilon, w in W.: Use W_cap in place of W; keep every objective term, probability weight, and CVaR constraint. (invalidates: Paper-specific support-candidate selection frequencies and optimized allocation outcomes)
  • Section 6.1 negative-lower-tail Charnes-Cooper representation: y=tau*w, 1^T y=tau; max a_U^T y-r_f*tau, subject to u_j>=-r_j^T y+r_f*tau-z, u_j>=0, z+alpha^-1 sum_j p_j u_j<=1, a_L^T y+(epsilon-r_f)*tau<=0, y>=0, tau>=0.: Retain the representation and add y_i<=0.10*tau. (invalidates: Paper-specific support-candidate selection frequencies and optimized allocation outcomes)

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.

Dec 2019Total 27.1%Jul 2024
Sharpe
0.48
Total Return
27.1%
Max Drawdown
-26.9%
CAGR
5.5%
Volatility
12.7%
Beta vs SPY
0.52
Trades
570

What the paper reports for its own strategy

  • Historical RRP: 3.48% annualized net return, volatility 9.42%, Sharpe 0.26, realized RR 0.96, MDD 39.59%, daily 5% CVaR 1.45%, turnover 234.29%/yr (Apr 14, 2010–Dec 31, 2025; 10 bp per total traded value)
  • Hybrid eta=1/2, M=756: 2.80% return, volatility 8.98%, Sharpe 0.19, MDD 41.50%, turnover 420.65% (5-seed average; same period and costs)
  • Hybrid eta=1/2, M=1512: 2.81% return, volatility 8.98%, Sharpe 0.20, MDD 41.49%, turnover 403.75% (5-seed average; same period and costs)
  • Hybrid eta=2/3, M=756: 4.25% return, volatility 9.45%, Sharpe 0.34, RR 0.97, MDD 40.19%, turnover 551.07% (5-seed average; same period and costs)
  • Hybrid eta=2/3, M=1512: 3.99% return, volatility 9.50%, Sharpe 0.31, MDD 39.87%, turnover 539.31% (5-seed average; same period and costs)
  • Replacement M=756: 3.53% return, volatility 13.17%, Sharpe 0.22, MDD 39.43%, CVaR 2.10%, turnover 847.97% (5-seed average; same period and costs)

Feed a Rachev-ratio optimizer TimeGAN scenarios that understate losses, and it selects portfolios whose synthetic downside rounds to zero. This occurred in 53.23% of replacement decisions in Yifan He's study. Hybrids retaining historical rows avoided it entirely. A later full-period replay with 756 generated rows put the median replacement objective at 5.74×10^4. Some TimeGAN configurations report higher mean returns, but those figures offer no tradeable edge either: every interval against history includes zero, and variation across seeds exceeds the gains. The author largely acknowledges this.

Can synthetic tails improve a Rachev-ratio allocation?

The Rachev ratio divides expected excess return in the best 5% of scenarios by expected excess loss in the worst 5%. An optimizer maximizing it seeks a large right tail and a small left one. With a 756-day historical window, each 5% tail contains roughly 38 days. Thirty-eight observations give a tail estimate little to work with. A generative model promises to populate those tails with additional plausible scenarios. Better ratio estimates should, in turn, select portfolios that deliver more realized upside per unit of downside.

The test uses 12 ETFs covering US and international equity, Treasuries, corporate credit and commodities. Daily adjusted closes run from April 2007 to December 2025. The out-of-sample period, April 14, 2010 to December 31, 2025, contains 3,955 daily returns and 198 rebalances. Decisions draw on a trailing 756-day window, with 20 trading days between rebalances. Execution follows a day later. Trading costs are 10 bp per unit of value traded.

Each window gets a freshly fitted PyTorch TimeGAN, a recurrent GAN that generates sequences, under five seeds. The implementation uses single-layer GRUs with hidden dimension 32 and 50 epochs per training stage. Generated output is then combined with history: historical rows receive total probability 1−η, and generated rows receive η. AI-RRP, the paper's replacement approach, sets η=1. Hybrid-RRP supplements history at η of 1/2 or 2/3. The author varies the generated row count M (756 or 1,512) independently of η. Separating those choices is the strongest part of the design.

Net annual returns for the historical optimizer were 3.48%, with a Sharpe of 0.26. The η=2/3 hybrids returned 4.25% and 3.99%; the η=1/2 hybrids returned about 2.80%. Replacement delivered 3.53% and 4.03%. The abstract reports larger average net returns for higher-mass hybrids in some configurations. It also says every conditional generated-versus-historical return interval includes zero at the reference block length, and presents the exercise as an illustration of model risk. I accept that framing. The trading question is whether any positive result could hold up in a live book.

The denominator creates an opening

The implementation uses max(|lower-tail mean|, 1e-8) as its denominator. Taking the absolute value gives a lower tail of +0.0001% the same score as one of −0.0001%. The floor limits the ratio to the upper tail times 10^8. Neither feature affects historical or hybrid selections: the paper records zero incidence of near-zero lower tails in those portfolios.

Generated scenarios behave differently. Daily volatility is understated by about 0.50 pp, and 5% marginal tail losses by about 1.50 pp. Mean absolute correlation error is about 0.571. For the representative models, first-lag return autocorrelation reaches 0.900, versus −0.018 in history.

Given those scenarios, the long-only optimizer can select mixes whose worst 5% average almost nothing. A lower-tail mean within 1e-6 of zero appears in 53.23% of selected replacement portfolios; 28.38% strictly bind the floor. Historical and hybrid selections have zero incidence. Of 1,980 replacement decisions, 1,045 fall within 1.0001 times the floor. SLSQP reports successful termination in 42.6% of replacement calls, compared with roughly 99.9 to 100.0% for the other approaches.

The author reads this correctly: "These are features of the implemented objective, not evidence of exceptional investment opportunities." Replacement's 4.03% cannot be attributed to tail estimation on this evidence. The interval against history includes zero. Nor does the floor analysis identify a causal channel.

Extra training improves one diagnostic while worsening another. Across two windows, increasing training from 50 to 200 epochs reduced reconstruction MSE from 0.293 to 0.039 and from 0.319 to 0.031. Correlation error increased from 0.775 to 0.778 and from 0.550 to 0.657. As the paper acknowledges, these two windows leave open the possibility of gains from further training. It never measured floor incidence at 200 epochs.

From 756 to 1,512 rows, the seed spread remains

The paper describes the draw-count distinction well: additional rows change "Monte Carlo resolution, not the weight of the generator or the amount of independent market information." Raising the count from 756 to 1,512 improves replacement returns under all five seeds. Yet the η=2/3 hybrid falls from 4.25% to 3.99%. For hybrids, count effects go both ways.

The best hybrid beats history by 0.77 pp, within a seed range of 2.84 pp. At 756 rows, η=2/3 hybrid returns run from 2.42 to 5.26%. Replacement returns range from 1.55 to 6.14% at 756 rows and from 2.20 to 6.19% at 1,512 rows. At either count, only two of five replacement seeds outperform history. The author notes that these are alternative fits to a shared history. Even this range therefore understates the underlying uncertainty.

The timing offers little comfort to a trader expecting persistence. Gains for the generated configurations cluster in two later episodes. Replacement returned about 5.2 to 5.3% in 2020 to 2021, when history lost 2.01%. During 2022 to 2025, the η=2/3 hybrids earned 6.98% and 5.69%, versus 1.24%. Two windows within a single realized path make a weak foundation for an edge.

What remains after trading costs?

Annual replacement turnover is roughly 840 to 850%, or roughly 67% of the book at each decision. Historical turnover is 234%, equivalent to 18.6% per decision. Repricing the same fixed targets exposes the cost: at 756 rows, replacement drops from 5.31% gross to 1.79% at 20 bp. History declines only from 3.97% to 3.00%.

The model charges a flat fee and allows no market impact. With roughly 840 to 850% annual turnover, fees dominate.

Risk provides no compensation. Replacement at 756 rows has volatility of 13.17%, versus 9.42% for history. Daily 5% loss-CVaR is 2.10%, against 1.45%. Concentration is high as well: held-weight HHI reaches 0.618, and the largest position averages about 71%.

Passive books outperform all 30 generated policies on point estimates. Equal-weight rebalancing earns 6.41% with a Sharpe of 0.50; buy-and-hold earns 8.41% with a Sharpe of 0.62. Even here, historical-minus-equal-weight return intervals include zero at all three block lengths. History records a realized tail ratio of 0.96, compared with 0.91 for buy-and-hold. Its point estimate leads on its own metric, although neither RR contrast with the passive books excludes zero. The author treats this carefully too. At 20-day blocks, the historical-minus-buy-and-hold return interval has an upper endpoint of about −0.000376 pp. At 10-day blocks, it includes zero.

The resampling controls contain the paper's most interesting number. TimeGAN at η=2/3 averages 4.25%, compared with 2.45% for IID resampling of real rows and 2.43% for moving blocks. Against IID, the difference is +1.80 pp [−0.48, 4.28].

A badly calibrated generator outperformed honest resampling of real data on mean return.

That interval still crosses zero. And replacement's CVaR of 2.10% exceeds the 1.50% and 1.46% recorded by the two resampling schemes.

Change the floor before trusting the score

The strongest test in the paper replaces the 1e-8 floor with max(1e-6, 0.1 × historical expected tail loss of the equal-weight portfolio). Each trailing window fixes the floor before returns are observed. Historical and hybrid allocations remain unchanged. Replacement shifts 35.21% of its target weight, while its median objective collapses from 5.74×10^4 to 1.74.

Net return increases by +0.76 pp [−0.75, 2.39]. Daily CVaR climbs from 2.10% to 2.29%. The seed range expands from 1.67 to 6.01% out to 0.88 to 8.89%.

A change to a single scalar in the denominator moves 35.21% of replacement's target weight. The return difference is indistinguishable from zero, and loss-CVaR rises from 2.10% to 2.29%.

The design leaves another gap. The optimizer selects weights before costs are charged, so turnover plays no part in its decision. The paper also acknowledges that its results do not establish invariance to either the 756-day training window or the 20-day decision interval. The design was not preregistered. There is no untouched evaluation sample.

Our ETF adaptation stayed near equal weight under a 10% cap

Bond ETFs (IEF, TLT, LQD, HYG) sit alongside equity and commodity funds in the paper's book. Our multi-asset ETF adaptation used 12 US-listed multi-asset ETFs over January 1, 2020 to July 1, 2024. We charged $0.004 a share, subject to a $1 minimum, and executed at the close auction.

We imposed a 10% cap on every target weight. With 12 funds, the cap requires at least ten holdings and confines every weight to between zero and 10%. Consequently, all arms, historical, hybrid and replacement, stayed near equal weight.

Our book returned 27.14% in total over that period. Sharpe was 0.48, Sortino 0.61 and Calmar 0.20. Max drawdown reached -26.87%, with volatility of 12.70%. These figures belong to a near-equal-weight book and cannot be read as a TimeGAN result. The cap was our specification error. It says nothing about He's method.

The paper's closest reference is equal weight, with a net return of 6.41% and Sharpe of 0.50. Our 0.48 Sharpe is 0.02 lower. These books differ in universe and period (2020 to 2024 versus 2010 to 2025). They also incur different costs (per-share versus 10 bp). They measure different books and should not be ranked against each other.

Only a narrow result would change my mind about the paper: a TimeGAN-minus-resampling interval excluding zero under its historical-scale floor, with turnover near hybrid levels. The source comparisons all use the 1e-8 floor. Until that evidence arrives, the figure to remember is 53.23%.

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.

Resolve exactly EEM, EFA, GLD, HYG, IEF, IWM, LQD, QQQ, SPY, TLT.
Load adjusted actual closes, including sufficient pre-evaluation history.
Intersect price dates and construct intact joint return vectors; do not impute.
Find the first eligible earned-return date t within the evaluation interval:
    require 756 usable returns through t-2, an eligible benchmark,
    and executable actual closes at t-1.
Initialize the previous target to equal weights.
At initial formation and every 20 common dates thereafter:
    use information available through t-2;
    validate the trailing window and lagged DGS3MO reference;
    set each target weight to 0.10, the unique feasible allocation;
    execute at the actual adjusted close of t-1;
    first earn the close-to-close return ending at t.
If required information or execution closes are unavailable:
    skip the scheduled rebalance across arms and retain holdings.
Between decisions, let held weights drift with actual market returns.
Maintain buy-and-hold separately; it does not reset weights.
Report supplied performance net of platform-recalculated commissions.

The intended research objective maximizes the exact-fractional upper/lower 5% excess-tail ratio over weighted historical/generated scenarios. Changing scenario source, mass, sample count, seed or denominator floor cannot change this singleton feasible target. The supplied executable code describes the research layers as degenerate or unavailable, not as demonstrated TimeGAN allocation effects.