我没完没了地搜索,希望能找到一种方法,通过 http://finance.yahoo.com 获取所有雅虎股票代码的完整(每日更新)列表。
雅虎拥有全球许多交易所的股票、期货等信息,我想得到一份可通过雅虎获得的所有股票代码的合并列表。我已经尝试过 YQL,但它们有一个 "where symbol = (or in)" 子句限制,因此我无法从符号中选择 *。
因此,基本上,一次获取单个符号或多个符号的详细信息很容易,但我似乎找不到如何获取所有可用股票的列表。
谁能帮帮我?
我也遇到过类似的问题。Yahoo 并不提供该功能,但您可以通过查看 nyse.com'list 上的 document.write 语句并找到 .js 文件来获得该功能,在该文件中,他们恰好将以给定字母开头的公司列表存储为 js 数组字面形式。您还可以从 nasdaq.com 这里获得整洁的 csv 文件: http://www.nasdaq.com/screening/companies-by-name.aspx?letter=0&exchange=nasdaq&render=download(用 exchange=nyse 替换 exchange=nasdaq,以获取 Nyse 符号)。
我也许能提供(美国和非美国)股票和 ETF 的股票代码列表。
雅虎提供的 "收益日历 "列出了当日公布收益的所有股票。 包括非美国股票。 其中包括非美国股票。
例如,这里是今天的: http://biz.yahoo.com/research/earncal/20120710.html
URL的最后部分是日期(YYYYMMDD格式),您希望获得该日期的 收益日历。 您可以循环浏览数天,并搜索在这些日子里报告收益的所有股票的股票代码。 的符号。
雅虎不能保证拥有所有报告收益的股票的数据、 尤其是有些股票已不复存在(破产、收购等)、 但这可能是一个不错的起点。
如果您熟悉 "R",可以使用 qmao 软件包 来完成这项工作。 (请参阅本帖)。 如果在安装时遇到困难,请参阅[本帖]())。
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"
这不包括任何 ETF、期货、期权、债券、外汇或共同基金。
您可以从雅虎获取 ETF 列表:http://finance.yahoo.com/etf/browser/mkt。 这只显示前 20 种。 您需要该页面底部的 "Show All" 链接的 URL。 链接的 URL。 您可以搜索该页面,找出有多少 然后构建一个 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
现在,您可以从该页面的表格中提取股票代码
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"
这就是我能提供的所有帮助,但你也可以做一些类似的事情来 获取他们提供的部分期货信息。 (这些只是美国期货)
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、
对于美国和非美国的索引,您可以从这些网页中搜索
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