MCPcopy Create free account
hub / github.com/Open-Quant/openquant / AllocError

Enum AllocError

crates/openquant/src/portfolio_optimization.rs:5–13  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3//!
4//! References: Markowitz (1952), *Portfolio selection*; AFML Chapter 16, §16.2 (the problem
5//! with convex portfolio optimisation) and §16.3 (Markowitz's curse) for why these portfolios
6//! are fragile; Stellato et al. (2020), OSQP, for the solver formulation; Michaud (1989) on
7//! error maximisation.
8//!
9//! | `solution` | Problem |
10//! | --- | --- |
11//! | `"inverse_variance"` | `w_i ∝ 1 / Sigma_ii` (correlation ignored), then projected onto the bounds |
12//! | `"min_volatility"` | `min w'Σw` s.t. `1'w = 1`, `l <= w <= u` |
13//! | `"max_sharpe"` | maximise `(mu'w - rf) / sqrt(w'Σw)` s.t. `1'w = 1`, `l <= w <= u` |
14//! | `"efficient_risk"` | `min w'Σw` s.t. `mu'w >= target_return`, `1'w = 1`, `l <= w <= u` |
15//!
16//! The three optimisations are solved as quadratic programmes by an internal dense ADMM

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected