차밍이

[Python] 캔들 스틱 차트 그리기, Candlestick Chart 그리기 - 파이썬 주식투자(3) 본문

투자/Quant & BackTest

[Python] 캔들 스틱 차트 그리기, Candlestick Chart 그리기 - 파이썬 주식투자(3)

2020. 10. 12. 15:51
반응형

파이썬을 활용해서 캔들 차트를 그리는 방법을 알아보겠습니다.

일반적으로 주식 시장에서 많이 사용되는 캔들 스틱 차트를 그려야 분석하는데 더욱 도움이 됩니다.

우선, 가장 중요한 캔들 차트를 그리기 위한 라이브러리를 설치해야 합니다.

 

mplfinance 라이브러리 설치

pip install mplfinance
pip install mpl_finance

버전이 조금 달라지면서 설치 이름이 조금씩 다른 것 같습니다.

이전에는 mpl_finance였던 것 같은데, 2020년 10월 11일 현재 기준으로 mplfinanace로 설치하는 것이 맞는 것 같습니다.

pip install mplfinance로 설치해주시면 되겠습니다.

설치 후에도 문제가 있다면, pip upgrade mplfinance를 진행해주시기 바랍니다.

 

KOSPI 데이터 가져오기 + 이동평균선 그래프 그리기

이전 게시글에서 진행한 KOSPI데이터 가져오기와 이동평균선 그리기 내용입니다.

해당 내용을 베이스로 설명을 이어가겠습니다.

아래 내용이 이해가 안 된다면, 이전 게시글을 참고해주세요.

[Python] KOSPI 이동평균선, 주가 이동평균선 구하기 // 파이썬 주식투자

 

[Python] KOSPI 이동평균선, 주가 이동평균선 구하기 // 파이썬 주식투자

파이썬에서 이동평균선을 그리는 방법을 알아보겠습니다. 해당 내용은 주가 이동평균선, 혹은 지수 이동평균선을 구하는 쪽에 활용할 수 있을 것입니다. 이평선 돌파 혹은 지지 등을 확인해 보�

chancoding.tistory.com

[Python] pandas_datareader 코스피 코스닥 지수 데이터 가져오기

 

[Python] pandas_datareader 코스피 코스닥 지수 데이터 가져오기

목차 pandas_datareader pandas_datareader library를 사용하면 훨씬 쉽게 코스피 or 코스닥 지수 데이터를 가져올 수 있습니다. 1. pandas_datareader 설치하기 기존에 pandas_datareader 를 설치하지 않았다면 a..

chancoding.tistory.com

from mpl_finance import candlestick2_ohlc
import matplotlib.ticker as ticker
import matplotlib.pyplot as plt
import pandas as pd
from pandas_datareader import data  
from datetime import datetime
from IPython.display import display

# 데이터를 가져올 날짜 설정
start_date = datetime(2020,5,8)
end_date = datetime(2020,10,8)

# 야후에서 코스피 데이터 가져오기
kospi_df = data.get_data_yahoo("^KS11", start_date, end_date) 
display(kospi_df.head(5))

# 지수 이동평균선 데이터 구하기
kospi_df['MA3'] = kospi_df['Close'].rolling(3).mean()
kospi_df['MA5'] = kospi_df['Close'].rolling(5).mean()
kospi_df['MA10'] = kospi_df['Close'].rolling(10).mean()
kospi_df['MA20'] = kospi_df['Close'].rolling(20).mean()
display(kospi_df.head(5))

# 그래프 그리기
fig, ax = plt.subplots(figsize=(10,5))

ax.set_title('KOSPI INDEX', fontsize=15)
ax.set_ylabel("KOSPI")
ax.set_xlabel("Date Time")
ax.plot(kospi_df.index, kospi_df[['Close','MA5','MA10']])
ax.legend(['Close','MA5','MA10'])
plt.show()

 

캔들 스틱 차트 그리기 

fig = plt.figure(figsize=(20,10))
ax = fig.add_subplot(111)
index = kospi_df.index.astype('str') # 캔들스틱 x축이 str로 들어감

# 이동평균선 그리기
ax.plot(index, kospi_df['MA3'], label='MA3', linewidth=0.7)
ax.plot(index, kospi_df['MA5'], label='MA5', linewidth=0.7)
ax.plot(index, kospi_df['MA10'], label='MA10', linewidth=0.7)

# X축 티커 숫자 20개로 제한
ax.xaxis.set_major_locator(ticker.MaxNLocator(20))

# 그래프 title과 축 이름 지정
ax.set_title('KOSPI INDEX', fontsize=22)
ax.set_xlabel('Date')

# 캔들차트 그리기
candlestick2_ohlc(ax, kospi_df['Open'], kospi_df['High'], 
                  kospi_df['Low'], kospi_df['Close'],
                  width=0.5, colorup='r', colordown='b')
ax.legend()
plt.grid()
plt.show()

 

 

이렇게 캔들스틱 차트를 사용해서 KOSPI 지수 그래프를 그려보았습니다.

이처럼 이동평균선과 캔들을 그려볼 수 있습니다.

반응형

관련된 글 보기

Comments