Hypotheses
Equal-Risk-Contribution Risk Parity of SPY/AGG/GLD(+IBIT point-in-time), Monthly, 8% Volatility Cap (USEQ 1-DAY, long-only)
Faithful port of the risk-parity rule from Edén Wallberg & Karolin (arXiv 2610.36491), §3.2 eq. (5) and §6.2 Tables 10-11 (SPY/AGG/GLD reported SR 0.74, LQ 0.64; with IBIT SR 0.84; unverified). Each month-end compute…
Hypothesis
Faithful port of the risk-parity rule from Edén Wallberg & Karolin (arXiv 2610.36491), §3.2 eq. (5) and §6.2 Tables 10-11 (SPY/AGG/GLD reported SR 0.74, LQ 0.64; with IBIT SR 0.84; unverified). Each month-end compute weights such that every asset contributes the same share of portfolio variance: w_i (Sigma w)_i equal for all i, w > 0, sum w = 1 (the paper solves min 0.5 w'Sigma w - rho*sum(log w) with rho = 1e-5, whose solution normalized to sum 1 is exactly the ERC portfolio; we solve ERC directly with a numpy……Show moreShow less
Faithful port of the risk-parity rule from Edén Wallberg & Karolin (arXiv 2610.36491), §3.2 eq. (5) and §6.2 Tables 10-11 (SPY/AGG/GLD reported SR 0.74, LQ 0.64; with IBIT SR 0.84; unverified). Each month-end compute weights such that every asset contributes the same share of portfolio variance: w_i (Sigma w)_i equal for all i, w > 0, sum w = 1 (the paper solves min 0.5 w'Sigma w - rho*sum(log w) with rho = 1e-5, whose solution normalized to sum 1 is exactly the ERC portfolio; we solve ERC directly with a numpy cyclical coordinate-descent / Newton method, tolerance 1e-10 on the relative risk contributions). Then apply the volatility control theta = min(1, 0.08 / sqrt(w'Sigma w)). Unlike minimum variance, ERC must hold every asset, so the low-volatility AGG cannot dominate (paper's key finding for this method). IBIT.USEQ joins only after 126 sessions of listing history (the paper back-filled it with bitcoin from 2017; we cannot) - stated deviation. Covariance estimator, used by every rule that needs one (paper §4.2 and Appendix A, Table 17): daily simple returns from the 1-DAY USEQ closes; per-asset EWMA volatility with half-life hvar_halflife (paper 42 sessions); standardize each return by the previous day's EWMA vol and clip the standardized value at +/-4 (the paper winsorizes but gives no level: our choice); EWMA second-moment matrix of the standardized returns with half-life hcov_halflife (paper 126), rescaled to unit diagonal = correlation C; Sigma = D_sigma C D_sigma, annualized x252. The paper then fits a k=10 statistical factor model by EM on its 59-ETF universe; with at most 16 assets we use the EWMA matrix directly (the paper's Table 18 reports the simple EWMA estimator within 0.01 Frobenius distance of the factor model and calls it a fully reasonable substitute for small universes) - a named substitution. Only observations up to the decision bar are used. Execution: decisions are made on the close of the LAST session of each calendar month (use src.strategies.helpers.sessions / the platform calendar, never hard-coded dates) and fill at the next session's open (platform next_open_fill on USEQ; the paper trades at the start of day t at the previous close, which is the same information set). Orders are whole-share market orders sized to target_weight x account equity; sells are sent before buys so cash covers the purchases. Leverage 1.0 (the Reg-T 2x margin is NOT used), long-only, no shorts; unallocated capital sits as cash. An asset is investable only once it has >=126 sessions of history (paper H_min) - point-in-time; nothing is bought before it lists.
Analysis
Simple Portfolios that Deliver Consistent Decent Returns
Backtest and paper results are hypothetical. Trading involves risk of loss.