Variance Skew Kurtosis Constraints: private API
PortfolioOptimisers.set_risk_constraints! — Method
set_risk_constraints!(
model::Model,
i,
r::VarianceSkewKurtosis,
opt::RiskJuMPOptimisationEstimator,
pr::AbstractPriorResult,
args...;
prefix,
kwargs...
) -> Any
Build the joint Variance–Skewness–Kurtosis SDP risk constraints for a VarianceSkewKurtosis risk measure.
Constructs the semidefinite lifting variables W1, W2, W3 and the PSD cone constraint that jointly encodes variance, skewness, and kurtosis. Each sub-risk expression is then bounded and registered separately using set_variance_risk_bounds_and_expression!, with the skewness term using a lower bound (flag = false) because higher skewness is preferred. The composite expression scale_vr * vr - scale_sk * sk + scale_kt * kt is stored and passed to set_risk_bounds_and_expression!.
Any prior result is accepted. Both tensors must resolve, on their child or on the prior, and assert_high_order_quantity refuses the measure when either resolves on neither. The three vectorisation matrices come from dup_elim_sum_selector, so a container whose sk and kt children hold their own tensors is buildable against a LowOrderPrior, which already carries the sigma the third child needs.
Arguments
model::JuMP.Model: The JuMP optimisation model.i: Constraint index for unique variable and constraint naming.r::VarianceSkewKurtosis: Composite risk measure.opt::RiskJuMPOptimisationEstimator: Risk-based optimisation estimator.pr::AbstractPriorResult: Prior result. It suppliessigma,skandktwhere the children state none.
Returns
- The composite
vr_sk_kt_riskJuMP expression.
Related