crypto-ml-study
Pre-registered quant research, honest results included
A quantitative research repository following López de Prado's Advances in Financial Machine Learning: dollar bars, CUSUM sampling, triple-barrier labelling and purged, embargoed cross-validation — with every study pre-registered before the data is touched.
- 18+ pre-registered studies
- 0 test-set peeks
- AFML methodology
01
Problem
Most retail "crypto ML" work is leakage with extra steps: labels that see the future, cross-validation that shuffles time, and results reported only when they look good. I wanted a research process I could trust — one where a null result is a valid, published outcome.
02
What I built
- A research repo built on the AFML playbook: dollar bars instead of time bars, CUSUM event sampling, triple-barrier labelling with meta-labelling, and PurgedKFold cross-validation with embargo.
- A pre-registration workflow: each study fixes its hypothesis, features, pass bar and evaluation window in a written spec before any model is fitted.
- Held-out, embargoed test windows and explicit leakage checks that every study must report on.
- A ledger of 18+ completed studies, including the ones that failed their pass bar.
03
Technical decisions
- Frozen pipeline pieces are imported, never copied, so a study cannot quietly diverge from the shared data and labelling code.
- Null results are written up with the same care as positive ones — the rigour is the product, not the Sharpe ratio.
- The repository is private because it contains live research; this page is the public write-up.
04
Results
- 18+ pre-registered studies with documented pass/fail outcomes and leakage sections.
- A reusable, tested feature and labelling pipeline shared across every study.
- Now being extended from spot BTC to Kalshi BTC perpetual markets.
05
What I'd do next
- Extend the study set to Kalshi BTC perpetuals and compare regime behaviour.
- Publish a sanitised subset of the ledger with the pre-registration templates.
- Add walk-forward retraining experiments with explicit drift diagnostics.
Built with
- Python 3.11
- pandas
- NumPy
- LightGBM
- uv