Power Norm X at Risk
PortfolioOptimisers.PowerNormValueatRisk Type
struct PowerNormValueatRisk{__T_settings, __T_slv, __T_alpha, __T_p, __T_w} <: RiskMeasureRepresents the Power Norm Value-at-Risk (PNVaR) risk measure.
PowerNormValueatRisk is a coherent risk measure that generalises EVaR by replacing the exponential moment-generating function with a power-norm. It is parametrised by a power
Mathematical Definition
The PNVaR at level
where
Fields
settings: Risk measure configuration.slv: Solver or vector of solvers for the conic optimisation.alpha: Significance level for the lower tail.p: Power parameter (). w: Optional observation weights.
Constructors
PowerNormValueatRisk(;
settings::RiskMeasureSettings = RiskMeasureSettings(),
slv::Option{<:Slv_VecSlv} = nothing,
alpha::Number = 0.05,
p::Number = 2.0,
w::Option{<:ObsWeights} = nothing
) -> PowerNormValueatRiskKeywords correspond to the struct's fields.
Validation
0 < alpha < 1.p >= 1.If
slvis aVecSlv:!isempty(slv).If
wis notnothing:!isempty(w).
Functor
(r::PowerNormValueatRisk)(x::VecNum)Computes the PNVaR of a portfolio returns vector x.
Arguments
x::VecNum: Portfolio returns vector.
Examples
julia> PowerNormValueatRisk()
PowerNormValueatRisk
settings ┼ RiskMeasureSettings
│ scale ┼ Float64: 1.0
│ ub ┼ nothing
│ rke ┴ Bool: true
slv ┼ nothing
alpha ┼ Float64: 0.05
p ┼ Float64: 2.0
w ┴ nothingRelated
PortfolioOptimisers.PowerNormValueatRiskRange Type
struct PowerNormValueatRiskRange{__T_settings, __T_slv, __T_alpha, __T_beta, __T_pa, __T_pb, __T_w} <: RiskMeasureRepresents the Power Norm Value-at-Risk Range (PNVaRRange) risk measure.
PowerNormValueatRiskRange computes the sum of the lower-tail PNVaR (at level alpha with power pa) and the upper-tail PNVaR (at level beta with power pb).
Mathematical Definition
Fields
settings: Risk measure configuration.slv: Solver or vector of solvers for the conic optimisation.alpha: Significance level for the lower tail.beta: Significance level for the upper tail.pa: Power norm parameter for the lower tail (). pb: Power norm parameter for the upper tail (). w: Optional observation weights.
Constructors
PowerNormValueatRiskRange(;
settings::RiskMeasureSettings = RiskMeasureSettings(),
slv::Option{<:Slv_VecSlv} = nothing,
alpha::Number = 0.05,
beta::Number = 0.05,
pa::Number = 2.0,
pb::Number = 2.0,
w::Option{<:ObsWeights} = nothing
) -> PowerNormValueatRiskRangeKeywords correspond to the struct's fields.
Validation
0 < alpha < 1,0 < beta < 1.pa > 1,pb > 1.If
slvis aVecSlv:!isempty(slv).If
wis notnothing:!isempty(w).
Functor
(r::PowerNormValueatRiskRange)(x::VecNum)Computes the PNVaR Range of a portfolio returns vector x.
Arguments
x::VecNum: Portfolio returns vector.
Examples
julia> PowerNormValueatRiskRange()
PowerNormValueatRiskRange
settings ┼ RiskMeasureSettings
│ scale ┼ Float64: 1.0
│ ub ┼ nothing
│ rke ┴ Bool: true
slv ┼ nothing
alpha ┼ Float64: 0.05
beta ┼ Float64: 0.05
pa ┼ Float64: 2.0
pb ┼ Float64: 2.0
w ┴ nothingRelated
sourcePortfolioOptimisers.PowerNormDrawdownatRisk Type
struct PowerNormDrawdownatRisk{__T_settings, __T_slv, __T_alpha, __T_p, __T_w} <: RiskMeasureRepresents the Power Norm Drawdown-at-Risk (PNDDaR) risk measure.
PowerNormDrawdownatRisk applies the Power Norm Value-at-Risk framework to the absolute drawdown series of portfolio returns.
Mathematical Definition
Define the absolute drawdown series:
The Power Norm Drawdown-at-Risk is the PNVaR of the drawdown series:
Fields
settings: Risk measure configuration.slv: Solver or vector of solvers for the conic optimisation.alpha: Significance level for the lower tail.p: Power parameter (). w: Optional observation weights.
Constructors
PowerNormDrawdownatRisk(;
settings::RiskMeasureSettings = RiskMeasureSettings(),
slv::Option{<:Slv_VecSlv} = nothing,
alpha::Number = 0.05,
p::Number = 2.0,
w::Option{<:ObsWeights} = nothing
) -> PowerNormDrawdownatRiskKeywords correspond to the struct's fields.
Validation
0 < alpha < 1.p >= 1.If
slvis aVecSlv:!isempty(slv).If
wis notnothing:!isempty(w).
Functor
(r::PowerNormDrawdownatRisk)(x::VecNum)Computes the PNDDaR of a portfolio returns vector x.
Arguments
x::VecNum: Portfolio returns vector.
Examples
julia> PowerNormDrawdownatRisk()
PowerNormDrawdownatRisk
settings ┼ RiskMeasureSettings
│ scale ┼ Float64: 1.0
│ ub ┼ nothing
│ rke ┴ Bool: true
slv ┼ nothing
alpha ┼ Float64: 0.05
p ┼ Float64: 2.0
w ┴ nothingRelated
PortfolioOptimisers.RelativePowerNormDrawdownatRisk Type
struct RelativePowerNormDrawdownatRisk{__T_settings, __T_slv, __T_alpha, __T_p, __T_w} <: HierarchicalRiskMeasureRepresents the Relative Power Norm Drawdown-at-Risk (Relative PNDDaR) risk measure for hierarchical optimisation.
RelativePowerNormDrawdownatRisk applies the Power Norm Value-at-Risk framework to the relative (compounded) drawdown series of portfolio returns.
Mathematical Definition
Define the relative drawdown series:
The Relative Power Norm Drawdown-at-Risk is the PNVaR of the relative drawdown series:
Fields
settings: Hierarchical risk measure configuration.slv: Solver or vector of solvers for the conic optimisation.alpha: Significance level for the lower tail.p: Power parameter (). w: Optional observation weights.
Constructors
RelativePowerNormDrawdownatRisk(;
settings::HierarchicalRiskMeasureSettings = HierarchicalRiskMeasureSettings(),
slv::Option{<:Slv_VecSlv} = nothing,
alpha::Number = 0.05,
p::Number = 2.0,
w::Option{<:ObsWeights} = nothing
) -> RelativePowerNormDrawdownatRiskKeywords correspond to the struct's fields.
Validation
0 < alpha < 1.p >= 1.If
slvis aVecSlv:!isempty(slv).If
wis notnothing:!isempty(w).
Functor
(r::RelativePowerNormDrawdownatRisk)(x::VecNum)Computes the Relative PNDDaR of a portfolio returns vector x.
Arguments
x::VecNum: Portfolio returns vector.
Examples
julia> RelativePowerNormDrawdownatRisk()
RelativePowerNormDrawdownatRisk
settings ┼ HierarchicalRiskMeasureSettings
│ scale ┴ Float64: 1.0
slv ┼ nothing
alpha ┼ Float64: 0.05
p ┼ Float64: 2.0
w ┴ nothingRelated
PortfolioOptimisers.PRM Function
PRM(
x::AbstractVector{<:Union{var"#s19", var"#s18"} where {var"#s19"<:Number, var"#s18"<:AbstractJuMPScalar}},
slv::Union{Solver, AbstractVector{<:Solver}}
) -> Union{Float64, Vector{Float64}}
PRM(
x::AbstractVector{<:Union{var"#s19", var"#s18"} where {var"#s19"<:Number, var"#s18"<:AbstractJuMPScalar}},
slv::Union{Solver, AbstractVector{<:Solver}},
alpha::Number
) -> Union{Float64, Vector{Float64}}
PRM(
x::AbstractVector{<:Union{var"#s19", var"#s18"} where {var"#s19"<:Number, var"#s18"<:AbstractJuMPScalar}},
slv::Union{Solver, AbstractVector{<:Solver}},
alpha::Number,
p::Number
) -> Union{Float64, Vector{Float64}}
PRM(
x::AbstractVector{<:Union{var"#s19", var"#s18"} where {var"#s19"<:Number, var"#s18"<:AbstractJuMPScalar}},
slv::Union{Solver, AbstractVector{<:Solver}},
alpha::Number,
p::Number,
w::Union{Nothing, DynamicAbstractWeights, AbstractWeights}
) -> Union{Float64, Vector{Float64}}Compute the Power-Norm Risk Measure (PRM) for a vector of portfolio returns.
Solves a convex optimisation problem to compute the PRM at confidence level alpha with Lp-norm parameter p, using the specified solver(s).
Arguments
x: Vector of portfolio returns.slv: Solver or vector of solvers.alpha: Confidence level (default0.05).p: Lp-norm parameter (default2.0).Additional parameters depending on the specific PRM formulation.
kwargs...: Additional keyword arguments passed to the solver.
Returns
- PRM value (scalar).
Related
source