Refresh production baseline numbers in the README
The baseline table and promotion evidence still carried pre-primary-target-floor figures. Re-derived every number from the 2026-07-11 run, the first baseline measured after the 20% probability floor pruned lottery targets (1,428 -> 1,089 qualified). The promotion evidence table also claimed the promoted book beat legacy on "CAGR, Sharpe, and drawdown". That no longer holds: legacy residual 80 + hold now has the shallowest drawdown (-15.8% vs -21.4%). Production still wins on Sharpe, so the promotion stands, but the text now says so honestly rather than implying a clean sweep. Also documents the primary-target reach-probability floor in the gate description, which shipped in c7a198b/8f41143 but never reached the README. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -33,12 +33,12 @@ Fundamentals (weekly, early Monday) · Alerts (hourly, Telegram) · Backtest (we
|
|||||||
|
|
||||||
1. **Composite score** — technical, S/R-quality, sentiment, fundamental and momentum sub-scores (0–100) combine into a weighted composite (weights configurable; missing dimensions re-normalize).
|
1. **Composite score** — technical, S/R-quality, sentiment, fundamental and momentum sub-scores (0–100) combine into a weighted composite (weights configurable; missing dimensions re-normalize).
|
||||||
2. **Setups** — the scanner builds long/short setups with ATR stops and S/R targets, then adds a confidence score, conflict flags and a target reach-probability.
|
2. **Setups** — the scanner builds long/short setups with ATR stops and S/R targets, then adds a confidence score, conflict flags and a target reach-probability.
|
||||||
3. **Activation gate** — a setup *qualifies* only if it clears the R:R floor **and** ranks in the top residual-momentum percentile of the universe (the validated edge is long-only; the confidence floor was ablated to zero effect and defaults off).
|
3. **Activation gate** — a setup *qualifies* only if it clears the R:R floor, ranks in the top residual-momentum percentile of the universe, **and** its primary target carries at least a 20% reach-probability (the validated edge is long-only; the confidence floor was ablated to zero effect and defaults off).
|
||||||
4. **Top pick** — qualified setups are ordered by the production rank: 80% residual momentum percentile + 20% 6-month realized-volatility percentile. The #1 is highlighted on the Dashboard and labelled on the ticker page.
|
4. **Top pick** — qualified setups are ordered by the production rank: 80% residual momentum percentile + 20% 6-month realized-volatility percentile. The #1 is highlighted on the Dashboard and labelled on the ticker page.
|
||||||
|
|
||||||
## Strategy Status — What's Validated and What Isn't
|
## Strategy Status — What's Validated and What Isn't
|
||||||
|
|
||||||
**Read this before touching scoring, gating, or setup logic.** The platform measures itself — a weekly-replay backtest plus a factor rank-IC harness (`app/services/backtest_service.py`) — and the verdicts below come from those reports (June 2026, ~5 years of OHLCV), not from opinion.
|
**Read this before touching scoring, gating, or setup logic.** The platform measures itself — a weekly-replay backtest plus a factor rank-IC harness (`app/services/backtest_service.py`) — and the verdicts below come from those reports (latest run July 2026, ~5 years of OHLCV), not from opinion.
|
||||||
|
|
||||||
| Component | Verdict | Evidence |
|
| Component | Verdict | Evidence |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
@@ -54,30 +54,32 @@ Caveats on the momentum result: in-sample, roughly one market regime, costs/slip
|
|||||||
|
|
||||||
### Current production baseline
|
### Current production baseline
|
||||||
|
|
||||||
Use this as a regression guardrail for future strategy changes, not as a return promise. Backtest run: local production SQLite snapshot, 506 tickers, weekly cadence, 30-trading-day horizon, 2022-06-28 → 2026-07-01, 0.1% per-side costs, price-only SPY benchmark.
|
Use this as a regression guardrail for future strategy changes, not as a return promise. Backtest run: local production SQLite snapshot, 506 tickers, weekly cadence, 30-trading-day horizon, 2022-06-28 → 2026-07-02, 0.1% per-side costs, price-only SPY benchmark. Numbers below are the 2026-07-11 run (`reports/backtest-20260711-prod-baseline.json`) — measured *after* the primary-target probability floor shipped, which pruned lottery-target setups (1,428 → 1,089 qualified) and lifted Sharpe on all three promotion contenders.
|
||||||
|
|
||||||
| Item | Current baseline |
|
| Item | Current baseline |
|
||||||
|---|---|
|
|---|---|
|
||||||
| Strategy version | `residual_highvol_80_20_atr_trail3_v1` |
|
| Strategy version | `residual_highvol_80_20_atr_trail3_v1` |
|
||||||
| Production gate | Long-only, residual 12-1 momentum percentile >= 80, R:R floor on, NEUTRAL excluded, confidence floor effectively off |
|
| Production gate | Long-only, residual 12-1 momentum percentile >= 80, R:R floor on, primary-target reach-probability >= 20%, NEUTRAL excluded, confidence floor effectively off |
|
||||||
| Production rank | 80% residual momentum percentile + 20% 6-month realized-volatility percentile |
|
| Production rank | 80% residual momentum percentile + 20% 6-month realized-volatility percentile |
|
||||||
| Exit | Initial ATR stop plus 3x ATR trailing stop, max 30 trading days |
|
| Exit | Initial ATR stop plus 3x ATR trailing stop, max 30 trading days |
|
||||||
| Portfolio CAGR | +44.4% |
|
| Portfolio CAGR | +50.4% |
|
||||||
| Portfolio total return | +336.6% vs SPY +95.7% |
|
| Portfolio total return | +413.8% vs SPY +95.7% |
|
||||||
| Max drawdown | -23.8% |
|
| Max drawdown | -21.4% |
|
||||||
| Sharpe | 1.72 daily, annualized |
|
| Sharpe | 2.04 daily, annualized |
|
||||||
| Trades | 376 |
|
| Trades | 320 |
|
||||||
| Average hold | 14.7 trading days |
|
| Average hold | 15.3 trading days |
|
||||||
|
|
||||||
Promotion evidence from the same snapshot:
|
Promotion evidence from the same snapshot:
|
||||||
|
|
||||||
| Candidate | CAGR | Max DD | Sharpe | Trades | Read |
|
| Candidate | CAGR | Max DD | Sharpe | Trades | Read |
|
||||||
|---|---:|---:|---:|---:|---|
|
|---|---:|---:|---:|---:|---|
|
||||||
| Legacy residual 80 + 30d hold | +34.8% | -24.4% | 1.51 | 339 | Previous production baseline |
|
| Legacy residual 80 + 30d hold | +49.6% | -15.8% | 2.02 | 300 | Previous production baseline. Still the shallowest drawdown of the three |
|
||||||
| Residual/high-vol 80/20 + 30d hold | +39.2% | -23.9% | 1.55 | 345 | Better entry rank, slightly lower drawdown |
|
| Residual/high-vol 80/20 + 30d hold | +51.9% | -22.2% | 2.00 | 303 | The vol tilt buys CAGR and pays for it in drawdown |
|
||||||
| Residual/high-vol 80/20 + 3x ATR trail | +44.4% | -23.8% | 1.72 | 376 | Promoted: better CAGR, Sharpe, and drawdown |
|
| Residual/high-vol 80/20 + 3x ATR trail | +50.4% | -21.4% | 2.04 | 320 | Promoted: best Sharpe. The ATR trail recovers part of the drawdown the vol tilt costs |
|
||||||
| Pure high-vol 80 + 30d hold | +37.7% | -37.6% | 1.22 | 491 | Rejected: standalone volatility was too volatile |
|
| Pure high-vol 80 + 30d hold | +31.6% | -34.8% | 1.12 | 476 | Rejected: standalone volatility was too volatile |
|
||||||
| Low-vol 80 + 30d hold | +0.4% | -23.1% | 0.09 | 257 | Rejected: no useful edge |
|
| Low-vol 80 + 30d hold | +2.7% | -19.5% | 0.29 | 240 | Rejected: no useful edge |
|
||||||
|
|
||||||
|
Read the top three honestly: the production book wins on Sharpe, not on every axis. The 80/20 vol tilt buys ~2pp of CAGR over the legacy residual-only book but costs ~6pp of drawdown, and the ATR trail hands part of that drawdown back. If drawdown ever matters more than risk-adjusted return here, legacy residual 80 + hold is the row to revisit.
|
||||||
|
|
||||||
The conclusion is not "trade high volatility alone." Keep residual momentum as the entry gate, use realized volatility only as a small ranking tilt, and add the ATR trail as defensive exit discipline.
|
The conclusion is not "trade high volatility alone." Keep residual momentum as the entry gate, use realized volatility only as a small ranking tilt, and add the ATR trail as defensive exit discipline.
|
||||||
|
|
||||||
@@ -151,7 +153,7 @@ Corollaries: never let an unvalidated score gate setups; the outcome evaluator m
|
|||||||
- Fundamental data tracking (P/E, revenue growth, earnings surprise, market cap)
|
- Fundamental data tracking (P/E, revenue growth, earnings surprise, market cap)
|
||||||
- 5-dimension scoring engine (technical, S/R quality, sentiment, fundamental, momentum) with configurable weights
|
- 5-dimension scoring engine (technical, S/R quality, sentiment, fundamental, momentum) with configurable weights
|
||||||
- Risk:Reward scanner — long and short setups, ATR-based stops, S/R-based targets, configurable R:R threshold (default 1.5:1)
|
- Risk:Reward scanner — long and short setups, ATR-based stops, S/R-based targets, configurable R:R threshold (default 1.5:1)
|
||||||
- Activation gate — qualifies setups on a residual-momentum percentile floor plus an R:R floor (validated long-only edge)
|
- Activation gate — qualifies setups on a residual-momentum percentile floor, an R:R floor and a 20% primary-target reach-probability floor (validated long-only edge)
|
||||||
- Recommendation layer — directional confidence, conflict detection, per-target reach-probability
|
- Recommendation layer — directional confidence, conflict detection, per-target reach-probability
|
||||||
- Paper trading — take a setup, mark-to-market vs. latest close, auto-close per the exit policy (default: 3x ATR trail with a 30-trading-day max hold; time / percent-trailing / target-stop selectable), realized track record + outcome evaluation
|
- Paper trading — take a setup, mark-to-market vs. latest close, auto-close per the exit policy (default: 3x ATR trail with a 30-trading-day max hold; time / percent-trailing / target-stop selectable), realized track record + outcome evaluation
|
||||||
- Market-regime index + FRED early-warning monitor (VIX, credit spreads); weekly backtest + manual event study
|
- Market-regime index + FRED early-warning monitor (VIX, credit spreads); weekly backtest + manual event study
|
||||||
|
|||||||
Reference in New Issue
Block a user