live: train/test wallet-selection study + capital-constrained copy sims

strategy.py (train pre-May-30 / test June1+ on copy-ROI + z + consistency +
diversification) and followability.py (entry-time/lead-time/cadence filter)
surface wallets with real, copyable, out-of-sample edge (49/77 profitable
forward, p=0.011, +23.4% pooled).

pnl_basket.py / pnl_focused.py add $1000 capital-constrained copy sims with
missed-trade accounting: the broad basket loses (can't follow 1,200 trades on
$1k), but 1-2 wallets + a conviction (bet-size) filter clears out-of-sample.
cache.py gains entry-time caching. Findings documented.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
jaxperro
2026-06-18 16:38:41 -06:00
parent 3d0bc7f001
commit 0c7d97c5d0
9 changed files with 2866 additions and 0 deletions
+12
View File
@@ -62,6 +62,18 @@ turn into losers out-of-sample. **Don't copy favorite-riders.** The `value`
archetype (beats underdog prices) is where real alpha may live — test it with
`backtest_june.py value`.
## Strategy backtests
- `strategy.py` — train (pre-May-30) / test (June1+) wallet selection on copy-ROI
+ z + monthly consistency + diversification. → `selection.json`.
- `followability.py` — pull entry timestamps (cached), drop wallets whose edge is
in un-followable fast/live markets, re-rank on followable forward bets. →
`watch_final.json` (the execution-realistic list).
- `pnl_basket.py` / `pnl_focused.py` — $1,000 capital-constrained copy sims with
**missed-trade accounting**. Key result: the broad basket loses on $1k (can't
follow 1,200 trades), but **12 wallets + a conviction (bet-size) filter clears**
out-of-sample. See `../FINDINGS.md`.
## Daily (`daily.sh`)
1. discover (enumerate last 14d) → 2. freshen cache (force-refresh watchlist +