R: quantmod::getSymbols.yahoo fixing

tdazio

Nuovo forumer
Da qualche giorno yahoo finance sembra aver modificato la struttura dei dati storici impedendo a getSymbols di scaricare i dati dei titoli.
Il fix ufficiale è presente nella r610 su r-forge.
Aspettando il passaggio della versione stabile sul CRAN mi sono scritto una function per risolvere il problema. Magari può servire:


############################################################
##
## getSymYahoo(symbol, from, to)
##
## sostituisce l'istruzione getSymbols() per prelevare
## storici da yahoo.finance che sembra mal-funzionare
## dall'inizio del 2014. Usa quantmod e XTS.
## Grazie a markbreman on R-Sig-Finance, Fourth quarter 2013
## eventuali errori sono miei. tdazio
##
############################################################

getSymYahoo <- function(symbol=NULL, from="1900-01-01", to=Sys.Date())
{

from2 <- as.Date(from)
to2 <- as.Date(to)
a <- as.character(as.integer(format(from2, "%m"))-1)
b <- format(from2, "%d")
c <- format(from2, "%Y")
d <- as.character(as.integer(format(to2, "%m"))-1)
e <- format(to2, "%d")
f <- format(to2, "%Y")

url <- paste("http://ichart.finance.yahoo.com/table.csv?s=", symbol,
"&a=", a, "&b=", b, "&c=", c, "&d=", d, "&e=", e, "&f=", f,
"&g=d&q=q&y=0&z=", symbol, "&x=.csv", sep="")

download.file(url, "xxx", quiet = TRUE)

x <- as.xts(read.csv("xxx", header=FALSE, skip=1,
col.names=c("Date", "Open", "High", "Low", "Close", "Volume", "Adjusted"),
row.names=1))
file.remove("xxx")
return(x)
}
##
## Fine
################################################################



># es. di utilizzo
>library(quantmod)
>spy <- getSymYahoo("SPY")
>head(spy)
>eni <- getSymYahoo("ENI.MI",from="2008-01-01")
>head(eni)
>eni.rett <- adjustOHLC(eni,use.Adjusted = T)
>head(eni.rett)

tdazio
 
prima: "http://ichart.yahoo.com/table.csv
dopo: "http://ichart.finance.yahoo.com/table.csv


un finance in + ...mortacci loro
 
Confermo, adesso getSymbols() funziona perfettamente.

Che simpaticoni 'sti ragazzi di Yahoo, chissà cosa gli è venuto in mente ieri :D
ah, ecco: dopo circa un'ora e mezza di tentativi, ieri mi ero convinto di non avere capito come funzionava :wall: dopo questo tuo msg, improvvisamente ho capito come funziona :lol:
ho scelto bene il giorno per imparare ad usarla :D

C
 
Evviva, speriamo si fermino qui ^_^
Una cosa che non tutti sanno: da qualche mese sono stati cambiati i tiker degli indici Dow Jones.
Ora si scaricano dal 1928 come: DJIA, DJTA, DJUA


>library(quantmod)
>getSymbols("DJIA",from="1900-01-01")
>head(DJIA)


tdazio
 

Users who are viewing this thread

Back
Alto