Skip to content
13

OWA Risk Measure Constraints

PortfolioOptimisers.set_owa_constraints! Function
julia
set_owa_constraints!(
    model::Model,
    X::AbstractMatrix{<:Union{var"#s19", var"#s18"} where {var"#s19"<:Number, var"#s18"<:AbstractJuMPScalar}}
) -> Any

Set 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 length T for OWA portfolio returns.

Related

source
PortfolioOptimisers.set_risk_constraints! Method
julia
set_risk_constraints!(
    model::Model,
    i,
    r::OrderedWeightsArray{<:Any, <:Any, <:ExactOrderedWeightsArray},
    opt::RiskJuMPOptimisationEstimator,
    pr::AbstractPriorResult,
    args...;
    kwargs...
) -> Any

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

Returns

  • nothing.

Related

source
PortfolioOptimisers.set_risk_constraints! Method
julia
set_risk_constraints!(
    model::Model,
    i,
    r::OrderedWeightsArrayRange{<:Any, <:Any, <:Any, <:ExactOrderedWeightsArray},
    opt::RiskJuMPOptimisationEstimator,
    pr::AbstractPriorResult,
    args...;
    kwargs...
) -> Any

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

Returns

  • nothing.

Related

source
PortfolioOptimisers.set_risk_constraints! Method
julia
set_risk_constraints!(
    model::Model,
    i,
    r::OrderedWeightsArray{<:Any, <:Any, <:ApproxOrderedWeightsArray},
    opt::RiskJuMPOptimisationEstimator,
    pr::AbstractPriorResult,
    args...;
    kwargs...
) -> Any

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

Returns

  • nothing.

Related

source
PortfolioOptimisers.set_risk_constraints! Method
julia
set_risk_constraints!(
    model::Model,
    i,
    r::OrderedWeightsArrayRange{<:Any, <:Any, <:Any, <:ApproxOrderedWeightsArray},
    opt::RiskJuMPOptimisationEstimator,
    pr::AbstractPriorResult,
    args...;
    kwargs...
) -> Any

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

Returns

  • nothing.

Related

source