Sử dụng gói quantmod trong R để lấy dữ liệu tài chính trên Internet
chuc1803@gmail.com
Một chức năng rất mạnh của R là cho phép lấy trực tiếp các dữ liệu trên Internet, nhất là dữ liệu tài chính theo thời gian (FTS - Financial Time Series) bằng gói quantmod. Với gói quantmod của R cho phép download khoảng 40000 chuỗi dữ liệu thời gian từ các nguồn như Yahoo Finance, Google Finance, …).
Bài viết này minh họa cách sử dụng gói quantmod để lấy dữ liệu chuỗi thời gian trên các nguồn thông dụng như Yahoo Finance, Google Finance.
Lấy dữ liệu tài chính của công ty Apple (code AAPL) từ khi niêm yết (2007-01-03) đến hiện tại (2017-08-04) trên nguồn Yahoo Finance:
#Install and load quantmod package
install.packages("quantmod")
library(quantmod) #Load quantmod library
Sys.Date() # Show the current date
#Get FTS of Apple
getSymbols(Symbols = "AAPL", src = "yahoo")
AAPL <- data.frame(AAPL) # Convert to data frame
fix(AAPL) # display the data
dim(AAPL) #Show number of rows and columns
str(AAPL) #Show the data strucrure
head(AAPL) #Show 6 first rows
tail(AAPL) #Show 6 last rows
Vẽ các đồ thị thường dùng trong phân tích chứng khoán
chartSeries(AAPL, TA=NULL)
Trong đồ thị trên, trục x biễu diễn chiều thời gian, trục y biễu diễn khoảng giá của cổ phiếu Apple, mặc định nền (theme) cả đồ thị là màu đen. Tham số TA=”NULL” có nghĩa là đồ thị không thêm bất cứ tham số phân tích nào.
#Vẽ biểu đồ giá và khối lượng giao dịch của AAPL lấy được với nền trắng
chartSeries(AAPL, theme = "white")
Thêm các chỉ số phân tích kỹ thuật vào đồ thị
# Thêm MACD (Moving Average Convergence Divergence) vào giá chứng khoán của apple
addMACD()
#Adds Bollinger bands to the apple stock price.
addBBands()
addCCI() # Add Commodity channel index
addADX() #Add Directional Movement Indicator
addCMF() #Add Chaiken Money Flow
#Trích giá đóng cửa của mã chứng khoán AAPL và vẽ đồ thị của giá đóng cửa
Apple_closeprice = Cl(AAPL)
plot(Apple_closeprice) # Plotting the close price
# Vẽ đồ thị histogram cho giá đóng của của AAPL
hist(AAPL[,4],main = "Apple Close", breaks =25)
#Vẽ đồ thị cho 1 khoảng thời gian xác định (từ 2016-12-31 đến 2017-03-28") với nền trắng
chartSeries(AAPL, theme = "white", subset = "2016-12-31::2017-03-28")
#Thu thập dữ liệu tài chính của Apple trong khoảng thời gian xác định và vẽ đồ thị
getSymbols(Symbols = "AAPL", src = "yahoo", from = "2016-01-01", to = "2017-03-28")
barChart(AAPL, theme = "white")
#Biểu đồ nến
candleChart(AAPL, multi.col = TRUE, theme = "white")
#Lấy dữ liệu tài chính của Google từ nguồn Yahoo Finance
getSymbols(Symbols="GOOG", src="yahoo")
#Lấy dữ liệu tài chính của Yahoo từ nguồn Google Finance
getSymbols("YHOO", src = "google")
# Lấy tỉ giá EUR/USD từ 2017/01/01
getFX("EUR/USD", from = "2017-01-01")
dim(EURUSD)
# Lấy giá của vàng niêm yết bằng USD từ 2017-01-01.
getMetals(Metals = "gold", base.currency = "USD", from = "2017-01-01")
XAUUSD
# lấy các báo cáo tài chính của Apple trong 3 năm liên tiếp (mặc định)
getFinancials("AAPL")
viewFinancials(AAPL.f, type = "BS", period = "A")
Trong câu lệnh trên:
# type =BS”: xem bảng cân đối kế toán (Balance Sheet)
# type = CF: Xem dòng tiền (Cash Flow)
# type = IS: xem báo cáo doanh thu (Income statement)
# period = "A": Xem báo cáo theo năm (Annual)
# period = "Q": Xem báo cáo theo quí (Quarter)