freebuff-2026-10-19-money-ready-methods.htmlalpha_engine/benchmark_closed_ledger.py (new)The plan named this module; it didn't exist. It benchmarks every closed-pick ledger against (a) its same-window benchmark via a paired bootstrap (publish gate: ≥95% of resamples must beat the benchmark) and (b) a random-entry Monte-Carlo (10k shuffled entries, same hold lengths — percentile ~1.0 = timing edge, ~0.5 = coin flip). Self-contained stdlib stats core; explicit benchmark map (EQUITY/ETF→SPY, CRYPTO→BTC-USD); WR hidden below n=20; fail-soft with reasons, never exceptions.
Verified: tests/test_benchmark_closed_ledger.py 33/33 pass (exit 0) · py_compile clean · real-data run exit 0 → reports/benchmark_ledger_proof_2026-10-19.json (170 ledgers, 67 with full proof, 6 of 170 clear the paired benchmark gate — 4 within the full-proof subset). After external review the random-entry MC was fixed (same-asset, window-matched, direction-aware nulls; the old version sampled BTC/SPY paths and pinned a PF-1.03 ledger at percentile 1.0 — post-fix that ledger scores 0.57, a coin flip; a CI coin-flip gate test guards the fix). Live read-only panel: /audit/benchmark_proof.html. Doc: updates/2026-10-19-task10-benchmark-closed-ledger.md.
reports/METHOD_REVIEW_2026-10-19-what-actually-works.md — all 6 candidate methods audited against repo evidence, every figure machine-verified (checker exit 0: 5 backtest files verbatim, 9 forward cells recomputed, funding/PEAD data files, kill gates). Headline: TSMOM is the only method with Tier-2 WF backtest + PF>1 forward (ETF sleeve n=35, PF 1.76); PEAD is walk-forward-verified but has zero production trades (shadow-only, never wired); funding carry regime inverted (mean −189.7%/yr on the frozen June snapshot); QMJ/value forward PF 0.69–0.88; pairs 1 win of 8; vol premium has no-cost simulation only.
| Ledger | Class | n | PF | Excess vs bench | frac+ | MC pct | Read |
|---|---|---|---|---|---|---|---|
| mega_mutation_macd_rsi_m048 | CRYPTO | 57 | 5.11 | +5.88% | 1.00 | 0.99 | clears both gates — paper-pilot candidate only (class NOT_READY) |
| forex_rsi2_mean_reversion | FOREX | 21 | 3.88 | +0.57% | 1.00 | 0.13 | paired passes, MC fails — random entries would do better |
| gap-and-go-stocks / donchian-stock-breakout | EQUITY | 21/39 | 1.85 | +1.67/+0.82% | 0.79/0.66 | 1.00 | MC passes, paired fails — gains track the window, not skill |
| adx-trend-scout | ETF | 35 | 1.76 | +0.10% | 0.68 | 0.66 | PF alone overrates it — why both tests are mandatory |
Correction after review. An earlier version of this page claimed "two real bugs" in the reference parser. That claim was wrong and is retracted. The reference reads Ken French's current *_CSV.zip files (comma-separated, first block = value-weighted monthly, data through 2026-08). My first run used the older TXT flavor (whitespace-delimited, cp1252, ends 2022-08) — the "bugs" were my data-source mistake, not defects in the reference code. Re-run with the correct CSV zips and the unmodified reference reproduces committed results.csv exactly:
| Strategy | Ref Sharpe | Repro Sharpe | Δ | Verdict |
|---|---|---|---|---|
| Combined inv-vol book | 1.2666 | 1.2666 | 0.0000 | exact · 8.85% / −20.45% |
| QualVal (FF hi-OP+hi-BM) | 0.8589 | 0.8589 | 0.0000 | exact · data ends 2026-08 |
| TSMOM 1/3/12 10%vol (pre-reg) | 0.8563 | 0.8563 | 0.0000 | exact · 7.46% / −25.33% |
| TSMOM WF OOS 2016+ | 0.3148 | 0.3148 | 0.0000 | exact |
| PutWrite (CBOE PUT) | 0.8413 | 0.8413 | 0.0000 | exact · 8.59% / −32.66% |
| Factor ETF blend 2013+ | 0.9557 | 0.9557 | 0.0000 | exact |
| SPY buy&hold | 0.7770 | 0.7770 | 0.0000 | exact |
| Coin-flip control | −0.2829 | −0.2829 | 0.0000 | rejected as control (PF < 1) |
Max |Sharpe Δ| across all 8 rows: 0.0000. The reference numbers stand unchanged — nothing in grokbot needs a fix, and the earlier divergence was purely the data flavor (TXT ending 2022-08 vs CSV zips through 2026-08). The reference’s October 2008 inputs also check out against the CSV tables (OP Hi 30 −15.53%, BE-ME Hi 30 −21.13%, 50/50 blend after costs −18.35%).
pick_scorer.py (Ranked Edge composite) + compounder_screener.py (QMJ/aristocrat screen, basket parameters).feat/combined-book-paper-trade, dabdbcbb69): research dataset harness, reproduction tests (43/43), frozen RULES.md with hash, spec "Draft for user review".*_CSV.zip flavor (comma-separated, current through the latest month). The TXT flavor ends 2022-08 and silently produces stale factor sleeves; it is not a valid substitute.pytest tests/test_benchmark_closed_ledger.py → 33/33, exit 0 (after fixing 3 test bugs found by the first red run — causes fixed, not asserted away; +5 tests added for the MC same-asset fix, incl. the coin-flip gate)py_compile alpha_engine/benchmark_closed_ledger.py → OKdashboard_data.json + live Yahoo prices → exit 0; report strict-JSON verifiedrun.py → exit 0, unmodified reference code, Ken French *_CSV.zip data; 8/8 rows identical to committed results.csv (side-by-side table above)Honesty notes. Nothing here is investment advice. No class is money-ready (0/9, the site's own verdict files say so). The combined book fails the 20% drawdown gate by 0.5pp full-period; it passes only 2016+. Backtests use proxy history (mutual-fund splices, index vs tradable instruments) and one stale factor file — the pilot exists precisely to replace backtest claims with live paper records. Changing any rule restarts the pilot clock.
Generated by the Freebuff agent session of Oct 19, 2026. Related: ← updates index · /audit dashboard.