############################################################ ##################### Outspoken Market ##################### ############################################################ # > Collecting data from Yahoo Finance # # > Last update ...... 22/11/2017 # # > Developed by Leandro Guerra # # > www.outspokenmarket.com # # > www.youtube.com/outspokenmarket # # > A liberdade eh o caminho # # > Freedom is the way # ############################################################ library(quantmod) #Seleção do período de análise startDate = as.Date("2017-01-01") endDate = as.Date("2017-11-22") #Seleção das ações tickers = c('^BVSP','BTCUSD=X') #Captura dos dados getSymbols(tickers, src = "yahoo", from = startDate, to = endDate) #Cálculo dos retornos BVSP_RET <- dailyReturn(BVSP) BTC_RET <- dailyReturn(`BTCUSD=X`) #Funções auxiliares index(BVSP_RET) #Retorna as datas (que estão como índice das linhas) coredata(BVSP_RET) #Retorna os dados principais, ou seja, os valores length(BVSP_RET) #716 length(BTC_RET) #497 length(BVSP_RET[index(BVSP_RET)%in%index(BTC_RET)]) #411 ### Para plotar os mesmos dias dos retornos #Atribui os valores que são conjuntos BVSP_SAME <- BVSP_RET[index(BVSP_RET)%in%index(BTC_RET)] BTC_SAME <- BTC_RET[index(BTC_RET)%in%index(BVSP_RET)] plot(coredata(BTC_SAME),coredata(BVSP_SAME)) fit_RET_BVSP_BTC <- lm(BVSP_SAME~BTC_SAME) summary(fit_RET_BVSP_BTC) abline(h=median(BVSP_SAME), col = "blue") abline(v=median(BTC_RET), col = "red") abline(fit_RET_BVSP_BTC, col="green") #Retornos acumulados BVSP_ACCUM <- cumsum(BVSP_RET) plot(index(BVSP_ACCUM),coredata(BVSP_ACCUM), type = 'l', col=ifelse(coredata(BVSP_ACCUM)>0,"blue", "red"), main = "Ibov acumulado" ) BTC_ACCUM <- cumsum(BTC_RET) plot(index(BTC_ACCUM),coredata(BTC_ACCUM), type = 'l', col=ifelse(coredata(BTC_ACCUM)>0,"blue", "red"), main = "BTCUSD acumulado" ) #Retornos das segundas-feiraS BTC_SEG <- BTC_RET[weekdays(index(BTC_RET)) == "lunedì"] plot(BTC_SEG) BTC_ACCUM <- cumsum(BTC_SEG) plot(index(BTC_ACCUM),coredata(BTC_ACCUM), type = 'l', col=ifelse(coredata(BTC_ACCUM)>0,"blue", "red"), main = "BTCUSD acumulado" )