🤖 AI Summary
This work addresses the misalignment between prediction and decision objectives in sparse tangency portfolio optimization, as well as the NP-hard nature of cardinality constraints. The authors propose an end-to-end decision-focused learning framework that reformulates Sharpe ratio maximization as a convex program compatible with Disciplined Parametrized Programming (DPP). By replacing discrete asset selection with a smooth top-k operator, the approach enables joint differentiable training of prediction, asset screening, and re-optimization. This is the first method to integrate smooth top-k selection with DPP-compatible convex optimization, achieving precise control over portfolio cardinality while preserving end-to-end differentiability. Empirical results demonstrate that the framework significantly improves out-of-sample Sharpe ratios across four major equity markets, outperforming both traditional benchmarks and prediction-oriented methods—particularly in large-scale asset universes.
📝 Abstract
Sparse tangent portfolio optimization aims to learn an interpretable, low-cardinality portfolio in the tangency direction of the mean-variance frontier. However, the associated cardinality-constrained formulation is NP-hard, and standard predict-then-optimize pipelines often misalign forecasting accuracy with downstream portfolio quality. We propose an end-to-end decision-focused learning framework that reformulates Sharpe ratio maximization as a Disciplined Parametrized Programming (DPP)-compliant convex programming layer and replaces discrete selection with a smooth top-$k$ operator enforcing an exact cardinality $k$. This enables gradient flow through prediction, asset selection, and re-optimization, allowing the predictive model to directly optimize portfolio performance. Across four major equity markets, our method achieves competitive and often superior out-of-sample Sharpe ratios compared with historical and prediction-focused baselines, with particularly strong gains in larger asset universes. Our \href{https://github.com/feuerwerksh/Diffble-card-SR}{code} is publicly available.