파이썬을 이용해 캔들 스틱 차트를 만드는 방법입니다.
이전까지 mpl_finance 패키지를 사용했으나, 지원이 중단되어 mplfinance 패키지를 사용해야합니다.
캔들 차트를 그리기 위해 필요한 패키지들은 아래와 같습니다.
import pandas_datareader.data as web
import datetime
import matplotlib.pyplot as plt
import mplfinance as mpf
만약 패키지가 없으신 분들은 prompt를 실행하고 다운을 받으시길 바랍니다.
pip install pandas_datareader.data
pip install datetime
pip install matplotlib.pyplot
pip install mplfinance
이제 주식의 주가 데이터를 불러오도록 하겠습니다. 종목은 삼성전자로 선택하였고, 기간은 2021년 1월 1일부터 2021년 8월 20일까지의 데이터를 불러오겠습니다.
start = datetime.datetime(2021, 1, 1)
end = datetime.datetime(2021, 8, 20)
samsung = web.DataReader("005930.KS", "yahoo", start, end)
위 코드를 입력하면 2021년 1월 1일부터 2021년 8월 20일 까지의 삼성전자의 고가, 저가, 시가, 종가, 거래량, 수정주가를 가져올 수 있습니다.
In[7]: samsung
Out[7]:
High Low Open Close Volume Adj Close
Date
2021-01-04 84400.0 80200.0 81000.0 83000.0 38655276.0 82268.570312
2021-01-05 83900.0 81600.0 81600.0 83900.0 35335669.0 83160.648438
2021-01-06 84500.0 82100.0 83300.0 82200.0 42089013.0 81475.625000
2021-01-07 84200.0 82700.0 82800.0 82900.0 32644642.0 82169.460938
2021-01-08 90000.0 83000.0 83300.0 88800.0 59013307.0 88017.460938
... ... ... ... ... ...
2021-08-13 76000.0 74100.0 75800.0 74400.0 61270643.0 74400.000000
2021-08-17 75100.0 74000.0 74000.0 74200.0 30944847.0 74200.000000
2021-08-18 74600.0 73100.0 73900.0 73900.0 29192631.0 73900.000000
2021-08-19 74400.0 73100.0 73500.0 73100.0 22166298.0 73100.000000
2021-08-20 73900.0 72500.0 73500.0 72700.0 22364803.0 72700.000000
[159 rows x 6 columns]
그리고 이 데이터를 이용해 캔들 차트를 만들도록 하겠습니다.
mpf.plot(samsung, type='candle', mav=(10, 20, 60), volume=True, title='SAMSUNG', figratio=(10,5), tight_layout=True)
plt.show()
위 코드를 실행하면 기본 이미지로 아래와 같은 그래프가 나오게 됩니다. type은 차트의 타입을 정하는 것으로 아무것도 입력하지 않으면 Bar 차트가 나오게 되고, type='candle'을 입력하면 캔틀 차트가 나오게 됩니다. mav는 이동평균선을 표시할 수 있게 해주는 것이며, title은 그래프에 제목을 입력하며, figratio는 그래프의 크기를 설정, tight_layout은 좌우 공백을 제거해줍니다.
mpf.plot(samsung, type='candle', mav=(10, 20, 60), volume=True, title='SAMSUNG', figratio=(10,5), tight_layout=True, style='yahoo')
plt.show()
이 외에도 mplfinance.plot에서 지원하는 기본 스타일들이 있습니다. 예를 들어 style='yahoo'를 넣게 되면 아래와 같은 스타일의 차트가 나오게 됩니다.
이 외에도 'binance', 'blueskies', 'brasil', 'charles', 'checkers', 'classic', 'default', 'mike', 'nightclouds', 'sas', 'starsandstripes'의 스타일 있으며, 어떻게 나오는 지 궁금하시는 분은 (클릭)을 눌러서 확인하시길 바랍니다.
import pandas_datareader.data as web
import datetime
import matplotlib.pyplot as plt
import mplfinance as mpf
# 데이터를 가져올 날짜 설정
start = datetime.datetime(2021, 1, 1)
end = datetime.datetime(2021, 8, 20)
# 야후에서 삼성전자 주가 가져오기
samsung = web.DataReader("005930.KS", "yahoo", start, end)
# 차트 설정하기
mpf.plot(samsung,
type='candle', # 캔들 차트
mav=(10, 20, 60), # 10일, 20일, 60일 이동평균선 표시
volume=True, #거래량 표시
style=s,
title='SAMSUNG',
figratio=(10,5),
tight_layout=True) #좌우 공백 제거
plt.show()
'코딩 갤러리 > 데이터분석' 카테고리의 다른 글
[파이썬] MACD 크로스 매매기법 코스피200 적용 결과 (0) | 2022.05.02 |
---|---|
[파이썬] MACD 매매기법 백테스팅하고 그래프로 만들기 (0) | 2022.03.20 |
[파이썬] 20일 이평선을 돌파한 주식종목 찾기 (2) | 2021.09.17 |
[파이썬] 코스피와 코스닥 종목코드 가져오기 (0) | 2021.09.17 |
[파이썬] 코스피, 달러, 채권 간 상관관계 분석을 위한 코드 (0) | 2021.09.17 |