calculate Treynor Ratio or modified Treynor Ratio of excess return over CAPM beta

Share:

Description

The Treynor ratio is similar to the Sharpe Ratio, except it uses beta as the volatility measure (to divide the investment's excess return over the beta).

Usage

1
TreynorRatio(Ra, Rb, Rf = 0, scale = NA, modified = FALSE)

Arguments

Ra

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

Rb

return vector of the benchmark asset

Rf

risk free rate, in same period as your returns

scale

number of periods in a year (daily scale = 252, monthly scale = 12, quarterly scale = 4)

modified

a boolean to decide whether to return the Treynor ratio or Modified Treynor ratio

Details

To calculate modified Treynor ratio, we divide the numerator by the systematic risk instead of the beta.

Equation:

(mean(Ra-Rf))/(Beta(Ra,Rb))

ModifiedTreynorRatio = (Rp - Rf)/sytematic risk

Author(s)

Peter Carl, Matthieu Lestel

References

http://en.wikipedia.org/wiki/Treynor_ratio, Carl Bacon, Practical portfolio performance measurement and attribution, second edition 2008 p.77

See Also

SharpeRatio SortinoRatio CAPM.beta

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
data(portfolio_bacon) 
data(managers)
round(TreynorRatio(managers[,1], managers[,8], Rf=.035/12),4) 
round(TreynorRatio(managers[,1], managers[,8], Rf = managers[,10]),4) 
round(TreynorRatio(managers[,1:6], managers[,8], Rf=.035/12),4) 
round(TreynorRatio(managers[,1:6], managers[,8], Rf = managers[,10]),4)
round(TreynorRatio(managers[,1:6], managers[,8:7], Rf=.035/12),4) 
round(TreynorRatio(managers[,1:6], managers[,8:7], Rf = managers[,10]),4)

print(TreynorRatio(portfolio_bacon[,1], portfolio_bacon[,2], modified = TRUE)) #expected 0.7975 

print(TreynorRatio(managers['1996',1], managers['1996',8], modified = TRUE))
print(TreynorRatio(managers['1996',1:5], managers['1996',8], modified = TRUE)) 

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.