用R下載股價及交易量很簡單,只需用上"BatchGetSymbols" library便可。
Code:
library(BatchGetSymbols)
tempA1 <- BatchGetSymbols(tickers = "AAPL"
, first.date = "2010-01-01"
, last.date = Sys.Date()
, thresh.bad.data = 0
, do.cache = FALSE)
tempA2 <- tempA1$df.tickers
tempA3 <- select(tempA2, ticker, ref.date, price.close, price.adjusted, price.open, price.high, price.low, volume)
DataPrice <- rename(tempA3, date=ref.date, price=price.close, priceO=price.open, priceAdj=price.adjusted, priceH=price.high, priceL=price.low)
Output:
> head(DataPrice)
ticker date price priceAdj priceO priceH priceL volume
1 AAPL 2010-01-04 30.57286 26.53848 30.49000 30.64286 30.34000 123432400
2 AAPL 2010-01-05 30.62571 26.58437 30.65714 30.79857 30.46429 150476200
3 AAPL 2010-01-06 30.13857 26.16151 30.62571 30.74714 30.10714 138040000
4 AAPL 2010-01-07 30.08286 26.11315 30.25000 30.28571 29.86429 119282800
5 AAPL 2010-01-08 30.28286 26.28675 30.04286 30.28571 29.86572 111902700
6 AAPL 2010-01-11 30.01572 26.05486 30.40000 30.42857 29.77857 115557400
注釋︰
tickers: 填上股票代號;以美股為例,Apple是"AAPL", Amazon是"AMZN";以港股為例,長江和記實業是"0001.hk" 匯豐控股是"0005.hk"
first.date: 指明數據起始日期;不填的話只會下載很少的日數
last.date: 指明數據最後日期,若不填,便會自動下載至最後有數據的日期;或者可填Sys.Date(),是指運行時電腦系統的日期
thresh.bad.data: 不填的話default是0.75,意思是指若在期內此股票有超過75%的日子都沒有數據,便會略過此股票不下載;若打算建立最齊全的數據庫,建議選擇最低值0
do.cache: 用cache的話,下載速度會較快,但並不會更新舊有已下載的數據;舊有的Adjusted Price可能會隨著派息而改動以及近期的Volume也有時會有更新,故此,若不是下載大量數據的話,建議不用Cache以強制重新下載最新數據
tempA2: 下載後會有兩個dataframe,分別是df.control及df.tickers,選取df.tickers
tempA3: 若要建立大型數據庫,建議只選取未來需要用的數據項目。ret.adjusted.prices及ret.closing.prices為衍生數據項目,建議不需儲在原始大型數據庫
DataPrice: 純粹為數據項目取名方便日後使用,可隨自己喜歡定名
コメント