Supongamos que quiero calcular la relación de Sharpe dada una tasa libre de riesgo de 0.05 para una cartera que consta de activos de 500 ETF. ¿Cómo puedo hacerlo en R dados los datos que he recopilado hasta ahora en mi código R? Lo siguiente es parte de mi código:
#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)
donde ETF son los datos extraídos del archivo .csv que contiene los datos de ETF.
Alguna ayuda será muy apreciada.