우선, RStudio 및 필요한 패키지들의 설치가 필요하다. RStudio 설치 및 패키지들의 설치는 이전 포스팅에서 다룬 바 있다.
패키지들의 설치는 RStudio의 Tools의 Install Packages에 들어가서 설치할 수도 있고, 아래의 명령어를 실행하는 방식을 통해서도 설치 가능하다.
File – New File – R Script 또는 Ctrl + Shift + N을 눌러 R Script를 하나 만들어서 아래를 복붙하여 실행을 해보자.
아래 전체를 블록 선택한 후 Ctrl + Enter를 입력하면 아래 스크립트가 실행이 되면서 아래의 패키지들과 관련 dependencies를 설치한다.
(스크립트의 일부를 간단히 실행해볼 때는 실행하고자 하는 부분을 블록 선택한 후 Ctrl + Enter를 입력하면 된다.)
pkg = c('magrittr', 'quantmod', 'rvest', 'httr', 'jsonlite', 'readr', 'readxl', 'stringr', 'lubridate', 'dplyr', 'tidyr', 'ggplot2', 'corrplot', 'dygraphs', 'highcharter', 'plotly', 'PerformanceAnalytics', 'nloptr', 'quadprog', 'RiskPortfolios', 'cccp', 'timetk', 'broom', 'stargazer', 'timeSeries') new.pkg = pkg[!(pkg %in% installed.packages()[, "Package"])]
아래를 실행하면 다음과 같은 차트를 얻는다.
Ad는 수정 주가를 얻어 주는 함수이다. 액면 분할 등이 발생하였을 수 있으므로, 주식의 가치 변화를 볼 때는 수정 주가를 얻어주는 것이 일반적이다.
만약 auto.assign = True 이면 기본 티커명인 APPL에 다운로드 된 데이터가 저장된다. 임의로 정한 변수인 data에 저장하기 위해서는 auto.assign = FALSE 로 설정을 해준다.
library(quantmod) data = getSymbols('AAPL', from = '2000-01-01', to = '2020-04-24', auto.assign = FALSE) # auto.assign = True 이면 다운로드된 데이터가 임의로 정한 변수인 data 대신 티커명인 APPL에 저장 library(magrittr) data %>% Ad %>% chart_Series() # chart_Series(Ad(data))와 같다.

%>% 는 파이프 오퍼레이터를 의미한다. magrittr 패키지를 import 하면 사용할 수 있다. G(F(x))를 파이프 오퍼레이터로 표현하면 x %>% F %>% G 와 같다.
아래의 y와 z값은 동일하다. x의 각 성분에 log를 취한 후 그 값들 사이의 차이 값을 구한 후 이 값들을 exp 함수에 넣어 소수 2번째 자리까지 표현하는 과정이다. (소수 3번째 자리에서 반올림한다.)
참고로, x %>% log() 와 x %>% log(.) 은 동일하다. round 함수의 경우, 입력되는 변수들의 개수가 1개를 초과하므로, 이 때는 . 을 넣어주어 어디에 값이 들어가야 할지 알려주는 게 필요하다.
x = c(0.1234, 0.2345, 0.3456) y = round(exp(diff(log(x))), 2) library(magrittr) z = x %>% log() %>% diff() %>% exp() %>% round(., 2)

삼성전자의 주가 차트는 아래와 같이 얻을 수 있다. (삼성전자는 코스피 종목이므로 ‘종목코드.KS’ 형태로 표현된다. 코스닥 종목은 ‘종목코드.KQ’ 형태로 표현된다.)
Ad 함수를 사용하지 않아야 제대로 된 수정 주가가 반영된 그래프가 떴다. (국내 주식들의 데이터는 관리가 잘 되지 않는 경향이 있다.)
library(quantmod) data = getSymbols('005930.KS', from = '2000-01-01', to = '2020-04-24', auto.assign = FALSE) library(magrittr) data %>% chart_Series() # chart_Series(data)와 같다

미 국채 10년물 금리는 아래 스크립트를 실행하여 얻을 수 있다. 미국 연방준비은행(미 연준) Federal Reserve Economic Data(FRED)의 데이터이다.
참고로, from, to를 통한 기간 설정 옵션은 먹히지 않았다. 아래 library 부분은 이미 import 하였으면 다시 import 해줄 필요가 없다.
library(quantmod) getSymbols('DGS10', src = 'FRED', auto.assign = True) # auto.assign = True 이면 다운로드된 데이터가 기본 티커명인 DGS10 에 저장 library(magrittr) DGS10 %>% chart_Series() # chart_Series(DGS10)와 같다

아래는 원/달러 환율의 변동을 아래의 스크립트를 통해 차트 형태로 얻은 것이다.
library(quantmod) getSymbols('DEXKOUS', src = 'FRED') # auto.assign에 대한 값을 특별히 설정해주지 않으면 auto.assign = True 가 기본값이다. library(magrittr) DEXKOUS %>% chart_Series() # chart_Series(DEXKOUS)와 같다

이와 같은 간단한 방법으로 각종 지수들의 변동을 차트로 얻는 것이 가능하다.
댓글을 달려면 로그인해야 합니다.