Saya mungkin dapat membantu dengan daftar simbol ticker untuk saham (AS dan non-AS) dan untuk ETF.
Yahoo menyediakan Kalender Penghasilan yang mencantumkan semua saham yang mengumumkan penghasilan untuk hari tertentu. Ini termasuk saham non-AS.
Misalnya, inilah hari ini: http://biz.yahoo.com/research/earncal/20120710.html
bagian terakhir dari URL adalah tanggal (dalam format YYYYMMDD) yang Anda inginkan untuk Kalender Penghasilan. Anda dapat mengulang beberapa hari dan mengikis Simbol semua saham yang melaporkan pendapatan pada hari-hari itu.
Tidak ada jaminan bahwa yahoo memiliki data untuk semua saham yang melaporkan pendapatan, terutama karena beberapa saham sudah tidak ada lagi (kebangkrutan, akuisisi, dll.), Tetapi ini mungkin merupakan titik awal yang layak.
Jika Anda sudah terbiasa R
, Anda dapat menggunakan
paket qmao untuk melakukan ini. (Lihat posting ini ) jika Anda mengalami kesulitan menginstalnya.
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"
Ini tidak termasuk ETF, futures, opsi, obligasi, forex atau reksa dana.
Anda bisa mendapatkan daftar ETF dari yahoo di sini: http://finance.yahoo.com/etf/browser/mkt
Yang hanya menampilkan 20 ETF pertama. Anda memerlukan URL dari link "Tampilkan Semua" di bagian bawah halaman itu . Anda dapat mengikis halaman untuk mengetahui berapa banyak ETF yang ada, lalu membuat 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
Sekarang, Anda dapat mengekstrak Tickers dari tabel di halaman itu
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"
Itu tentang semua bantuan yang dapat saya tawarkan, tetapi Anda dapat melakukan sesuatu yang serupa untuk mendapatkan beberapa masa depan yang mereka tawarkan dengan menghapus halaman-halaman ini (Ini hanya berjangka AS)
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 ,
Dan, untuk indeks AS dan non-AS, Anda dapat menghapus halaman ini
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=omodities