Być może będę mógł pomóc z listą symboli giełdowych dla akcji (amerykańskich i spoza USA) oraz funduszy ETF.
Yahoo udostępnia kalendarz zarobków, który zawiera listę wszystkich akcji, które ogłaszają zarobki w danym dniu. Obejmuje to akcje spoza USA.
Na przykład, oto dzisiaj: http://biz.yahoo.com/research/earncal/20120710.html
ostatnia część adresu URL to data (w formacie RRRRMMDD), dla której chcesz uzyskać kalendarz zarobków. Możesz zapętlić kilka dni i zeskrobać symbole wszystkich akcji, które zgłosiły zyski w tych dniach.
Nie ma gwarancji, że Yahoo posiada dane dotyczące wszystkich akcji, które zgłaszają zyski, zwłaszcza że niektóre akcje już nie istnieją (upadłość, przejęcia itp.), Ale jest to prawdopodobnie dobry punkt wyjścia.
Jeśli znasz R
, możesz użyć do
tego pakietu qmao . (Zobacz ten post ), jeśli masz problemy z instalacją.
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"
Nie będzie to obejmować żadnych funduszy ETF, kontraktów futures, opcji, obligacji, forex ani funduszy inwestycyjnych.
Możesz pobrać listę ETF z yahoo tutaj: http://finance.yahoo.com/etf/browser/mkt
To pokazuje tylko pierwsze 20. Potrzebujesz adresu URL linku "Pokaż wszystko" na dole tej strony . Możesz zeskrobać stronę, aby dowiedzieć się, ile jest funduszy ETF, a następnie utworzyć adres 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
Teraz możesz wyodrębnić Tickery z tabeli na tej stronie
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"
To prawie cała pomoc, jaką mogę zaoferować, ale możesz zrobić coś podobnego, aby uzyskać niektóre z oferowanych przez nie kontraktów futures, zeskrobując te strony (są to tylko kontrakty futures na Stany Zjednoczone)
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 ,
A w przypadku indeksów amerykańskich i spoza USA możesz zeskrobać te strony
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