top of page
Search
  • Writer's picture里維

[R語言教學] 下載股價及交易量

用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: 純粹為數據項目取名方便日後使用,可隨自己喜歡定名


486 views0 comments

Recent Posts

See All

Commentaires


bottom of page