Range Constraints: private API
PortfolioOptimisers.set_risk_constraints! — Method
set_risk_constraints!(
model::Model,
,
r::Range,
opt::RiskJuMPOptimisationEstimator,
pr::AbstractPriorResult,
args...;
prefix,
kwargs...
) -> Any
Add range risk constraints to model.
Calls set_wr_risk_expression! to obtain the worst-realisation variable, then introduces a best-realisation variable br_risk with constraint sc * (br_risk .+ net_X) <= 0, and defines range_risk = wr_risk - br_risk. Returns the existing expression if already present.
Mathematical definition
\[\begin{align} \mathrm{Range}(\boldsymbol{w}) &= \max_t(-\hat{r}_t) - \min_t(-\hat{r}_t) = \mathrm{WR} - \mathrm{BR}\,. \end{align}\]
Where:
- $\mathrm{Range}(\boldsymbol{w})$: Return range.
- $\mathrm{WR} = -\min_t \hat{r}_t$: Worst realisation.
- $\mathrm{BR} = \max_t \hat{r}_t$: Best realisation.
- $\hat{r}_t = \boldsymbol{x}_t^\intercal \boldsymbol{w}$: Portfolio return at time $t$.
where $\mathrm{WR} = -\min_t \hat{r}_t$ and $\mathrm{BR} = -\max_t \hat{r}_t$.
Arguments
model::JuMP.Model: The JuMP optimisation model.r::Range: Range risk measure instance.opt::RiskJuMPOptimisationEstimator: Risk-based optimisation estimator.pr::AbstractPriorResult: Prior result containing the returns matrixX.
Returns
nothing.
Related