The pain index is the mean value of the drawdowns over the entire analysis period. The measure is similar to the Ulcer index except that the drawdowns are not squared. Also, it's different than the average drawdown, in that the numerator is the total number of observations rather than the number of drawdowns.

PainIndex(R, ...)

Arguments

R

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

any other passthru parameters

Details

Visually, the pain index is the area of the region that is enclosed by the horizontal line at zero percent and the drawdown line in the Drawdown chart. $$Pain index = \sum^{n}_{i=1} \frac{\mid D'_i \mid}{n}$$

where \(n\) is the number of observations of the entire series, \(D'_i\) is the drawdown since previous peak in period i

References

Carl Bacon, Practical portfolio performance measurement and attribution, second edition 2008 p.89, Becker, Thomas (2006) Zephyr Associates

Examples

data(portfolio_bacon) print(PainIndex(portfolio_bacon[,1])) #expected 0.04
#> portfolio.monthly.return.... #> Pain Index 0.0390113
data(managers) print(PainIndex(100*managers['1996']))
#> HAM1 HAM2 HAM3 HAM4 HAM5 HAM6 EDHEC LS EQ SP500 TR #> Pain Index 0.3714087 0.002 0.9421759 0.7421641 NaN NaN NaN 0.7336052 #> US 10Y TR US 3m TR #> Pain Index 3.697961 0
print(PainIndex(100*managers['1996',1]))
#> HAM1 #> Pain Index 0.3714087