Generic Value at Risk Range
PortfolioOptimisers.ValueatRiskRMs — Type
ValueatRiskRMs = Union{<:ValueatRisk, <:ConditionalValueatRisk,
<:DistributionallyRobustConditionalValueatRisk,
<:EntropicValueatRisk, <:WorstRealisation,
<:RelativisticValueatRisk, <:PowerNormValueatRisk}Alias for the union of all XatRisk-type risk measures that can be used in the GenericValueatRiskRange risk measure.
PortfolioOptimisers.GenericValueatRiskRange — Type
struct GenericValueatRiskRange{__T_settings, __T_loss, __T_gain} <: RiskMeasureRepresents a generic Value-at-Risk range risk measure that combines any pair of XatRisk-type measures applied to the loss and gain sides of the return distribution.
GenericValueatRiskRange evaluates a loss-side XatRisk measure on the portfolio returns and a gain-side XatRisk measure on the negated portfolio returns, then sums the two to produce a symmetric tail-spread risk measure.
Mathematical definition
\[\begin{align} \mathrm{GenVaRRange}(\boldsymbol{x}) &= \rho_{\mathrm{loss}}(\boldsymbol{x}) + \rho_{\mathrm{gain}}(-\boldsymbol{x})\,. \end{align}\]
Where:
- $\mathrm{GenVaRRange}(\boldsymbol{x})$: Generic Value-at-Risk range.
- $\rho_{\mathrm{loss}}$: Loss-side XatRisk risk measure.
- $\rho_{\mathrm{gain}}$: Gain-side XatRisk risk measure.
- $\boldsymbol{x}$: Portfolio returns vector $T \times 1$.
The upper tail is the base measure applied to the negated returns $-\boldsymbol{x}$, so both tails are reported on the same sign convention and the range is their sum, not their difference.
Fields
settings: Risk measure settings.
loss: Loss-side XatRisk risk measure applied to the portfolio returns.
gain: Gain-side XatRisk risk measure applied to the negated portfolio returns.
Constructors
GenericValueatRiskRange(; settings::RiskMeasureSettings = RiskMeasureSettings(), loss::ValueatRiskRMs = ConditionalValueatRisk(), gain::ValueatRiskRMs = ConditionalValueatRisk()) -> GenericValueatRiskRangeKeywords correspond to the struct's fields.
The constructor strips the rke flag from both loss and gain via no_risk_expr_risk_measure, since their risk expressions are combined into the outer settings-controlled expression.
Propagated parameters
When factory is called on this type, the following @fprop-tagged fields are automatically propagated:
View parameters
When port_opt_view is called on this type, the following @vprop-tagged fields are automatically subset to the selected indices:
loss: Recursively viewed viaport_opt_view.gain: Recursively viewed viaport_opt_view.
Functor
(r::GenericValueatRiskRange)(x::VecNum)Computes the GenericValueatRiskRange of a portfolio returns vector x.
Arguments
x::VecNum: Portfolio returns vector.
Examples
julia> GenericValueatRiskRange()GenericValueatRiskRange settings ┼ RiskMeasureSettings │ scale ┼ Float64: 1.0 │ ub ┼ nothing │ rke ┴ Bool: true loss ┼ ConditionalValueatRisk │ settings ┼ RiskMeasureSettings │ │ scale ┼ Float64: 1.0 │ │ ub ┼ nothing │ │ rke ┴ Bool: false │ alpha ┼ Float64: 0.05 │ w ┴ nothing gain ┼ ConditionalValueatRisk │ settings ┼ RiskMeasureSettings │ │ scale ┼ Float64: 1.0 │ │ ub ┼ nothing │ │ rke ┴ Bool: false │ alpha ┼ Float64: 0.05 │ w ┴ nothingRelated