# HV-RSI — Short-Term Mean Reversion — System Test A survivorship-bias-free evaluation of Glenn Osborne's HV-RSI short-term mean-reversion system on the S&P 500, on split- and dividend-adjusted prices. The full write-up — the cash-matched random-portfolio skill test, the in/out-of-sample work, the capital-efficiency levers, metrics-by-lookback, the sizing out-of-sample test, exposure analysis, and the annotated sample chart — is the [**Deep Dive (`index.html`)**](index.html), which is the authoritative version. This file is the headline summary. ## What it is Buy a strong stock (above its 150-day SMA) that closes at fresh short-term lows two days running, via a limit order 3% below the close (filled only if the next day's low reaches it); hold up to 20 concurrent slots at 10% each; exit on a close above the prior day's high (the bounce) or a 5-trading-day time stop. ## Setup - **Universe:** point-in-time, survivorship-bias-free S&P 500 membership (~959 ever-members). - **Window:** 2005-01-03 → 2026-05-15 (21.4 years). Starting capital $100,000. - **Prices:** split- and dividend-adjusted (ratio reconstruction from adjusted close) before any signal, fill price, or P&L. - **Disclosure / OOS pivot:** specified by Glenn Osborne January 2025 (author states 2021 conception); conservative OOS pivot 2025. The 2005–17 / 2018–26 split is a temporal-stability check, separate from the disclosure pivot. - Commissions, slippage, and interest on idle cash are not modeled. ## Headline results | Metric | HV-RSI system | Buy & hold SPY | |---|---|---| | CAGR (raw, 0% on cash) | 4.02% | 10.88% | | Exposure-adjusted return (in-market only) | ~11.0% | 10.88% | | Average capital deployed | ~7.7% | 100% | | Time in market (days holding ≥1 position) | 37.8% | 100% | | Max drawdown | −13.35% | −55.19% | | Win rate / profit factor | 65.0% / 1.58 | — | | N trades / avg hold | 1,096 / 3.9 trading days | — | | Final equity ($100k) | $232,089 | $908,276 | ## Findings - **Capital-light by design.** The book holds a position on ~38% of trading days and deploys ~8% of capital on average. Raw CAGR is 4.0%, but measured over time-in-market only the deployed slice compounds at ~11%/yr, at a −13.4% maximum drawdown against the index's −55%. - **The signal separates from random.** Cash-matched monkeys (identical machinery, random selection) cluster near zero on risk-normalized CAR25 (median ≈ 0); HV-RSI clears 100% of the 40 seeds in both windows, with each monkey deploying 4–8× more capital at a lower win rate (~57–58% vs 65%). - **It holds up out-of-sample on large caps.** S&P 500 win rate flat (64.9% → 64.9%) and profit factor improves (1.55 → 1.61) from the 2005–17 window to 2018–26; CAR25 +4.16% → +6.39%. A small-cap (Russell 2000) cross-check on adjusted data is a planned next test. - **Selectivity is the source of the edge.** No tested lever that deploys more capital (looser limit, fewer consecutive-low days, more slots) raises out-of-sample CAR25 above the baseline; loosening admits random-like fills that return near-zero CAR25. - **Sizing out-of-sample.** The Bandy safe-f fraction pins at the leverage ceiling in both windows with drawdown-95 well inside the −20% target — sizing is not the binding constraint; capital deployment is. ## Reproduce ``` python prototype.py --index SPY_SandP_500 --start 2005-01-01 --end 2026-05-15 python run_oos.py --index SPY_SandP_500 python develop_eval.py --monkey-seeds 40 python car25_eval.py python refinements.py ``` The data loader and the survivorship-bias-free dataset are internal to the research platform and not redistributed; the engine and analysis code are complete in `code/`. Results are historical simulations, not investment advice.