To find the maximum drawdown in a return series, we need to first calculate the cumulative returns and the maximum cumulative return to that point. Any time the cumulative returns dips below the maximum cumulative returns, it's a drawdown. Drawdowns are measured as a percentage of that maximum cumulative return, in effect, measured from peak equity.

maxDrawdown(R, weights = NULL, geometric = TRUE, invert = TRUE, ...)

Arguments

R

an xts, vector, matrix, data frame, timeSeries or zoo object of asset returns

weights

portfolio weighting vector, default NULL, see Details

geometric

utilize geometric chaining (TRUE) or simple/arithmetic chaining (FALSE) to aggregate returns, default TRUE

invert

TRUE/FALSE whether to invert the drawdown measure. see Details.

any other passthru parameters

Details

The option to invert the measure should appease both academics and practitioners. The default option invert=TRUE will provide the drawdown as a positive number. This should be useful for optimization (which usually seeks to minimize a value), and for tables (where having negative signs in front of every number may be considered clutter). Practitioners will argue that drawdowns denote losses, and should be internally consistent with the quantile (a negative number), for which invert=FALSE will provide the value they expect. Individually, different preferences may apply for clarity and compactness. As such, we provide the option, but make no value judgment on which approach is preferable.

References

Bacon, C. Practical Portfolio Performance Measurement and Attribution. Wiley. 2004. p. 88

See also

findDrawdowns sortDrawdowns table.Drawdowns table.DownsideRisk chart.Drawdown

Examples

data(edhec) t(round(maxDrawdown(edhec[,"Funds of Funds"]),4))
#> [,1] #> [1,] 0.2059
data(managers) t(round(maxDrawdown(managers),4))
#> Worst Drawdown #> HAM1 0.1518 #> HAM2 0.2399 #> HAM3 0.2894 #> HAM4 0.2874 #> HAM5 0.3405 #> HAM6 0.0788 #> EDHEC LS EQ 0.1075 #> SP500 TR 0.4473 #> US 10Y TR 0.1006 #> US 3m TR 0.0000