任何投資行為均有其風險,作為一名投資者,應為自己任何投資決策行為承擔所有風險。
本網站當盡力提供正確之資訊,所載資料均來自或本諸我們相信可靠之來源,但對其完整性、即時性和正確性不做任何擔保,如有錯誤或疏漏,本網站所有人及關係人,並不負任何法律責任。
本文非任何形式之投資建議,不保證所提供之資訊可以創造獲利、減少投資損失,亦不會鼓吹任何具體之投資行動。本網站所有人及關係人,對於本網站資訊使用者直接或間接依賴並參考相關資訊後,採取任何投資行為所導致之直接或間接損失,或因此產生之一切責任,均不負任何損害賠償及其他法律上之責任。
說明
本文說明如何將股票資料載入 R session,以利後續資料分析。
手動從 Yahoo Finance 下載股票資料
雖然網路上有教學文章在教人如何使用 Python、R 等軟體工具從網路上下載股票資料,建議還是手動下載 CSV 表格後,再自行載入 R session 比較好。
如果有實際寫過財經程式就會知道,這個過程往往無法一次到位,需要反覆修改、測試。下載股票資料是相對耗時的指令,不應該重覆這道指令。將股票資料載到本地端,就省下重覆抓取股票資料的時間。
到 Yahoo Finance,在其搜尋框輸入標的代號。選擇 Historical Data (歷史資料)。時距 (time period) 直接選擇最大 (max)。顯示 (show) Historical Prices (歷史價格)。頻率 (frequency) 為 Daily (每日)。按下 Apply (套用) 後,選擇下方 Download (下載):

下載後會得到 CSV 表格。多多會按照 asset-date.csv 的方式為表格重新命名。日後要找資料時,才知道該筆股票資料的最後日期為何。
將股票資料載入 R Session
只有兩行 R 指令,相當簡單:
itot <- read.csv("C:/Users/user/Downloads/ITOT-20230625.csv", header=TRUE, stringsAsFactors=FALSE)
itot$Date <- as.Date(itot$Date)
以本例來說,股票資料存在變數 itot
中。該變數的資料型態是 data frame。ITOT 是 iShares 的美國巿場 ETF。由於這檔 ETF 是 Core 系列 ETF,所以管理費很低。
第二行指令的目的是將 Date
欄位的字串轉為 date (日期),日後比較易於處理時間相關的運算。
讀入表格時,一定要保留標頭 (header)。日後有可能進行兩筆股票間的比較。有一致的標頭才能夠進行表格操作。
R 使用 factor 資料型態的目的是為了節省系統資源。但 factor 比字串 (string) 難處理。在資料量不大時,保留字串格式沒有什麼壞處。
股票資料格式
承上,這裡利用 R 語言內建的 head
函式來看股票資料長什麼樣子:
> head(itot)
Date Open High Low Close Adj.Close Volume
1 2004-01-23 25.1750 25.2400 24.9775 24.9775 17.45020 66800
2 2004-01-26 25.0600 25.3175 25.0600 25.3175 17.68775 10800
3 2004-01-27 25.3250 25.3400 25.1125 25.1125 17.54452 28800
4 2004-01-28 25.2000 25.2025 24.7425 24.7425 17.28602 29200
5 2004-01-29 24.8350 24.8775 24.7175 24.8775 17.38035 13200
6 2004-01-30 24.7925 24.8175 24.7500 24.8175 17.33842 178400
由於我們下載的資料的頻率是每日 (daily),每天會產生一筆資料。每筆資料有以下欄位
- Open:開盤價
- High:當日最高價
- Low:當日最低價
- Close:收盤價
- Adj.Close:校正後的收盤價
- Volume:交易量。以股來計算
請根據自身的想法來選擇合適的數據來運算。一般來說,做長線投資的話,都是看收盤價。