Ulcer Index

PortfolioOptimisers.UlcerIndexType
struct UlcerIndex{__T_settings} <: RiskMeasure

Represents the Ulcer Index risk measure.

UlcerIndex measures the depth and duration of drawdowns in portfolio returns. It is defined as the root-mean-square of the absolute drawdown series, capturing both the magnitude and persistence of losses.

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 Ulcer Index is:

\[\begin{align} \mathrm{UI}(\boldsymbol{x}) &= \sqrt{\frac{1}{T} \sum_{t=1}^{T} d_t^2} = \frac{\lVert \boldsymbol{d} \rVert_2}{\sqrt{T}}\,. \end{align}\]

Where:

  • $\mathrm{UI}(\boldsymbol{x})$: Ulcer Index (root-mean-square drawdown).
  • $T$: Number of observations.
  • $d_t \leq 0$: Absolute drawdown at period $t$.
  • $\boldsymbol{d}$: Absolute drawdown series vector $T \times 1$.

Fields

  • settings: Risk measure settings.

Constructors

UlcerIndex(;    settings::RiskMeasureSettings = RiskMeasureSettings()) -> UlcerIndex

Keywords correspond to the struct's fields.

Functor

(r::UlcerIndex)(x::VecNum)

Computes the Ulcer Index of a portfolio returns vector x.

Arguments

  • x::VecNum: Portfolio returns vector.

Examples

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

Related

References

  • [113] P. G. Martin and B. B. McCann. The Investor's Guide to Fidelity Funds (John Wiley & Sons, 1989).
source
PortfolioOptimisers.RelativeUlcerIndexType
struct RelativeUlcerIndex{__T_settings} <: HierarchicalRiskMeasure

Represents the Relative Ulcer Index risk measure for hierarchical optimisation.

RelativeUlcerIndex applies the Ulcer Index framework to the relative (compounded) drawdown series.

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 Ulcer Index is:

\[\begin{align} \mathrm{RUI}(\boldsymbol{x}) &= \frac{\lVert \boldsymbol{rd} \rVert_2}{\sqrt{T}}\,. \end{align}\]

Where:

  • $\mathrm{RUI}(\boldsymbol{x})$: Relative Ulcer Index (root-mean-square relative drawdown).
  • $T$: Number of observations.
  • $rd_t \leq 0$: Relative drawdown at period $t$.
  • $\boldsymbol{rd}$: Relative drawdown series vector $T \times 1$.

Fields

  • settings: Risk measure settings.

Constructors

RelativeUlcerIndex(;    settings::HierarchicalRiskMeasureSettings = HierarchicalRiskMeasureSettings()) -> RelativeUlcerIndex

Keywords correspond to the struct's fields.

Functor

(r::RelativeUlcerIndex)(x::VecNum)

Computes the Relative Ulcer Index of a portfolio returns vector x.

Arguments

  • x::VecNum: Portfolio returns vector.

Examples

julia> RelativeUlcerIndex()RelativeUlcerIndex  settings ┼ HierarchicalRiskMeasureSettings           │   scale ┴ Float64: 1.0

Related

References

  • [113] P. G. Martin and B. B. McCann. The Investor's Guide to Fidelity Funds (John Wiley & Sons, 1989).
source

References

[113]
P. G. Martin and B. B. McCann. The Investor's Guide to Fidelity Funds (John Wiley & Sons, 1989).