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 matrix X.

Returns

  • nothing.

Related

source