Возможно, я смогу помочь со списком тикеров для (американских и неамериканских) акций и для ETF.
Yahoo предоставляет Календарь доходов, в котором перечислены все акции, объявляющие прибыль за определенный день. Это включает в себя неамериканские акции.
Например, вот сегодняшний: http://biz.yahoo.com/research/earncal/20120710.html
последняя часть URL-адреса - это дата (в формате ГГГГММДД), для которой вы хотите создать Календарь доходов. Вы можете прокрутить несколько дней и очистить символы всех акций, которые сообщили о прибыли в эти дни.
Нет никакой гарантии, что у yahoo есть данные по всем акциям, которые сообщают о прибыли, тем более что некоторые акции больше не существуют (банкротство, поглощение и т. Д.), Но это, вероятно, достойная отправная точка.
Если вы знакомы с этим 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 на Yahoo здесь: http://finance.yahoo.com/etf/browser/mkt
Это показывает только первые 20. Вам нужен URL-адрес ссылки «Показать все» внизу этой страницы. . Вы можете очистить страницу, чтобы узнать, сколько существует ETF, а затем создать 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