Maximum and Expected Maximum Drawdown

Introduction

Although additional metrics exist that are used in the hedge fund and commodity trading communities (see Pederson and Rudholm-Alfvin in Bibliography), the original definition and subsequent implementation of these metrics is not yet standardized. The "traditional" return form for maximum drawdown is the drop from maximum to minimum return over a period of time. Given returns that have been transformed into a linear Brownian motion with drift, it is possible to compute the expected maximum drawdown (see Magdon-Ismail, Atiya, Pratap, and Abu-Mostafa in Bibliography). Use maxdrawdown and emaxdrawdown to calculate the maximum and expected maximum drawdowns.

Maximum Drawdown Example

This example demonstrates computing MaxDD for three types of returns: fund, market, and cash

load FundMarketCash
MaxDD = maxdrawdown(TestData)

which gives the following results:

MaxDD =
    0.1658    0.3381         0

Most academic research on maximum drawdown focuses on the underlying stochastic processes that generate asset returns. Convert price data to geometric Brownian motion and compute maximum drawdown

Returns = TestData(2:end,:) ./ TestData(1:end - 1,:);
MaxDD = maxdrawdown(Returns,'geometric')

which gives the following results:

MaxDD =
    0.1007    0.1890    0.0023

Convert price data to arithmetic Brownian motion and compute maximum drawdown (the answer should match the previous result).

Returns = log(Returns);
MaxDD = maxdrawdown(Returns,'arithmetic')

which gives the following results:

MaxDD =
    0.1007    0.1890    0.0023

The maximum drawdown function has been enhanced to return the indices of the maximum drawdown periods for each series

[MaxDD, MaxDDIndex] = maxdrawdown(TestData) 
Start = MaxDDIndex(1,:) 
End = MaxDDIndex(2,:)

which gives the following results:

MaxDD =

    0.1658    0.3381         0

MaxDDIndex =

     2     2   NaN
    18    18   NaN

Start =

     2     2   NaN

End =

    18    18   NaN

The first two series have the same periods for maximum drawdown from the 2nd to the 18th month in the data. Note that the third series never has a drawdown, so that the indices are NaNs.

Expected Maximum Drawdown Example

This example demonstrates using the return moments of the fund to compute the expected MaxDD and then compare it with the realized MaxDD

load FundMarketCash
Returns = TestData(2:end,:) ./ TestData(1:end - 1,:);
Returns = log(Returns);
MaxDD = maxdrawdown(Returns(:,1),'arithmetic')
Mu = mean(Returns(:,1));
Sigma = std(Returns(:,1),1);
EMaxDD = emaxdrawdown(Mu, Sigma, 100)

which gives the following results:

MaxDD =
    0.1007
EMaxDD =
    0.1852
  


 © 1984-2009- The MathWorks, Inc.    -   Site Help   -   Patents   -   Trademarks   -   Privacy Policy   -   Preventing Piracy   -   RSS