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

Author

Matthieu Lestel

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