| Financial Toolbox™ | ![]() |
| On this page… |
|---|
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.
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 NaNThe 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.
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
![]() | Sample and Expected Lower Partial Moments | Regression with Missing Data | ![]() |
| © 1984-2009- The MathWorks, Inc. - Site Help - Patents - Trademarks - Privacy Policy - Preventing Piracy - RSS |