library(BatchGetSymbols)
library(tidyverse)

tickers <- GetSP500Stocks()$Tickers
first_date <- Sys.Date() - 3*365
last_date  <- Sys.Date()

df_stocks <- BatchGetSymbols(tickers = tickers, 
                             first.date = first_date, 
                             last.date = last_date)[[2]]

library(dplyr)
library(fGarch)

tab_models <- df_stocks %>%
  na.omit() %>%
  group_by(ticker) %>%
  do(my_garch = garchFit(formula = ~ arma(1,0) + garch(1,1), 
                         data = .$ret.adjusted.prices, 
                         trace = FALSE) ) 

tab_models <- tab_models %>%
  mutate(forecast_mean = predict(my_garch, 
                                 n.ahead = 1)$meanForecast[1],
         forecast_sd = predict(my_garch, 
                               n.ahead = 1)$standardDeviation[1],
         sharpe_index = forecast_mean/forecast_sd)

glimpse(tab_models)

# solution
idx <- which.max(tab_models$sharpe_index)
print(tab_models$ticker[idx])
# none
#my_answers <- make_random_answers(my_sol)
my_answers <- rep(NA, 5)

Question

No mesmo código utilizado na questão anterior, adicione uma nova coluna-lista com a estimação de um modelo ARMA(1,0)-GARCH(1,1) para os retornos de cada ação. Adicione outra coluna com a previsão de volatilidade (desvio padrão) em t+1. Ao dividir o retorno esperado calculado no item anterior pelo risco previsto, temos um índice de direção do mercado, onde aquelas ações com maior valor de índice apresentam maior retorno esperado por menor risco. Qual ação é mais atrativa e possui maior valor deste índice?

Solution


Meta-information

extype: string exsolution: r mchoice2string(c(TRUE, FALSE, FALSE, FALSE, FALSE), single = TRUE) exname: "function 01" exshuffle: TRUE



msperlin/adfeR documentation built on March 26, 2021, 3:05 a.m.