How is Ulcer Index calculated?

Ulcer Index calculation formula data assumptions limitations.

Direct answer

Ulcer Index is calculated by measuring how far a price (or index level) falls below its running maximum over a chosen lookback period, then combining those drawdowns into one number. In its common form, you square the drawdown percentages, average them, and take the square root.

Mechanism or definition

1) Choose the input series and time window

Start with a time series of a level variable—commonly a closing price or an index level—sampled at a fixed frequency (for example, daily, weekly, or intraday bars). Pick a lookback period with N observations.

2) Compute the running peak (highest value so far)

For each time step t inside the window, compute the running maximum of the level up to that point:

  • (\text{Peak}_t = \max(\text{Level}_1, \text{Level}_2, \dots, \text{Level}_t))

This running peak is the reference used to define drawdown.

3) Compute drawdowns as percentages (or relative drops)

For each t, compute the drawdown amount as a fraction of the running peak:

  • (\text{DD}_t = \frac{\text{Level}_t - \text{Peak}_t}{\text{Peak}_t})

This value is 0 when the current level equals the peak, and negative during declines. Many explanations use the magnitude of the drop, so it is common to work with ( -\text{DD}_t) (a non-negative number) when squaring.

4) Apply the Ulcer Index formula

A widely used formulation is:

  • (\text{Ulcer Index} = \sqrt{\frac{1}{N}\sum_{t=1}^{N}(\text{DD}_t)^2})

Because you square (\text{DD}_t), it treats all drawdowns by their magnitude, not by whether they happened on the way up or down. Finally, taking the square root scales the result back to the original drawdown “percentage-like” units.

5) Interpretation of what the number summarizes

Ulcer Index condenses a drawdown path into one volatility-like measure focused on downside depth. Larger values correspond to deeper and/or more persistent drawdowns within the selected window.

Evidence or example

Below is a small, self-contained example using made-up levels to show the calculation steps.

Assume N = 4 observations with levels:

  • (L = [100, 95, 90, 97])

Step A: running peaks

  • t1: Peak = 100
  • t2: Peak = 100
  • t3: Peak = 100
  • t4: Peak = 100

Step B: drawdowns (fractions)

  • t1: DD = (100−100)/100 = 0
  • t2: DD = (95−100)/100 = −0.05
  • t3: DD = (90−100)/100 = −0.10
  • t4: DD = (97−100)/100 = −0.03

Step C: square, average, square-root

  • Squares: [0, 0.0025, 0.01, 0.0009]
  • Mean: ( (0 + 0.0025 + 0.01 + 0.0009)/4 = 0.0036)
  • Ulcer Index: (\sqrt{0.0036} = 0.06)

In this toy example, the Ulcer Index equals 0.06, which corresponds to an “average squared drawdown magnitude” level of 6% when expressed in the same units as the drawdowns used. Note that this is a demonstration of the mechanics; real data and window choices change the outcome.

Limitations and risks

1) The result depends on the chosen window and baseline

Ulcer Index is not universal across all settings: you must define the lookback length N and the level series used to build the running peak. Different choices produce different Ulcer Index values even for the same underlying asset.

2) Data frequency and sampling effects

If you compute Ulcer Index using different bar frequencies (daily vs. hourly) or with different missing-data handling, the detected drawdowns can change. Because drawdowns are path-dependent (running peak), sampling can understate or overstate the true maximum drops.

3) It summarizes drawdown shape, not direction or recovery quality

Ulcer Index focuses on how deep the declines are relative to prior peaks. It does not encode whether the price later returns quickly versus slowly, except insofar as longer declines contribute more drawdown observations inside the window.

4) Failure mode: strong dependence on outliers and peak timing

Because the calculation uses squared drawdowns, unusually large drops can dominate the number. Also, peak timing matters: a brief new high resets the running peak, changing later drawdown magnitudes.

5) No guarantee of future performance

Ulcer Index is descriptive of historical drawdown behavior inside a selected period. Historical drawdown measures do not establish that future outcomes will match them, and they do not incorporate transaction costs, slippage, execution effects, or external constraints.

Verification or next question

To independently verify a reported Ulcer Index figure, you need the same ingredients used in its computation: (1) the exact level series, (2) the sampling frequency, (3) the lookback length N, (4) the running-peak method, and (5) the exact formula convention (especially whether drawdowns are computed as ((Level-Peak)/Peak) and squared directly).

A useful next check is to compute Ulcer Index under two reasonable but explicit definitions—such as using closing levels versus another level definition—and compare how sensitive the results are to those choices. That sensitivity analysis shows whether the number is robust or dominated by specific data-handling assumptions.

Trading foreign exchange and CFDs involves substantial risk. Information on FoxiForex is educational and is not personal financial advice. Sponsored placements are labelled clearly.