Skip to content
13

Average Drawdown

PortfolioOptimisers.AverageDrawdown Type
julia
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:

ct=s=1txs,dt=ctmax0stcs0.

The Average Drawdown is:

ADD(x)=1Tt=1Tdt.

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

Fields

  • settings: Risk measure configuration.

  • w: Optional observation weights.

Constructors

julia
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

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

Computes the Average Drawdown of a portfolio returns vector x.

Arguments

  • x::VecNum: Portfolio returns vector.

Examples

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

Related

source
PortfolioOptimisers.RelativeAverageDrawdown Type
julia
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:

Ct=s=1t(1+xs),rdt=Ctmax0stCs10.

The Relative Average Drawdown is:

RADD(x)=1Tt=1Trdt.

Fields

  • settings: Hierarchical risk measure configuration.

  • w: Optional observation weights.

Constructors

julia
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

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

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

Arguments

  • x::VecNum: Portfolio returns vector.

Examples

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

Related

source