build-unified-features.pyBuilds pre-joined parquet from raw replays
→ unified-features.parquet
ACTIVE
build-full-universe.pyCombines Beat + negatives (shared cols)
→ full-universe-features.parquet
32 FEATS
compute-features-negatives-batched.pyComputes 40 Beat-only features for negatives
→ neg-computed/ (119 cols each)
NEEDS COMBINE
train-all-models.pyOriginal 9-model training pipeline
Filter, Entry, Sizing, Runner, Exit, Post-mig
ACTIVE
retrain-all-full-universe.pyRetrain all models on full universe
32 shared features only
KILLED
simulate-fast.py40-second vectorized simulation
→ backtest.json (dashboard data)
+3,015 SOL
retrain-exit-frame-match.pyExit model experiments (4 variants)
±3f, ±1f, regression, exact
DONE
retrain-sizing-9class.pySizing expanded to 9 classes
81% accuracy on Beat's grid
DONE
retrain-filter-honest.pyValidated filter on 610K random tokens
AUC 1.0 confirmed legit
DONE
sweep-exit-models.py10 variants: v1/v2 × 5 thresholds
Best: v1 at 0.45 (+3,015 SOL)
DONE
sweep-regime.py7 regime re-entry variants
Fixed WARM outperforms regime
DONE
export-models-json.pyExport .pkl → .json for JS inference
5 models exported to live-bot/models/
ACTIVE
precompute-scores.pyScore all 7M frames through all models
→ scored-frames.parquet
ACTIVE