q-fin.PMAug 24, 2026
SaveKellyBoost: Growth-Optimal Portfolio Construction with Gradient-Boosted Trees
Abstract
KellyBoost is a single multi-output XGBoost model whose softmax output is the portfolio: with y the vector of per-asset holding-period returns, the training loss is - log(1 + w y), the negative log growth rate, so the fitted model is the growth-optimal (Kelly) allocation conditioned on the features. The objective is exact rather than a surrogate: we derive the gradient, the analytic diagonal Hessian and the full Hessian in closed form, verify them by finite differences, and ship a dependency-free reference engine.
Figures & tables
| Ann. | Ann. | Max | ann. log growth | |||
|---|---|---|---|---|---|---|
| Method | ( , 20d) | return | vol. | Sharpe | DD | vs. KellyBoost (%) |
| KellyBoost (ours) | 0.47 | 6.2% | 23.9% | 0.30 | -46.2% | — |
| MLP, same loss | 0.56 | 7.1% | 20.5% | 0.35 | -55.5% | -0.9 [-9.2, +8.9] |
| Two-stage LGBM + optimizer | 0.82 | 8.2% | 20.9% | 0.40 | -40.4% | -1.9 [-12.3, +10.0] |
| Multiclass surrogate | 0.35 | 4.0% | 19.2% | 0.21 | -42.7% | +2.0 [-5.6, +9.4] |
| MLP, surrogate loss | 0.20 | 2.0% | 21.8% | 0.12 | -47.4% | +4.0 [-5.1, +14.2] |
Table 1: Out-of-sample results on the evaluation segment (2013-01 to 2026-07, 163 monthly decisions, gross of costs). is the mean realized log growth per 20-day decision ( ). Sharpe is daily returns in excess of T-bills, annualized. The last column is the moving-block-bootstrap 95% interval for the difference in annualized daily log growth versus KellyBoost (negative = worse than KellyBoost).
Figure 1: Out-of-sample equity curves (log scale), all methods, evaluation segment. Every learned method is deployed identically: frozen development-tuned parameters, expanding-window refits every 21 trading days, leave-one-out ensemble.
Figure 2: KellyBoost’s deployed allocation over the evaluation segment (committee average). The model was never told what an asset class is — the rotation structure is learned from the features alone.
| Cell (growth surrogate) | ( , 20d) | 95% CI | |
|---|---|---|---|
| Boosted tree, searched | +0.12 | [-0.52, +0.75] | 0.65 |
| Boosted tree, hand-built | +0.07 | [-0.34, +0.45] | 0.63 |
| MLP, searched | +0.37 | [-0.26, +0.99] | 0.87 |
| MLP, hand-built | +0.18 | [-0.32, +0.75] | 0.77 |
| Pooled (four cells) | +0.18 | [-0.11, +0.50] | 0.89 |
Table 2: The loss effect, cell by cell: paired per-decision differences in realized log growth, growth objective minus argmax surrogate, holding the learner class and feature pipeline fixed within each cell ( , 163 decisions). Intervals: circular moving-block bootstrap, block 6 decisions, 10,000 draws. The pooled row averages the four aligned difference series at each decision date, preserving cross-cell correlation.
| Ann. | Ann. | Max | |||||
|---|---|---|---|---|---|---|---|
| Method | Features | ( ) | return | vol. | Sharpe | DD | |
| KellyBoost | hand-built | 174 | 0.39 | 5.7% | 22.9% | 0.28 | -48.3% |
| KellyBoost | searched | 5 | 0.47 | 6.2% | 23.9% | 0.30 | -46.2% |
| MLP, same loss | hand-built | 174 | 0.67 | 8.5% | 19.4% | 0.43 | -40.4% |
| MLP, same loss | searched | 19 | 0.56 | 7.1% | 20.5% | 0.35 | -55.5% |
| Two-stage LGBM + optimizer | hand-built | 174 | 0.38 | 5.2% | 23.8% | 0.26 | -36.2% |
Table 3: What the feature search bought. Hand-built: the 174-column set with random-search hyperparameters (the pipeline as first designed); searched: Section 3.5 . Deployment metrics, .
| Feature | Gain share |
|---|---|
| INTL_Q2Y_SH2P90 | 35.9% |
| WHEAT_Q2Y_RH2P25 | 27.7% |
| COPPER_Q2Y_SWP10 | 22.0% |
| SOYBEAN_Q2Y_RH2P50 | 7.7% |
| XLF_SKEW1Y | 6.7% |
Table 4: KellyBoost’s searched feature list, with each column’s share of the committed fit’s total split gain.
| Dev. score | Ann. | Max | |||
|---|---|---|---|---|---|
| Variant | ( ) | ( ) | return | Sharpe | DD |
| analytic Hessian (model) | 4.19 | 0.47 | 6.2% | 0.30 | -46.2% |
| constant Hessian | 1.43 | 0.67 | 8.3% | 0.63 | -23.6% |
| Hessian | 0.54 | 0.45 | 5.0% | 0.26 | -51.7% |
| one output per tree | 3.50 | 0.65 | 8.8% | 0.40 | -45.7% |
Table 5: Ablations. Dev. score: mean log growth ( ) under the development tuning protocol at the frozen KellyBoost parameters. Deployment columns as in Table 1 , all with .
| Method | Turnover | 0 bps | 5 bps | 10 bps | 20 bps |
|---|---|---|---|---|---|
| KellyBoost (ours) | 7.9x | 6.2% / 0.30 | 5.8% / 0.28 | 5.3% / 0.27 | 4.5% / 0.23 |
| MLP, same loss | 11.8x | 7.1% / 0.35 | 6.5% / 0.32 | 5.9% / 0.30 | 4.6% / 0.24 |
| Two-stage LGBM + optimizer | 16.5x | 8.2% / 0.40 | 7.3% / 0.36 | 6.4% / 0.32 | 4.7% / 0.24 |
| Multiclass surrogate | 13.1x | 4.0% / 0.21 | 3.3% / 0.18 | 2.7% / 0.14 | 1.3% / 0.07 |
| MLP, surrogate loss | 16.8x | 2.0% / 0.12 | 1.2% / 0.09 | 0.3% / 0.05 | -1.4% / -0.03 |
| Unconditional Kelly | 1.8x | 4.1% / 0.22 | 4.0% / 0.21 | 3.9% / 0.21 | 3.7% / 0.20 |
Table 6: Transaction-cost sensitivity: annualized return / excess Sharpe under one-way proportional costs applied to each method’s measured turnover.
More in this topic
Portfolio Optimization
Portfolio optimization selects asset weights to balance expected return, risk, diversification, and trading constraints.
See all 63 papersClassification outperforms regression across matched machine learning models in portfolio construction. A stacking ensemble of gradient boosted tree, random forest, and neural network yields a value-weighted annualized Sharpe ratio of 1.83 for classification and 1.11 for regression. This outperformance persists in multiclass settings, across subsamples, and after transaction costs. Spanning tests show that classification retains economically large alphas after we control for regression, whereas regression alphas shrink substantially once we control for classification. These results indicate that classification extracts more return information than matched regression. Our diagnostics trace classification's advantage to sharper and more precise separation of return deciles.
Decision-Focused Learning for Mean-Variance Portfolio Optimization via KKT-Based Reformulation
Mean-variance portfolio optimization (MVO) is a central framework in data-driven asset management. A widely adopted approach is a two-stage framework that first predicts expected returns and then solves the optimization problem based on these predictions, with the predictive models trained by minimizing prediction errors. However, this objective of prediction is not aligned with the quality of the downstream portfolio decision. Decision-focused learning (DFL), which directly minimizes the downstream decision loss within the learning process, has thus emerged as a promising direction. However, existing DFL approaches to MVO rely on surrogate losses or constraint relaxations for tractability, creating a structural mismatch between predictive model training and the constrained MVO solved at evaluation. We propose a single-level optimization formulation that incorporates the Karush-Kuhn-Tucker (KKT) optimality conditions of the lower-level MVO into the upper-level learning problem. This formulation explicitly preserves the budget and short-sale constraints while remaining tractable for standard nonlinear optimization solvers. Rolling-window experiments on real-world ETF (Exchange Traded Funds) data across two asset universes with different correlation structures show that our method achieved the best performance on multiple investment metrics and also demonstrated performance improvement due to the proposed regularization.
KellyBench: A Benchmark for Long-Horizon Sequential Decision Making
Language models are saturating benchmarks for procedural tasks with narrow objectives. But they are increasingly being deployed in long-horizon, non-stationary environments with open-ended goals. In this paper we introduce KellyBench, an environment for evaluating sequential decision-making in sports betting markets. Agents are placed in a sequential simulation of the 2023-24 English Premier League season and tasked with maximising their long-term bankroll growth. They are given detailed historical data, including advanced statistics, lineups, and public odds. To succeed they must build machine learning models, identify edge in public markets, and adapt as the environment changes over time. We find that all frontier models evaluated lose money on average over the course of the season for five seeds. The best performing model achieves an average return of -8%, and many models experiencing ruin across seeds. To judge strategy sophistication, we use a human expert rubric to grade each model and find their approaches to be unsophisticated compared to human baselines; Claude Opus 4.6 achieves a rubric score of 26.5%, which means there is significant room for improvement. KellyBench is available as an open-access API endpoint at https://openreward.ai/GeneralReasoning/KellyBench.