Skip to content
13

Ratio Risk Measure

PortfolioOptimisers.RiskRatioRiskMeasure Type
julia
struct RiskRatioRiskMeasure{__T_r1, __T_r2} <: HierarchicalRiskMeasure

Represents a risk ratio risk measure for hierarchical portfolio optimisation.

RiskRatioRiskMeasure computes the ratio of two risk measures, enabling the construction of risk-adjusted performance metrics for use in hierarchical optimisation routines.

Mathematical definition

RiskRatio(x)=r1(x)r2(x).

Where:

  • RiskRatio(x): Risk ratio of the portfolio.

  • x: Portfolio returns vector T×1.

  • r1: First (numerator) optimisation risk measure.

  • r2: Second (denominator) optimisation risk measure.

Fields

  • r1: First risk measure.

  • r2: Second risk measure.

Constructors

julia
RiskRatioRiskMeasure(;
    r1::OptimisationRiskMeasure = Variance(),
    r2::OptimisationRiskMeasure = ConditionalValueatRisk()
) -> RiskRatioRiskMeasure

Keywords correspond to the struct's fields.

Examples

julia
julia> RiskRatioRiskMeasure()
RiskRatioRiskMeasure
  r1 ┼ Variance
     │   settings ┼ RiskMeasureSettings
     │            │   scale ┼ Float64: 1.0
     │            │      ub ┼ nothing
     │            │     rke ┴ Bool: true
     │      sigma ┼ nothing
     │       chol ┼ nothing
     │         rc ┼ nothing
     │        alg ┴ SquaredSOCRiskExpr()
  r2 ┼ ConditionalValueatRisk
     │   settings ┼ RiskMeasureSettings
     │            │   scale ┼ Float64: 1.0
     │            │      ub ┼ nothing
     │            │     rke ┴ Bool: true
     │      alpha ┼ Float64: 0.05
     │          w ┴ nothing

Related

source
PortfolioOptimisers.factory Method
julia
factory(
    r::RiskRatioRiskMeasure,
    args...;
    kwargs...
) -> RiskRatioRiskMeasure{<:OptimisationRiskMeasure, <:OptimisationRiskMeasure}

Create an instance of RiskRatioRiskMeasure by updating both constituent risk measures from the optimisation context.

Forwards all arguments to factory on r1 and r2.

Related

source
PortfolioOptimisers.factory Method
julia
factory(
    r::RiskRatioRiskMeasure,
    w::AbstractVector{<:Union{var"#s20", var"#s19"} where {var"#s20"<:Number, var"#s19"<:AbstractJuMPScalar}}
) -> RiskRatioRiskMeasure{<:OptimisationRiskMeasure, <:OptimisationRiskMeasure}

Create an instance of RiskRatioRiskMeasure updating both constituent risk measures from new portfolio weights w.

Related

source
PortfolioOptimisers.NonOptimisationRiskRatioRiskMeasure Type
julia
struct NonOptimisationRiskRatioRiskMeasure{__T_r1, __T_r2} <: NonOptimisationRiskMeasure

Represents a non-optimisation risk ratio measure.

NonOptimisationRiskRatioRiskMeasure computes the ratio of two risk measures for analysis or reporting purposes. Unlike RiskRatioRiskMeasure, it is not intended for use as an objective or constraint in optimisation routines.

Mathematical definition

RiskRatio(x)=r1(x)r2(x).

Where:

  • RiskRatio(x): Risk ratio of the portfolio.

  • x: Portfolio returns vector T×1.

  • r1: First (numerator) base risk measure.

  • r2: Second (denominator) base risk measure.

Fields

  • r1: First risk measure.

  • r2: Second risk measure.

Constructors

julia
NonOptimisationRiskRatioRiskMeasure(;
    r1::AbstractBaseRiskMeasure = Variance(),
    r2::AbstractBaseRiskMeasure = ConditionalValueatRisk()
) -> NonOptimisationRiskRatioRiskMeasure

Keywords correspond to the struct's fields.

Related

source
PortfolioOptimisers.factory Method
julia
factory(
    r::NonOptimisationRiskRatioRiskMeasure,
    args...;
    kwargs...
) -> NonOptimisationRiskRatioRiskMeasure{<:AbstractBaseRiskMeasure, <:AbstractBaseRiskMeasure}

Create an instance of NonOptimisationRiskRatioRiskMeasure by updating both constituent risk measures from the optimisation context.

Forwards all arguments to factory on r1 and r2.

Related

source