Turnover Risk Measure Constraints: private API
PortfolioOptimisers.set_risk_constraints! — Method
set_risk_constraints!(
model::Model,
i,
r::TurnoverRiskMeasure,
opt::RiskJuMPOptimisationEstimator,
::AbstractPriorResult,
args...;
prefix,
kwargs...
) -> VariableRef
Add turnover risk constraints to model.
Introduces a scalar variable turnover_risk and the L1-norm cone constraint [sc * turnover_risk; sc * (w - benchmark * k)] in NormOneCone(1 + N) where benchmark is the reference weight vector from r.w.
Mathematical definition
\[\begin{align} \mathrm{Turnover}(\boldsymbol{w}) &= \lVert \boldsymbol{w} - \boldsymbol{w}_b k \rVert_1\,. \end{align}\]
Where:
- $\mathrm{Turnover}(\boldsymbol{w})$: Portfolio turnover.
- $\boldsymbol{w}$: Portfolio weights vector $N \times 1$.
- $\boldsymbol{w}_b$: Benchmark weight vector.
- $k$: Rebalancing factor (0 or 1).
- $\lVert \cdot \rVert_1$: L1 norm.
where $\boldsymbol{w}_b$ is the benchmark weight vector and $k$ is the budget scaling variable.
Arguments
model::JuMP.Model: The JuMP optimisation model.i: Constraint index for unique variable and constraint naming.r::TurnoverRiskMeasure: Turnover risk measure instance carrying the benchmark weights.opt::RiskJuMPOptimisationEstimator: Risk-based optimisation estimator.
Returns
nothing.
Related