be0ad6cb70
Syntax Tests / build (push) Has been cancelled
Python Virtual Environments / build (push) Has been cancelled
API Tests / build (push) Has been cancelled
Benchmarks / build (push) Has been cancelled
Build & Test Lean / build (push) Has been cancelled
Report Generator Tests / build (push) Has been cancelled
Regression Tests / build (push) Has been cancelled
Research Regression Tests / build (push) Has been cancelled
* Fix MaximumSharpeRatioPortfolioOptimizer to maximize the Sharpe ratio The optimizer fixed the portfolio return to the equal-weight return ((µ − r_f)ᵀw = k) and minimized variance, which collapsed it to a minimum-variance optimizer instead of maximizing the Sharpe ratio. Python now maximizes (µ − r_f)ᵀw / √(wᵀΣw) directly with SLSQP, keeping the budget constraint Σw = 1 and the per-weight bounds. C# applies the Charnes-Cooper substitution y = κw, minimizing yᵀΣy subject to (µ − r_f)ᵀy = 1 and recovering w = y / (1ᵀy); the per-weight bounds are written as linear constraints in y (yᵢ − up·(1ᵀy) ≤ 0, yᵢ − lw·(1ᵀy) ≥ 0) so the problem stays a convex QP and the [lower, upper] range is honored. Both languages reach the same optimum, and the unit-test expectations are updated to the corrected weights. Addresses QuantConnect/Lean#9322 * Add property-based test that the optimizer maximizes the Sharpe ratio * Cover all well-defined cases in the Sharpe optimality test * Bound the optimality test above by the tangency Sharpe ceiling