To calculate Downside Frequency, we take the subset of returns that are less than the target (or Minimum Acceptable Returns (MAR)) returns and divide the length of this subset by the total number of returns.

DownsideFrequency(R, MAR = 0, ...)

Arguments

R

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

MAR

Minimum Acceptable Return, in the same periodicity as your returns

...

any other passthru parameters

Details

$$ DownsideFrequency(R , MAR) = \sum^{n}_{t=1}\frac{min[(R_{t} - MAR), 0]}{R_{t}*n}$$

where \(n\) is the number of observations of the entire series

References

Carl Bacon, Practical portfolio performance measurement and attribution, second edition 2008 p.94

Author

Matthieu Lestel

Examples

data(portfolio_bacon)
MAR = 0.005
print(DownsideFrequency(portfolio_bacon[,1], MAR)) #expected 0.458
#> [1] 0.4583333

data(managers)
print(DownsideFrequency(managers['1996']))
#>                               HAM1 HAM2      HAM3      HAM4 HAM5 HAM6
#> Downside Frequency (MAR = 0%) 0.25  0.2 0.1666667 0.3333333  NaN  NaN
#>                               EDHEC LS EQ  SP500 TR US 10Y TR US 3m TR
#> Downside Frequency (MAR = 0%)         NaN 0.1666667 0.5833333        0
print(DownsideFrequency(managers['1996',1])) #expected 0.25
#> [1] 0.25