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 $p \geq 1$ and a significance level $\alpha$, and is solved via a conic programme.
Mathematical definition
The PNVaR at level $\alpha$ with power $p$ is:
\[\begin{align} \mathrm{PNVaR}_{\alpha,p}(\boldsymbol{x}) &= \underset{\eta,\, t,\, \boldsymbol{w},\, \boldsymbol{v}}{\min} \left\{ \eta + \frac{t}{\alpha T^{1/p}} \;:\; \boldsymbol{w} \geq \boldsymbol{0},\; \sum_{i=1}^{T} v_i \leq t,\; (x_i + w_i) + \eta \geq 0,\; (v_i, t, w_i) \in \mathcal{K}_{\mathrm{pow}}(1/p)\; \forall i \right\}\,. \end{align}\]
Where:
- $\mathrm{PNVaR}_{\alpha,p}(\boldsymbol{x})$: Power Norm Value-at-Risk.
- $\boldsymbol{x}$: Portfolio returns vector $T \times 1$.
- $\alpha$: Significance level (left tail probability), $\alpha \in (0, 1)$.
- $T$: Number of observations.
- $p \geq 1$: Power parameter.
- $\eta$, $t$, $\boldsymbol{w}$, $\boldsymbol{v}$: Conic optimisation variables.
- $\mathcal{K}_{\mathrm{pow}}(p') = \{(a,b,c) : a^{p'} b^{1-p'} \geq |c|,\, a \geq 0,\, b \geq 0\}$: Power cone.
The conic variable $\boldsymbol{w}$ is unrelated to the w field, which carries the observation weights. Write those weights $\boldsymbol{q}$. When they are present, the normalisation $T^{1/p}$ becomes $\left(\sum_{t=1}^{T} q_t\right)^{1/p}$ and the budget constraint becomes $\sum_{i=1}^{T} q_i v_i \leq t$.
Fields
settings: Risk measure settings.
slv: Solver or vector of solvers.
alpha: Quantile level for the lower tail. The bound isNum_SigCal, so the slot takes the level itself, anAbstractSignificanceCalibrationAlgorithmthat computes it from the prior result, or a plain function of the same five arguments.
p: Power or order parameter.
w: Optional observation weights vectorobservations × 1, or a concrete subtype ofDynamicAbstractWeights. Ifnothing, the computation is unweighted.
Constructors
PowerNormValueatRisk(; settings::RiskMeasureSettings = RiskMeasureSettings(), slv::Option{<:Slv_VecSlv} = nothing, alpha::Num_SigCal = 0.05, p::Number = 2.0, w::Option{<:ObsWeights} = nothing) -> PowerNormValueatRiskKeywords correspond to the struct's fields.
Validation
- If
alphais a number: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
RiskMeasureRiskMeasureSettingsEntropicValueatRiskRelativisticValueatRiskPowerNormValueatRiskRangePowerNormDrawdownatRisk
References
- [106] P. A. Krokhmal. Higher moment coherent risk measures. Quantitative Finance 7, 373–387 (2007).
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
\[\begin{align} \mathrm{PNVaRRange}_{\alpha,p_a,\beta,p_b}(\boldsymbol{x}) &= \mathrm{PNVaR}_{\alpha,p_a}(\boldsymbol{x}) + \mathrm{PNVaR}_{\beta,p_b}(-\boldsymbol{x})\,. \end{align}\]
Where:
- $\mathrm{PNVaRRange}_{\alpha,p_a,\beta,p_b}(\boldsymbol{x})$: Power Norm VaR range.
- $\boldsymbol{x}$: Portfolio returns vector $T \times 1$.
- $\mathrm{PNVaR}_{\alpha,p_a}(\boldsymbol{x})$: Lower-tail PNVaR with parameters $(\alpha, p_a)$.
- $\mathrm{PNVaR}_{\beta,p_b}(-\boldsymbol{x})$: Upper-tail PNVaR with parameters $(\beta, p_b)$.
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.
slv: Solver or vector of solvers.
alpha: Quantile level for the lower tail. The bound isNum_SigCal, so the slot takes the level itself, anAbstractSignificanceCalibrationAlgorithmthat computes it from the prior result, or a plain function of the same five arguments.
beta: Quantile level for the upper tail. The bound isNum_SigCal, so the slot takes the level itself, anAbstractSignificanceCalibrationAlgorithmthat computes it from the prior result, or a plain function of the same five arguments.
pa: Power norm parameter for the lower tail.
pb: Power norm parameter for the upper tail.
w: Optional observation weights vectorobservations × 1, or a concrete subtype ofDynamicAbstractWeights. Ifnothing, the computation is unweighted.
Constructors
PowerNormValueatRiskRange(; settings::RiskMeasureSettings = RiskMeasureSettings(), slv::Option{<:Slv_VecSlv} = nothing, alpha::Num_SigCal = 0.05, beta::Num_SigCal = alpha, pa::Number = 2.0, pb::Number = pa, w::Option{<:ObsWeights} = nothing) -> PowerNormValueatRiskRangeKeywords correspond to the struct's fields.
Validation
- If
alphais a number:0 < alpha < 1. Ifbetais a number: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
References
- [106] P. A. Krokhmal. Higher moment coherent risk measures. Quantitative Finance 7, 373–387 (2007).
PortfolioOptimisers.PowerNormDrawdownatRisk — Type
struct PowerNormDrawdownatRisk{__T_settings, __T_slv, __T_alpha, __T_p, __T_w} <: RiskMeasureRepresents the Power Norm Drawdown-at-Risk (PNDaR) 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:
\[\begin{align} c_t &= \sum_{s=1}^{t} x_s\,, \\ d_t &= c_t - \max_{0 \leq s \leq t} c_s \leq 0\,. \end{align}\]
Where:
- $\boldsymbol{x}$: Portfolio returns vector $T \times 1$.
- $c_t$: Cumulative simple portfolio return at period $t$.
- $d_t \leq 0$: Absolute drawdown at period $t$.
The Power Norm Drawdown-at-Risk is the PNVaR of the drawdown series:
\[\begin{align} \mathrm{PNDaR}_{\alpha,p}(\boldsymbol{x}) &= \mathrm{PNVaR}_{\alpha,p}(\boldsymbol{d}(\boldsymbol{x}))\,. \end{align}\]
Where:
- $\mathrm{PNDaR}_{\alpha,p}(\boldsymbol{x})$: Power Norm Drawdown-at-Risk.
- $\boldsymbol{x}$: Portfolio returns vector $T \times 1$.
- $\alpha$: Significance level (left tail probability), $\alpha \in (0, 1)$.
- $p \geq 1$: Power parameter.
- $\boldsymbol{d}(\boldsymbol{x})$: Absolute drawdown series.
Fields
settings: Risk measure settings.
slv: Solver or vector of solvers.
alpha: Quantile level for the lower tail. The bound isNum_SigCal, so the slot takes the level itself, anAbstractSignificanceCalibrationAlgorithmthat computes it from the prior result, or a plain function of the same five arguments.
p: Power or order parameter.
w: Optional observation weights vectorobservations × 1, or a concrete subtype ofDynamicAbstractWeights. Ifnothing, the computation is unweighted.
Constructors
PowerNormDrawdownatRisk(; settings::RiskMeasureSettings = RiskMeasureSettings(), slv::Option{<:Slv_VecSlv} = nothing, alpha::Num_SigCal = 0.05, p::Number = 2.0, w::Option{<:ObsWeights} = nothing) -> PowerNormDrawdownatRiskKeywords correspond to the struct's fields.
Validation
- If
alphais a number:0 < alpha < 1. p >= 1.- If
slvis aVecSlv:!isempty(slv). - If
wis notnothing:!isempty(w).
Functor
(r::PowerNormDrawdownatRisk)(x::VecNum)Computes the PNDaR 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
RiskMeasureRiskMeasureSettingsPowerNormValueatRiskRelativisticDrawdownatRiskEntropicDrawdownatRiskRelativePowerNormDrawdownatRisk
References
PortfolioOptimisers.RelativePowerNormDrawdownatRisk — Type
struct RelativePowerNormDrawdownatRisk{__T_settings, __T_slv, __T_alpha, __T_p, __T_w} <: HierarchicalRiskMeasureRepresents the Relative Power Norm Drawdown-at-Risk (Relative PNDaR) 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:
\[\begin{align} C_t &= \prod_{s=1}^{t} (1 + x_s)\,, \\ rd_t &= \frac{C_t}{\max_{0 \leq s \leq t} C_s} - 1 \leq 0\,. \end{align}\]
Where:
- $\boldsymbol{x}$: Portfolio returns vector $T \times 1$.
- $C_t$: Compound wealth process at period $t$.
- $rd_t \leq 0$: Relative drawdown at period $t$.
The Relative Power Norm Drawdown-at-Risk is the PNVaR of the relative drawdown series:
\[\begin{align} \mathrm{RPNDaR}_{\alpha,p}(\boldsymbol{x}) &= \mathrm{PNVaR}_{\alpha,p}(\boldsymbol{rd}(\boldsymbol{x}))\,. \end{align}\]
Where:
- $\mathrm{RPNDaR}_{\alpha,p}(\boldsymbol{x})$: Relative Power Norm Drawdown-at-Risk.
- $\boldsymbol{x}$: Portfolio returns vector $T \times 1$.
- $\alpha$: Significance level (left tail probability), $\alpha \in (0, 1)$.
- $p \geq 1$: Power parameter.
- $\boldsymbol{rd}(\boldsymbol{x})$: Relative drawdown series.
Fields
settings: Risk measure settings.
slv: Solver or vector of solvers.
alpha: Quantile level for the lower tail. The bound isNum_SigCal, so the slot takes the level itself, anAbstractSignificanceCalibrationAlgorithmthat computes it from the prior result, or a plain function of the same five arguments.
p: Power or order parameter.
w: Optional observation weights vectorobservations × 1, or a concrete subtype ofDynamicAbstractWeights. Ifnothing, the computation is unweighted.
Constructors
RelativePowerNormDrawdownatRisk(; settings::HierarchicalRiskMeasureSettings = HierarchicalRiskMeasureSettings(), slv::Option{<:Slv_VecSlv} = nothing, alpha::Num_SigCal = 0.05, p::Number = 2.0, w::Option{<:ObsWeights} = nothing) -> RelativePowerNormDrawdownatRiskKeywords correspond to the struct's fields.
Validation
- If
alphais a number:0 < alpha < 1. p >= 1.- If
slvis aVecSlv:!isempty(slv). - If
wis notnothing:!isempty(w).
Functor
(r::RelativePowerNormDrawdownatRisk)(x::VecNum)Computes the Relative PNDaR 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
HierarchicalRiskMeasureHierarchicalRiskMeasureSettingsPowerNormDrawdownatRiskRelativeRelativisticDrawdownatRiskRelativeEntropicDrawdownatRisk
References
References
- [102]
- A. Chekhlov, S. Uryasev and M. Zabarankin. Drawdown measure in portfolio optimization. International Journal of Theoretical and Applied Finance 8, 13–58 (2005).
- [106]
- P. A. Krokhmal. Higher moment coherent risk measures. Quantitative Finance 7, 373–387 (2007).