Es posible que pueda ayudar con una lista de símbolos de cotización para acciones (estadounidenses y no estadounidenses) y para ETF.
Yahoo proporciona un calendario de ganancias que enumera todas las acciones que anuncian ganancias para un día determinado. Esto incluye acciones fuera de Estados Unidos.
Por ejemplo, aquí está el día de hoy: http://biz.yahoo.com/research/earncal/20120710.html
la última parte de la URL es la fecha (en formato AAAAMMDD) para la que desea el Calendario de ganancias. Puede recorrer varios días y raspar los símbolos de todas las acciones que informaron ganancias en esos días.
No hay garantía de que Yahoo tenga datos para todas las acciones que reportan ganancias, especialmente porque algunas acciones ya no existen (quiebra, adquisición, etc.), pero este es probablemente un punto de partida decente.
Si está familiarizado R
, puede usar el
paquete qmao para hacer esto. (Vea esta publicación ) si tiene problemas para instalarlo.
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"
Esto no incluirá ETF, futuros, opciones, bonos, divisas o fondos mutuos.
Puede obtener una lista de ETF de yahoo aquí: http://finance.yahoo.com/etf/browser/mkt
Eso solo muestra los primeros 20. Necesita la URL del enlace "Mostrar todo" en la parte inferior de esa página. . Puede raspar la página para averiguar cuántos ETF hay y luego construir una 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
Ahora, puede extraer los Tickers de la tabla en esa página.
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"
Esa es toda la ayuda que puedo ofrecer, pero podría hacer algo similar para obtener algunos de los futuros que ofrecen raspando estas páginas (estos son solo futuros de EE.
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 ,
Y, para índices de EE. UU. Y fuera de EE. UU., Puede raspar estas páginas
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