AI QuantAll research examples

Backtested research example

Covariance-Regret Dual Tilt Allocation on Liquid US Large-Cap Equities

COVARIANCE_REGRET_DUAL_TILT_ALLOCATION
covariance-regretdual-tiltminimum-variance-anchormomentummean-reversionlarge-cap-us-stocksweekly-rebalancevolatility-targetingturnover-constrained

🗓 Backtest period: 2020-01-01..2025-10-08

StartTotal 94.7%End
Max DD -25.1%

Backtest metrics

Sharpe
0.79
Total Return
94.7%
Max Drawdown
-25.1%
CAGR
12.3%
Volatility
20.9%
Trades
16,431

Strategy Card

Covariance-Regret Dual Tilt Allocation on Liquid US Large-Cap Equities — strategy card

Spec ID: spec-covariance-regret-dual-tilt-us-largecap-1785694276 · Generated: 2026-08-02 18:47 UTC

Cluster: Risk Allocation · Sub Cluster: Covariance-Regret Dual Tilt

One-line description

Allocates weekly across 200 liquid US large-cap stocks using a minimum-variance anchor plus covariance-weighted recent-return tilts. The two active directions implement opposite gradient signs: an alpha/momentum sleeve and a regret/contrarian sleeve, then project weights into long-only, capped, volatility-targeted constraints.

Why this trade exists

The strategy is motivated by a covariance-regret framing in which the sensitivity of a linear allocation rule to cross-sectional return/cost covariance is proportional to the covariance matrix. A minimum-variance portfolio is used as the budget-constrained anchor, while recent demeaned returns are transformed by the rolling covariance matrix to emphasize assets whose recent relative moves align with broad covariance structure.

Economically, the alpha-maximizing direction behaves like covariance-weighted momentum, while the opposite sign is intended to behave like covariance-weighted mean reversion. The projection layer turns the theoretical gradient tilt into a tradable long-only portfolio with single-name caps, turnover limits, transaction costs, and volatility targeting.

Algorithm

[code omitted from public view]

Parameters

Param Value Notes
Universe Top 200 US stocks Yearly capitalization screen; ADRs excluded; daily close prices used.
Backtest window 2020-01-01 to 2025-10-08 Daily bars, weekly rebalancing on the last available trading day.
Anchor Minimum variance w_MVP = Sigma^-1 1 / (1' Sigma^-1 1).
Covariance lookback 252 trading days Rolling daily return covariance; minimum history 252 days.
Covariance stabilization 5% diagonal shrinkage; eigenvalue floor 1e-6 Used to stabilize a 200-name covariance inversion.
Recent-return signal 20 trading days Mean recent return minus rolling 252-day mean return.
Step size eta = 1 / spectral_norm(Sigma_hat) Recomputed each rebalance.
Active tilts +eta Sigma x_t and -eta Sigma x_t Alpha-maximizing and regret-minimizing sleeves.
Rebalance frequency Weekly Signals measured through the rebalance close and executed at that close.
Constraints Long-only, max 10% per name Budget projection with residual cash when volatility scaling reduces exposure.
Volatility target 10% annualized ex-ante Risky weights scaled down toward cash if projected volatility exceeds target; no gross leverage above 1.0 in implementation.
Turnover cap 25% one-way per rebalance Euclidean projection toward prior weights when cap is exceeded.
Trading cost 5 bps per dollar traded Strategy-level transaction cost model.
Brokerage assumptions $0.004/share, $1 min/order, max 1% commission No additional slippage bps in the supplied cost block.

Look-ahead audit

# Concern Status
1 Signal/execution timing Signals use data available through the rebalance close and execute at that same close via market-on-close convention.
2 Same-day open execution No same-day open execution is specified for close-derived signals.
3 Rolling return and covariance windows Covariance, mean return, and recent-return features are computed from historical close-to-close returns up to the rebalance date.
4 Universe selection Universe uses a yearly capitalization screen with rebalance_year; researchers should confirm the source table is point-in-time for that year.
5 Missing prices Required close prices are not fabricated; affected symbol orders are skipped.
6 Fundamental data latency No earnings, filings, transcripts, or other event-time fundamentals are used.

Caveats / known limitations

Results

The backtest produced a positive total return of 94.68% with Sharpe 0.79, Sortino 1.19, and profit factor 1.99 over 2020-01-01 to 2025-10-08. Risk was material: realized volatility was 20.90% and max drawdown reached -25.11%, which is high relative to the 10% ex-ante volatility target and suggests realized risk control was imperfect during this sample.

Run diagnostics

Recomputed here from the run's stored daily returns, because every annualized figure in the table above is derived from the LENGTH of that array (years = n / 252). Only total return and max drawdown do not depend on the row count, so when the recomputed and stored values differ by a common factor, those two are the numbers to trust.

Check From the run's own returns Note
Daily-return rows 1,450 1.00x the 1,454 trading days in 2020-01-01..2025-10-08
Distinct dates 1,450 one row per date
Date span 2020-01-02 .. 2025-10-08
Sum of daily returns 94.68% matches the reported total return
Sharpe from these rows 0.79 stored 0.79
Volatility from these rows 20.90% stored 20.90%
Max drawdown from these rows -25.11% stored -25.11%
CAGR from these rows 12.28% stored 12.28%

Backtest metrics snapshot

Metric Value
Total Return 94.68%
Sharpe 0.79
Sortino 1.19
Calmar 0.49
Max Drawdown -25.11%
Volatility 20.90%
Win Rate 56.69%
Profit Factor 1.99
Total Trades 16431
Symbols 200 (AAPL, ABBV, ABNB, ABT, ACN, ADBE, ADI, ADP, ADSK, AJG, +190 more)

Backtests are historical simulations for research purposes only. They are not investment advice and do not guarantee future performance.