ฉันอาจสามารถช่วยเกี่ยวกับรายการสัญลักษณ์สำหรับหุ้น (ในสหรัฐฯและนอกสหรัฐฯ) และสำหรับ ETF ได้
Yahoo มีปฏิทินรายได้ที่แสดงรายการหุ้นทั้งหมดที่ประกาศผลประกอบการในแต่ละวัน ซึ่งรวมถึงหุ้นที่ไม่ใช่ของสหรัฐฯ
ตัวอย่างเช่นวันนี้คือhttp://biz.yahoo.com/research/earncal/20120710.html
ส่วนสุดท้ายของ URL คือวันที่ (ในรูปแบบ YYYYMMDD) ที่คุณต้องการปฏิทินรายได้ คุณสามารถวนซ้ำหลายวันและขูด Symbols ของหุ้นทั้งหมดที่รายงานผลประกอบการในวันนั้น
ไม่มีการรับประกันว่า 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: // ไฟแนนซ์. yahoo.com/indices?e=treasury ,
http://finance.yahoo.com/indices?e= Accommodities