2017年6月19日 星期一

r quantmod 套件下載財金資料與錯誤解決方法-Errors Downloading Stock Price Data from Yahoo Finance

本篇文章說明 quantmod 套件的使用方法與遭遇錯誤 "Errors Downloading Stock Price Data from Yahoo Finance" 的解決方法.

安裝 quantmod 套件

install.packages("quantmod")
library(quantmod)

下載財金資料 - Input

使用 getSymbols 函數以下載財金資料, 該函數預設的資料來源是 yahoo finance, 使用 from 參數可設定開始日期, 同理to參數可設定結束日期, 本例使from參數

getSymbols("IBM", from="2010-1-1")

理解財金資料 - Process


  • 使用 class 函數可知回傳物件是xts物件與zoo物件, 其中 xts 物件延伸來自於 zoo物件(注意: zoo不是動物園物件 ^_^). 
  • 使用 str 函數, 可知資料有1877列, 6欄資料. 
  • summary函數結果顯示 Index 屬性 為年月日資料
  • head 結果是從2010年1月4日開始, tail 結果表示資料至2017年6月16日結束.
  • 使用?periodReturn 可查詢計算報酬率的使用, 包括週,日,月,季的報酬率.


























繪製結果 - Output

  • plot 函數即可繪製資料圖形, 預設是以 Close 欄位為主
  • plot(IBM, major.ticks='years') , major.ticks 參數可顯示主要縱軸刻度位置, 本例為年, 此時圖形會較簡潔.
  • chartSeries(IBM) 提供收盤價(Close)與成交量(Volume)股票圖.

台股範例

台股使用的符號是 ^TWII, 如果有 NA, 可配合na.omit 將該NA資料刪除.
getSymbols("^TWII", from="2010-1-1") 

程式碼

# 安裝 quantmod 套件
install.packages("quantmod")
library(quantmod)

# 下載財金資料
getSymbols("IBM", from="2010-1-1")

# 理解財金資料
class(IBM)
str(IBM)
summary(IBM)

head(IBM)
tail(IBM)

# ?periodReturn
allReturns(IBM)
periodReturn(IBM, period='monthly',subset='2013::')  # 回傳自2013年至目前報酬率
periodReturn(IBM, period='yearly',subset='2013')     # 回自2013年報酬率
monthlyReturn(IBM, subset='2013::')
yearlyReturn(IBM, subset='2013::')

# 繪製結果
plot(IBM)
plot(IBM, major.ticks='years')
chartSeries(IBM)

# 台股範例,讀取資料-台灣加權指數 TWII (TSEC weighted index)
getSymbols("^TWII", from="2010-1-1")
dim(TWII)
summary(TWII)
chartSeries(TWII)



!!!Errors Downloading Stock Price Data from Yahoo Finance


在使用 quantmod 套件時, 如果資料下載顯示有錯誤, 參考以下步驟設定, 如果一般安裝與下載皆正常, 則不用使用此方法.

步驟1: 下載 Rtools 程式, 本程式具有建立套件等輔助工具
連結 http://cran.csie.ntu.edu.tw/bin/windows/Rtools/ , 選取 Rtools Downloads 下載.

步驟2: 安裝 Rtools 程式, 使用預設安裝選項,不可更改安裝路徑, 安裝完成後的目錄為 C:\Rtools

步驟3: 在 RStudio 程式中安裝 devtools 套件, 輸入 install.packages("devtools")

步驟4: 在 RStudio 程式中輸入以下R程式即可完成 quantmod 安裝.

devtools::install_github("joshuaulrich/quantmod", ref="157_yahoo_502")

# 參考: https://robotwealth.com/solved-errors-downloading-stock-price-data-yahoo-finance/
# end

沒有留言:

張貼留言