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).
TreynorRatio(Ra, Rb, Rf = 0, scale = NA, modified = FALSE)
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 |
To calculate modified Treynor ratio, we divide the numerator by the systematic risk instead of the beta.
Equation: $$TreynorRatio = \frac{\overline{(R_{a}-R_{f})}}{\beta_{a,b}}$$ $$ModifiedTreynorRatio = \frac{r_p - r_f}{\sigma_s}$$
http://en.wikipedia.org/wiki/Treynor_ratio, Carl Bacon, Practical portfolio performance measurement and attribution, second edition 2008 p.77
SharpeRatio
SortinoRatio
CAPM.beta
data(portfolio_bacon) data(managers) round(TreynorRatio(managers[,1], managers[,8], Rf=.035/12),4)#> [1] 0.2528round(TreynorRatio(managers[,1], managers[,8], Rf = managers[,10]),4)#> [1] 0.2428round(TreynorRatio(managers[,1:6], managers[,8], Rf=.035/12),4)#> HAM1 HAM2 HAM3 HAM4 HAM5 HAM6 #> Treynor Ratio: SP500 TR 0.2528 0.3925 0.201 0.1209 0.0052 0.3042round(TreynorRatio(managers[,1:6], managers[,8], Rf = managers[,10]),4)#> HAM1 HAM2 HAM3 HAM4 HAM5 HAM6 #> Treynor Ratio: SP500 TR 0.2428 0.3883 0.1956 0.1144 0.0219 0.3401round(TreynorRatio(managers[,1:6], managers[,8:7], Rf=.035/12),4)#> HAM1 HAM2 HAM3 HAM4 HAM5 HAM6 #> Treynor Ratio: SP500 TR 0.2528 0.3925 0.2010 0.1209 0.0052 0.3042 #> Treynor Ratio: EDHEC LS EQ 0.1297 0.1088 0.0776 0.0504 0.0014 0.0966round(TreynorRatio(managers[,1:6], managers[,8:7], Rf = managers[,10]),4)#> HAM1 HAM2 HAM3 HAM4 HAM5 HAM6 #> Treynor Ratio: SP500 TR 0.2428 0.3883 0.1956 0.1144 0.0219 0.3401 #> Treynor Ratio: EDHEC LS EQ 0.1242 0.1068 0.0753 0.0471 0.0060 0.1086print(TreynorRatio(portfolio_bacon[,1], portfolio_bacon[,2], modified = TRUE)) #expected 0.7975#> [1] 0.7806747print(TreynorRatio(managers['1996',1], managers['1996',8], modified = TRUE))#> [1] 5.184256print(TreynorRatio(managers['1996',1:5], managers['1996',8], modified = TRUE))#> HAM1 HAM2 HAM3 HAM4 HAM5 #> Treynor Ratio: SP500 TR 5.184256 9.129899 4.597618 2.990718 NA