캔들스틱 차트를 파이썬 matplotlib의 pyplot으로 그릴 수 있다면 다른 기술적 분석 지표들과 함께 시장 상황을 복합적으로 분석할 수 있습니다. 이번 포스팅에서는 캔들스틱 차트와 스토캐스틱 RSI를 함께 그리는 방법을 알아보겠습니다. 핵심은 두 차트의 시간을 맞춰줘야 한다는 것입니다.
글의 순서
캔들스틱 차트와 스토캐스틱 RSI 간의 날짜 맞추기
캔들스틱 차트의 몸통 두께
두 차트의 간격을 조절하는 plt.subplots_adjust
파이썬 코드 : 캔들스틱 차트와 스토캐스틱 RSI 비교
캔들스틱 차트와 스토캐스틱 RSI 간의 날짜 맞추기
두 그래프의 x축을 동일한 날짜 간격으로 설정해야만 헷갈리지 않고 시장 상황을 분석할 수 있습니다. 캔들스틱 차트의 x축 레이블을 날짜로 설정하고, fig, axs = plt.subplots(2, 1, figsize=(12, 10), sharex=True)이라는 구문으로 두 그래프의 x축을 공유할 수 있도록 설정했습니다. 이렇게 하면 두 그래프의 날짜 간격이 일치하게 됩니다.
또한, df[‘Date’]를 사용하여 x축 레이블을 날짜로 설정하고, 각 날짜의 캔들스틱 차트를 그릴 수 있도록 하였습니다. 이때, 그래프에서 보여주는 날짜의 시작점과 끝점을 axs[1].set_xlim([tstt_KST, tend_KST])로 설정하여 날짜 간격이 맞출 수 있도록 하였습니다.
캔들스틱 차트의 몸통 두께
지난 포스팅에서 알아봤던 것처럼 candle_width = max(0.1, 0.5 * (axs[1].get_window_extent().width / len(df)))라는 구문을 사용하였습니다. 이는 그래프의 너비를 가져와 len(df)로 나누어서 그래프의 넓이에 맞게 캔들스틱의 몸통 두께를 설정합니다. 당연히 그래프의 너비가 달라지고, 캔들의 개수가 달라지면 캔들스틱의 두께가 그에 맞게 동적으로 설정됩니다.
두 차트의 간격을 조절하는 plt.subplots_adjust
plt.subplots_adjust(hspace=0.05)를 추가하여 subplot 간의 수직 간격을 설정했습니다. hspace 값은 두 그래프 사이의 간격을 제어하며, 이 값을 줄이면 그래프 간의 간격이 좁아집니다. hspace의 기본값이 0.2이니까, 이 구분을 생략하면 0.05로 설정했을 때보다 간격이 4배로 커집니다.
파이썬 코드 : pyplot으로 그리는 캔들스틱, 스토캐스틱 RSI 차트
지금까지 캔들스틱 차트와 스토캐스틱 RSI와 같은 기술적 지표를 동시에 그리는데 중요한 사항을 짚어봤습니다. 이를 종합한 파이썬 코드를 아래의 실습코드에 나타내었습니다.
![pyplot 캔들스틱 차트, 스토캐스틱 RSI 차트](https://coffee4m.com/wp-content/uploads/2024/06/Candle-stoRSI_pyplot.png)
마치며 …
이번 포스팅에서는 캔들스틱 차트와 스토캐스틱 RSI를 함께 그리는 방법을 알아보았습니다. 이처럼 캔들스틱 차트를 파이썬 matplotlib의 pyplot으로 그릴 수 있다면 다른 기술적 분석 지표들과 함께 시장 상황을 복합적으로 분석할 수 있습니다. 핵심은 두 차트의 시간을 맞춰줘야 한다는 것입니다. 이 밖에도 보다 눈으로 확인하기 편하도록 캔들스틱의 두께를 동적으로 조절하는 방법, 각 그래프간 간격을 조절하는 방법도 적용해보시기 바랍니다.
함께 참고하면 좋은 글
▶ 캔들 차트의 의미와 파이썬 pyplot으로 그리는 캔들스틱 차트
▶ 캔들 차트의 의미, 시장 진입 시점은?
▶ 스토캐스틱 RSI, 파이썬 바이낸스 API로 시계열 데이터 분석
▶ 하이킨 아시 차트, 파이썬 바이낸스 API로 시계열 데이터 분석
▶ 파이썬 바이낸스 API로 시계열 데이터를 가져오는 파이썬 프로그래밍
▶ 파이썬 바이낸스 API와 판다스 캔들 스틱 차트로 시계열 데이터 분석
▶ mplfinance 캔들 차트 스타일
▶ 캔들 차트 스타일 변경 (mplfinance, customization)
▶ 파이썬 바이낸스 API, mplfinance로 캔들 차트 파라미터 연습
▶ 시계열 데이터 분석 : 추세분석 지표 6가지
참고자료
▶ Wikipedia, Candlestick chart