Average Drawdown Constraints: private API
PortfolioOptimisers.set_risk_constraints! — Method
set_risk_constraints!(
model::Model,
i,
r::AverageDrawdown,
opt::RiskJuMPOptimisationEstimator,
pr::AbstractPriorResult,
args...;
prefix,
kwargs...
) -> Any
Add average drawdown risk constraints to model.
Calls set_drawdown_constraints! to ensure drawdown variables exist, then creates an observation-weighted mean of the drawdown path as the risk expression.
Mathematical definition
\[\begin{align} \mathrm{ADD}(\boldsymbol{w}) &= \frac{1}{T}\sum_{t=1}^T dd_t\,. \end{align}\]
Where:
- $\mathrm{ADD}(\boldsymbol{w})$: Average drawdown.
- $T$: Number of observations.
- $dd_t$: Portfolio drawdown at time $t$ (see
set_drawdown_constraints!).
where $dd_t$ is the portfolio drawdown at time $t$ (see set_drawdown_constraints!).
Arguments
model::JuMP.Model: The JuMP optimisation model.i: Constraint index for unique variable and constraint naming.r::AverageDrawdown: Average drawdown risk measure instance.opt::RiskJuMPOptimisationEstimator: Risk-based optimisation estimator.pr::AbstractPriorResult: Prior result containing the returns matrixX.
Returns
nothing.
Related