Average Drawdown

PortfolioOptimisers.AverageDrawdownType
struct AverageDrawdown{__T_settings, __T_w} <: RiskMeasure

Represents the Average Drawdown risk measure.

AverageDrawdown computes the mean of the absolute drawdown series of the portfolio returns. It provides a measure of the average magnitude of drawdowns over the sample period.

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 Average Drawdown is:

\[\begin{align} \mathrm{ADD}(\boldsymbol{x}) &= -\frac{1}{T} \sum_{t=1}^{T} d_t\,. \end{align}\]

Where:

  • $\mathrm{ADD}(\boldsymbol{x})$: Average drawdown.
  • $T$: Number of observations.
  • $d_t \leq 0$: Absolute drawdown at period $t$.

For observation-weighted samples, the weighted mean is used instead.

Fields

  • settings: Risk measure settings.
  • w: Optional observation weights vector observations × 1, or a concrete subtype of DynamicAbstractWeights. If nothing, the computation is unweighted.

Constructors

AverageDrawdown(;    settings::RiskMeasureSettings = RiskMeasureSettings(),    w::Option{<:ObsWeights} = nothing) -> AverageDrawdown

Keywords correspond to the struct's fields.

Validation

  • If w is not nothing, !isempty(w).

Functor

(r::AverageDrawdown)(x::VecNum)

Computes the Average Drawdown of a portfolio returns vector x.

Arguments

  • x::VecNum: Portfolio returns vector.

Examples

julia> AverageDrawdown()AverageDrawdown  settings ┼ RiskMeasureSettings           │   scale ┼ Float64: 1.0           │      ub ┼ nothing           │     rke ┴ Bool: true         w ┴ nothing

Related

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).
source
PortfolioOptimisers.RelativeAverageDrawdownType
struct RelativeAverageDrawdown{__T_settings, __T_w} <: HierarchicalRiskMeasure

Represents the Relative Average Drawdown risk measure for hierarchical optimisation.

RelativeAverageDrawdown computes the mean of the relative (compounded) drawdown series of the portfolio returns.

Mathematical definition

Define the compounded wealth process and 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 Average Drawdown is:

\[\begin{align} \mathrm{RADD}(\boldsymbol{x}) &= -\frac{1}{T} \sum_{t=1}^{T} rd_t\,. \end{align}\]

Where:

  • $\mathrm{RADD}(\boldsymbol{x})$: Relative average drawdown.
  • $T$: Number of observations.
  • $rd_t \leq 0$: Relative drawdown at period $t$.

For observation-weighted samples, the weighted mean is used instead.

Fields

  • settings: Risk measure settings.
  • w: Optional observation weights vector observations × 1, or a concrete subtype of DynamicAbstractWeights. If nothing, the computation is unweighted.

Constructors

RelativeAverageDrawdown(;    settings::HierarchicalRiskMeasureSettings = HierarchicalRiskMeasureSettings(),    w::Option{<:ObsWeights} = nothing) -> RelativeAverageDrawdown

Keywords correspond to the struct's fields.

Validation

  • If w is not nothing, !isempty(w).

Functor

(r::RelativeAverageDrawdown)(x::VecNum)

Computes the Relative Average Drawdown of a portfolio returns vector x.

Arguments

  • x::VecNum: Portfolio returns vector.

Examples

julia> RelativeAverageDrawdown()RelativeAverageDrawdown  settings ┼ HierarchicalRiskMeasureSettings           │   scale ┴ Float64: 1.0         w ┴ nothing

Related

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).
source

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).