OWA Risk Measure Constraints
PortfolioOptimisers.set_owa_constraints! Function
set_owa_constraints!(
model::Model,
X::AbstractMatrix{<:Union{var"#s19", var"#s18"} where {var"#s19"<:Number, var"#s18"<:AbstractJuMPScalar}}
) -> AnySet up the OWA portfolio returns variable and equality constraint.
Introduces a vector variable owa of length T and adds the equality constraint sc * (net_X - owa) == 0. Returns the existing owa if already present.
Arguments
model::JuMP.Model: The JuMP optimisation model.X::MatNum: Asset returns matrix (T × N).
Returns
owa: JuMP vector variable of lengthTfor OWA portfolio returns.
Related
sourcePortfolioOptimisers.set_risk_constraints! Method
set_risk_constraints!(
model::Model,
i,
r::OrderedWeightsArray{<:Any, <:Any, <:ExactOrderedWeightsArray},
opt::RiskJuMPOptimisationEstimator,
pr::AbstractPriorResult,
args...;
kwargs...
) -> AnyAdd Ordered Weights Array (OWA) risk constraints to model.
The exact overloads introduce auxiliary matrices and use a bilinear constraint to encode the exact OWA risk. The approximate overloads use the Wasserstein-based approximation via power cone constraints parameterised by r.alg.p. Range variants compute the difference between two OWA expressions (e.g. tail-Gini range).
Arguments
model::JuMP.Model: The JuMP optimisation model.i: Constraint index for unique variable and constraint naming.r: OWA or OWA-range risk measure instance.opt::RiskJuMPOptimisationEstimator: Risk-based optimisation estimator.pr::AbstractPriorResult: Prior result containing the returns matrixX.
Returns
nothing.
Related
sourcePortfolioOptimisers.set_risk_constraints! Method
set_risk_constraints!(
model::Model,
i,
r::OrderedWeightsArrayRange{<:Any, <:Any, <:Any, <:ExactOrderedWeightsArray},
opt::RiskJuMPOptimisationEstimator,
pr::AbstractPriorResult,
args...;
kwargs...
) -> AnyAdd JuMP risk constraints for OrderedWeightsArrayRange using the exact OWA formulation to model.
Introduces auxiliary matrix variables and a bilinear constraint to encode the exact OWA range risk as the difference between two OWA tail expressions (e.g. tail-Gini range).
Arguments
model::JuMP.Model: The JuMP optimisation model.i: Constraint index for unique variable and constraint naming.r::OrderedWeightsArrayRange{<:Any, <:Any, <:Any, <:ExactOrderedWeightsArray}: The OWA range risk measure with exact formulation.opt::RiskJuMPOptimisationEstimator: Risk-based optimisation estimator.pr::AbstractPriorResult: Prior result containing the returns matrixX.
Returns
nothing.
Related
sourcePortfolioOptimisers.set_risk_constraints! Method
set_risk_constraints!(
model::Model,
i,
r::OrderedWeightsArray{<:Any, <:Any, <:ApproxOrderedWeightsArray},
opt::RiskJuMPOptimisationEstimator,
pr::AbstractPriorResult,
args...;
kwargs...
) -> AnyAdd JuMP risk constraints for OrderedWeightsArray using the approximate OWA formulation to model.
Uses the Wasserstein-based power cone approximation parameterised by r.alg.p to encode the OWA risk as a weighted sum of p-norm terms.
Arguments
model::JuMP.Model: The JuMP optimisation model.i: Constraint index for unique variable and constraint naming.r::OrderedWeightsArray{<:Any, <:Any, <:ApproxOrderedWeightsArray}: The OWA risk measure with approximate formulation.opt::RiskJuMPOptimisationEstimator: Risk-based optimisation estimator.pr::AbstractPriorResult: Prior result containing the returns matrixX.
Returns
nothing.
Related
sourcePortfolioOptimisers.set_risk_constraints! Method
set_risk_constraints!(
model::Model,
i,
r::OrderedWeightsArrayRange{<:Any, <:Any, <:Any, <:ApproxOrderedWeightsArray},
opt::RiskJuMPOptimisationEstimator,
pr::AbstractPriorResult,
args...;
kwargs...
) -> AnyAdd JuMP risk constraints for OrderedWeightsArrayRange using the approximate OWA formulation to model.
Uses the Wasserstein-based power cone approximation parameterised by r.alg.p to encode both OWA tail expressions, then computes their difference as the range risk.
Arguments
model::JuMP.Model: The JuMP optimisation model.i: Constraint index for unique variable and constraint naming.r::OrderedWeightsArrayRange{<:Any, <:Any, <:Any, <:ApproxOrderedWeightsArray}: The OWA range risk measure with approximate formulation.opt::RiskJuMPOptimisationEstimator: Risk-based optimisation estimator.pr::AbstractPriorResult: Prior result containing the returns matrixX.
Returns
nothing.
Related
source