파이썬 바이낸스 API와 판다스 캔들 스틱 차트로 시계열 데이터 분석

파이썬 바이낸스 API와 판다스 캔들 스틱 차트로 시계열 데이터 분석

실감나는 비트코인 가격으로 파이썬 데이터 분석 연습을 이어가 보겠습니다. 이번 포스팅을 통해 시계열 데이터의 변화를 확인할 수 있는 캔들 스틱 차트 그리는 방법을 익히게 될 것입니다. 파이썬 바이낸스 API로 비트코인에 대한 시계열 데이터를 가져온 후 matplotlib 패키지로 캔들 스틱 차트를 그리는 과정을 확인해 보세요.


글의 순서

캔들 스틱 차트
파이썬 파이낸스 API, matplotlib로 캔들 스틱 차트 그리기
캔들 스틱 차트를 그릴 수 있는 파이썬 패키지 : matplotlib/mplfinance
파이썬 코드 : 파이썬 바이낸스 API로 가져온 시계열 데이터를 캔들 스틱 차트로 가시화


캔들 스틱 차트

캔들 스틱 차트는 시계열 데이터, 특히 주식, 선물, 외환과 같은 자산의 변동을 한눈에 파악하기 좋게 만든 그래프입니다. 캔들은 봉으로 불리기도 하며, 주가나 코인 가격 그래프에서 막대 모양으로 나타납니다. 캔들(candle)은 초를 뜻하는데, 막대 모양이 초를 닮아있기도 합니다.

캔들 스틱 차트로부터 특정 시간 간격에서 가격이 어떻게 변화했는지를 알 수 있습니다. 막대의 몸통은 특정 시간 구간에서 시작가와 종가를 표시해주며, 꼬리처럼 보이는 가는 선은 최고가와 최저가를 보여줍니다.

시장에서 주식이나 코인을 거래하는 사람들은 캔들 스틱 차트를 보면서 추세를 식별하고, 거래를 할지 말지 판단하기도 합니다.



파이썬 파이낸스 API, matplotlib로 캔들 스틱 차트 그리기

캔들 스틱 차트를 쉽게 그릴 수 있도록 여러개의 파이썬 라이브러리가 있습니다. 이 포스팅에서는 matplotlib를 이용해서 그려보겠습니다. 캔들로부터 시작가, 최고가, 최저가, 종료가를 알 수 있는데요. 이를 뜻하는 것이 ohlc입니다. 여기서, o는 시작가(open), h는 최고가(high), l은 최저가(low), c는 종료가(close), 그리고 v는 총 거래량(volume)을 의미합니다. 시작가를 시가, 최고가를 고가, 최저가를 저가, 종료가를 종가라고도 부릅니다.

파이썬 바이낸스 API의 get_historical_klines() 함수로 코인 가격을 시계열 데이터로 쉽게 가져올 수 있는데, 이 함수의 출력값이 ohlc라는 캔들 형태입니다.


캔들 스틱 차트를 그릴 수 있는 파이썬 패키지 : matplotlib/mplfinance

시계열 데이터 가시화를 위해 matplotlib의 pyplot 을 사용했었습니다. 지난 포스팅 파이썬 데이터 분석 : 판다스 데이터프레임 통계량, 그래프 라는 포스팅에서 matplotlib의 pyplot을 활용법을 확인하실 수 있습니다.

이번 포스팅에서는 mplfinance라는 패키지 사용법을 정리해보겠습니다.
(1) mplfinance 패키지 설치

pip install mplfinance

혹시 이미 설치되어 있다면,
pip install –upgrade mplfinance

맥이나, 리눅스 머신을 사용하신다면 pip 대신 pip3입니다.

(2) ohlcv 형태의 비트코인 시계열 데이터 추출 후 판다스 데이터프레임에 저장
Date, Open, High, Low, Close, Volume

(3) DataFrame에 저장된 Date 열을 index로 사용

(4) mplfinance의 plot 함수로 시계열 데이터 가시화 : 캔들 스틱 차트로 보기 위해 type=’candle’ 롤 plot 함수의 파라미터로 추가


파이썬 코드 : 파이썬 바이낸스 API로 가져온 시계열 데이터를 캔들 스틱 차트로 가시화

지금까지의 과정을 ‘파이썬 바이낸스 API로 가져온 시계열 데이터를 캔들 스틱 차트로 가시화’ 파이썬 코드에 나타내었습니다. 번호로 매겨놓은 주석과 출력 결과를 참고해주시기 바랍니다.

이 코드의 #06) 단계인 ‘Date 열의 형태를 epoch에서 Pandas.Timestamp로 변경 후 Date 열을 index로 설정’이라는 부분은 지난 포스팅 파이썬 바이낸스 API 시계열 데이터분석. 판다스 시간 처리에서 적용했던 방법보다 훨씬 간단합니다. 판다스 함수를 사용했기 때문인데, apply, lambda 부분은 별도의 포스팅에서 좀 더 자세히 알아보겠습니다.

mplfinance의 plot 함수를 사용할 때, 넘겨줘야 하는 파라미터는 type, style, mav, volume 등이 있습니다. 기본은 mplfinance.plot(df)입니다. 여기서 df는 ohlcv 데이터가 담겨있는 DataFrame 변수입니다. 실습코드에서는 df_core로 설정되어 있습니다. 이 코드에서 style을 삭제하면, mplfinance가 제공하는 기본 형태의 스틱 차트를 그릴 수 있으며, volume=True를 삭제하면, 캔들 차트만 보여줍니다.

다음 포스팅에서는 이런 파라미터를 바꿔가며 원하는 스타일의 그래프를 그리는 방법에 대해 알아보겠습니다.


마치며 …

파이썬 바이낸스 API로 가져온 비트코인 가격으로 파이썬 데이터 분석 연습을 이어가고 있습니다. 이번 포스팅에서는 시계열 데이터의 변화를 확인할 수 있는 캔들 스틱 차트와 캔들 스틱 차트 그리는 방법을 정리하였습니다

다음 포스팅에서는 파이썬 판다스 mplfinance 패키지의 plot 함수의 파라미터를 바꿔가며 원하는 스타일의 캔들 차트를 그리는 방법에 대해 알아보겠습니다.

 

 

함께 참고하면 더 좋은 글 :
캔들 차트의 의미, 시장 진입 시점은?
파이썬 바이낸스 API, mplfinance로 캔들 차트 파라미터 연습
mplfinance 캔들 차트 스타일
파이썬 데이터 분석 : 판다스 데이터프레임 통계량, 그래프
파이썬 바이낸스 API 시계열 데이터분석. 판다스 시간 처리
바이낸스 코인거래소 API Key로 계좌에 접속하는 파이썬 프로그래밍
파이썬 바이낸스 API로 시계열 데이터를 가져오는 파이썬 프로그래밍
파이썬 데이터 분석 : 판다스 데이터프레임 통계량, 그래프
파이썬 프로그래밍 시작


참고자료

Financial Markets Data Visualization using Matplotlib

Leave a Comment