程式
R中ETF的夏普比率
假設我想計算由 500 只 ETF 組成的投資組合的無風險利率為 0.05 的夏普比率。鑑於迄今為止我在 R 程式碼中收集的數據,我如何在 R 中執行此操作?以下是我的程式碼的一部分:
#To extract ETF-prices for each column prices <- data.frame(ETF=ETF,row.names = dates) head(prices) # Function for calculating continous returns & log returns returnscalc <- function(x){ diff(x)/x[-length(x)] } returns <- apply(prices, 2, returnscalc) head(returns) # Function for calculating geometric mean geomAveCalc <- function(x){ (prod((1+x)))^(1/length(x))-1 } weeklymean <- apply(returns, 2, geomAveCalc) yearlymean <- matrix((1+weeklymean)^52-1) yearlystd <- sqrt (52 * apply(returns, 2, var)) yearlycov <- 52 * cov(returns)
其中 ETF 是從包含 ETF 數據的 .csv 文件中提取的數據。
一些幫助將不勝感激。
嘗試:
library(PerformanceAnalytics) SharpeRatio.annualized(Returns, Rf = 0.05, scale = 252, geometric = TRUE)