Negative Skewness
PortfolioOptimisers.NSkeFormulations Type
const NSkeFormulations = Union{<:NSkeQuadFormulations, <:SOCRiskExpr}Union of valid optimisation formulations for the NegativeSkewness risk measure.
Related
sourcePortfolioOptimisers.NegativeSkewness Type
struct NegativeSkewness{__T_settings, __T_mp, __T_sk, __T_V, __T_alg, __T_window} <: RiskMeasureRepresents the Negative Skewness risk measure.
NegativeSkewness quantifies the portfolio's exposure to negative asymmetry in returns by computing a quadratic or SOC (second-order cone) form of the coskewness matrix. It penalises portfolio constructions that exhibit heavy left-tail behaviour.
Mathematical Definition
Let
Fields
settings: Risk measure configuration.mp: Matrix processing estimator applied to the coskewness matrix.sk: Pre-computed coskewness matrix (). If nothing, it is computed from the prior.V: Pre-computed negative spectral coskewness matrix (). If nothing, it is computed fromsk.alg: Optimisation formulation (SOCRiskExpror aNSkeQuadFormulationssubtype).window: Rolling window index or indices for time-series slicing.
Constructors
NegativeSkewness(;
settings::RiskMeasureSettings = RiskMeasureSettings(),
mp::AbstractMatrixProcessingEstimator = DenoiseDetoneAlgMatrixProcessing(),
sk::Option{<:MatNum} = nothing,
V::Option{<:MatNum} = nothing,
alg::NSkeFormulations = SOCRiskExpr(),
window::Option{<:Int_VecInt} = nothing
) -> NegativeSkewnessKeywords correspond to the struct's fields.
Validation
If
skorVis provided, both must be provided, non-empty, withsize(sk, 1)^2 == size(sk, 2)andVsquare.windowis validated withassert_nonempty_nonneg_finite_val.
Functor
(r::NegativeSkewness)(w::VecNum)Computes the Negative Skewness risk of a portfolio weight vector w.
Arguments
w::VecNum: Portfolio weights vector.
Examples
julia> NegativeSkewness()
NegativeSkewness
settings ┼ RiskMeasureSettings
│ scale ┼ Float64: 1.0
│ ub ┼ nothing
│ rke ┴ Bool: true
mp ┼ DenoiseDetoneAlgMatrixProcessing
│ pdm ┼ Posdef
│ │ alg ┼ UnionAll: NearestCorrelationMatrix.Newton
│ │ kwargs ┴ @NamedTuple{}: NamedTuple()
│ dn ┼ nothing
│ dt ┼ nothing
│ alg ┼ nothing
│ order ┴ DenoiseDetoneAlg()
sk ┼ nothing
V ┼ nothing
alg ┼ SOCRiskExpr()
window ┴ nothingRelated
source