Flagship · Quantitative ML · Team of two · Mar–Apr 2026
QMML Market Making Hackathon
Nine live rounds: predict a hidden fair value from an anonymised feature table, quote a bid and ask, then trade against whichever team became market maker. Our team, AlphaBetaPhi, finished 2nd of 93 on a simulated bankroll of £100,000 → £305,727, £1,153 behind 1st, and 1st on Sortino ratio.
The edge was decision-making under uncertainty, not exotic models: quoting wide to avoid the market-maker role, sizing up only where cross-validation backed a strong linear fit, and trading the minimum in the six rounds where the signal was weak or absent.
My part Prediction models and model selection, strategy design and the tiered sizing logic (strategy.py), rounds 1, 3, 5, 7 and 9. Kieran Cooke: EDA, feature engineering, Kelly implementation, rounds 2, 4, 6 and 8.
| Stock | Model | R² (in-sample) | Sizing |
|---|---|---|---|
| 1 | Linear regression | 0.98 | Big |
| 2 | Linear regression | 0.96 | Big |
| 3 | Linear regression | 0.93 | Moderate |
| 4 | Gradient boosting | 0.27 | Minimum |
| 5 | Ridge (α = 100) | 0.20 | Minimum |
| 6 | Mean baseline | 0.00 | Minimum |
| 7 | Ridge (α = 100) | 0.04 | Minimum |
| 8 | Ridge (α = 100) | 0.04 | Minimum |
| 9 | Mean baseline | 0.00 | Minimum |
strategy.py. Sizing: big ≈ 15% of bankroll at risk over a 2·RMSE move, moderate ≈ 5%, minimum = 10 shares. Cross-validated RMSE per stock is in the case study.