程式

R中ETF的夏普比率

  • November 22, 2017

假設我想計算由 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)

引用自:https://quant.stackexchange.com/questions/37029