Potrei essere in grado di aiutarti con un elenco di simboli ticker per azioni (statunitensi e non statunitensi) e per ETF.
Yahoo fornisce un calendario dei guadagni che elenca tutte le azioni che annunciano i guadagni per un determinato giorno. Ciò include azioni non statunitensi.
Ad esempio, ecco oggi: http://biz.yahoo.com/research/earncal/20120710.html
l'ultima parte dell'URL è la data (in formato AAAAMMGG) per la quale desideri il calendario dei guadagni. Puoi scorrere diversi giorni e raschiare i simboli di tutte le azioni che hanno riportato guadagni in quei giorni.
Non vi è alcuna garanzia che yahoo disponga di dati per tutte le azioni che riportano i guadagni, soprattutto perché alcune azioni non esistono più (fallimento, acquisizione, ecc.), Ma questo è probabilmente un buon punto di partenza.
Se hai familiarità R
, puoi usare il
pacchetto qmao per farlo. (Vedi questo post ) se hai problemi con l'installazione.
ec <- getEarningsCalendar(from="2011-01-01", to="2012-07-01") #this may take a while
s <- unique(ec$Symbol)
length(s)
#[1] 12223
head(s, 20) #look at the first 20 Symbols
# [1] "CVGW" "ANGO" "CAMP" "LNDC" "MOS" "NEOG" "SONC"
# [8] "TISI" "SHLM" "FDO" "FC" "JPST.PK" "RECN" "RELL"
#[15] "RT" "UNF" "WOR" "WSCI" "ZEP" "AEHR"
Questo non includerà ETF, futures, opzioni, obbligazioni, forex o fondi comuni di investimento.
Puoi ottenere un elenco di ETF da yahoo qui: http://finance.yahoo.com/etf/browser/mkt
Questo mostra solo i primi 20. Hai bisogno dell'URL del link "Mostra tutto" in fondo a quella pagina . Puoi raschiare la pagina per scoprire quanti ETF ci sono, quindi costruire un URL.
L <- readLines("http://finance.yahoo.com/etf/browser/mkt")
# Sorry for the ugly regex
n <- gsub("^(\\w+)\\s?(.*)$", "\\1",
gsub("(.*)(Showing 1 - 20 of )(.*)", "\\3",
L[grep("Showing 1 - 20", L)]))
URL <- paste0("http://finance.yahoo.com/etf/browser/mkt?c=0&k=5&f=0&o=d&cs=1&ce=", n)
#http://finance.yahoo.com/etf/browser/mkt?c=0&k=5&f=0&o=d&cs=1&ce=1442
Ora puoi estrarre i ticker dalla tabella in quella pagina
library(XML)
tbl <- readHTMLTable(URL, stringsAsFactors=FALSE)
dat <- tbl[[tail(grep("Ticker", tbl), 1)]][-1, ]
colnames(dat) <- dat[1, ]
dat <- dat[-1, ]
etfs <- dat$Ticker # All ETF tickers from yahoo
length(etfs)
#[1] 1442
head(etfs)
#[1] "DGAZ" "TAGS" "GASX" "KOLD" "DWTI" "RTSA"
Questo è tutto l'aiuto che posso offrire, ma potresti fare qualcosa di simile per ottenere alcuni dei futuri che offrono raschiando queste pagine (questi sono solo futures statunitensi)
http://finance.yahoo.com/indices?e=futures ,
http://finance.yahoo.com/futures?t=energy ,
http://finance.yahoo.com/futures?t=metals ,
http: //finance.yahoo.com/futures?t=grains ,
http://finance.yahoo.com/futures?t=livestock ,
http://finance.yahoo.com/futures?t=softs ,
http: // finance.yahoo.com/futures?t=indices ,
E, per gli indici statunitensi e non statunitensi, potresti raschiare queste pagine
http://finance.yahoo.com/intlindices?e=americas ,
http://finance.yahoo.com/intlindices?e=asia ,
http://finance.yahoo.com/intlindices?e=europe ,
http: //finance.yahoo.com/intlindices?e=africa ,
http://finance.yahoo.com/indices?e=dow_jones ,
http://finance.yahoo.com/indices?e=new_york ,
http: // finance.yahoo.com/indices?e=nasdaq ,
http://finance.yahoo.com/indices?e=sp ,
http://finance.yahoo.com/indices?e=other ,
http: // finance. yahoo.com/indices?e=treasury ,
http://finance.yahoo.com/indices?e=commodities