List

[R] quantmod 사용 하기

mooni43 2021. 1. 14. 14:19
반응형

요새 모두가 주식에 관심이 폭증하는데, 주식 정보 및 데이터를 추출하는 방법을 검색해보고

따라해 봤다.

 

검색해 보니까 방법이 여러 가지가 있는데,

 ① 주식 사이트에서 크롤링으로 하는 방법(Investing, Naver)

 ② Google 스프레드 시트에서 =GoogleFinance 함수를 이용해서 가져오는 방법

install.packages("quantmod")
install.packages("xts")

 ③ R의 여러 Package 들을 이용하는 방법 (R에서도 1) 형태로 가져오는 방법도 있음)

 

그 중에서 현재 시점 버전으로 ③ 형태로 데이터를 가져오는 방법을 테스트 해봤다.

 

우선 R, R Studio가 설치되어 있어야 한다.

 

1. 설치 및 다운로드( 이 부분은 Skip... ) https://rstudio.com/

 

2. 관련 Package Install

install.packages("quantmod")
install.packages("xts")

3. Library 불러오기

library(xts)
library(quantmod)

4. 기본적인 주가 가져오기

quantmod 함수

 

quantmod package | R Documentation

Quantitative Financial Modelling Framework Specify, build, trade, and analyse quantitative financial trading strategies. Functions in quantmod Name Description Defaults Manage Default Argument Values for quantmod Functions addADX Add Directional Movement I

www.rdocumentation.org

## 기본 함수 형태 
getSymbols(Symbols = NULL, 
           env = parent.frame(),
           reload.Symbols = FALSE,
           verbose = FALSE,
           warnings = TRUE,
           src = "yahoo",
           symbol.lookup = TRUE,
           auto.assign = getOption('getSymbols.auto.assign',TRUE),
           ...)
           
## 데이터 가져오기
## Symbols <- 가져오고자하는 종목 ticker 지정. KOSPI 는 뒤에 KS, KOSDAQ 은 뒤에 KQ
##            ★KOSDAQ 은 되지 않음(당일 결과만 가져옴, 나머지는 NA)
## src : 데이터를 가져오는 데이터 소스
##       현재 가져올 수 있는 데이터 소스 yahoo, google(18년 종료), MySQL, FRED, csv, RData, oanda, av
## from, to : 데이터를 가져오는 기간 

Samsung <- getSymbols(Symbols="005930.KS", src = "yahoo", 
           from= Sys.Date()-180, to = Sys.Date(), 
           auto.assign = FALSE)

# error. 당일 1 row만 가져옴. 
Seegeen <- getSymbols(Symbols="096530.KQ", src = "yahoo", 
           ## from= "2020-01-01", to = "2021-01-31", ( from, to 쓰면 에러 발생)
           auto.assign = TRUE)           
           
tail(Samsung, n=5)
tail(seegeen, n=5)

결과

5. 차트 그리기

 

##시가,고가,저가,종가,거래량,수정율
colnames(Samsung) <- c('open','high','low','close','volume','adjusted')

chartSeries(Samsung, up.col='red', dn.col='blue', theme = 'white')
addMACD()
addBBands()
addSMA();addSMA(30,col='blue')

결과

 

※ 기타 그릴수 있는 차트 리스트

 

코스닥이 조회안되는게 안 좋네요. 

 

 

반응형