Можливо, я можу допомогти зі списком тикерних символів для акцій (США та інших країн) та для 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
Тепер ви можете дістати Tickers із таблиці на цій сторінці
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