바이낸스 차트를 DataFrame으로 출력하자
바이낸스 차트를 DataFrame으로 출력하려면,
먼저 바이낸스에서 제공하는 모듈을 설치하자
pip install ccxt 를 하면 설치가 된다.
그리고 바이낸스에서 제공하는 티커를 확인하자.
import ccxt import pandas as pd import numpy as np binance=ccxt.binance()
# 바이낸스의 거래 정보를 가져온다 markets = binance.fetch_tickers()
# 바이낸스 등록 코인 티커를 Dict 로 가져온다
여기서 markets 변수의 keys() 명령어를 입력하면 현재 거래되고 있는 티커들을 볼 수 있다.
![바이낸스 차트를 DataFrame으로 출력하자 1 바이낸스 차트](https://mblogthumb-phinf.pstatic.net/MjAyMTExMjlfMjQx/MDAxNjM4MTgxODU2MjMw.X2Al61yH8MLsQENue5cctvTrp4VOmJOrJsu57fgUD8sg.J0XYiUoLlE6N-965mvGlwHGVgI1WDbq8QbRe5qawajQg.PNG.imw2008/image.png?type=w800)
바이낸스에서 제공하는 코인 정보
비트코인 티커는 BTC/USDT 다.
fetch_ohlcv() 에 티커 정보를 전달하면 ohlcv 차트를 제공하는데 재작업이 필요하다
binance.fetch_ohlcv(“BTC/USDT”) #비트코인 ohlcv 차트
![바이낸스 차트를 DataFrame으로 출력하자 2 image](https://mblogthumb-phinf.pstatic.net/MjAyMTExMjlfMjgx/MDAxNjM4MTgyMDE3NTQw.cosGMVEoc3KrPEsl9-3cTGmaPc0bW4YxlhsSMpIWF2Ig.pvKqMJrZx8jQDhThJVa1nNi870nzQMwGDQtKhtWqV1wg.PNG.imw2008/image.png?type=w800)
가독성도 안 좋아서 분석자의 직관력을 이용할 수 없는 상태
그래서 이렇게 코드를 변경하면 예쁜 차트를 얻을 수 있다
#timeframe을 1d 로하면 일봉 차트를 얻을 수 있다. 1h, 2h, 4h 등 편하게 입력할 수 있다
waves = binance.fetch_ohlcv(symbol=“BTC/USDT”, timeframe=‘1h’, since=None, limit=200)
df=pd.DataFrame(waves, columns=[‘datetime’,‘open’,‘high’,‘low’,‘close’,‘volume’])
df[‘datetime’]=pd.to_datetime(df[‘datetime’], unit=‘ms’)
df.set_index(‘datetime’, inplace=True) df #엔터
바이낸스 API를 이용해 비트코인 (USDT) OHLCV 차트를 판다스 DataFrame으로 보기 좋게 변형시켰다.
![바이낸스 차트를 DataFrame으로 출력하자 3 image](https://mblogthumb-phinf.pstatic.net/MjAyMTExMjlfMjE1/MDAxNjM4MTgyMTcyMDMy.G-LhB44KK7limkNZEAh0V5havCVw0mCczTgI8WhjXaUg.3K4f0Lm43VWOXUeGo66IRhZMtdUUQEedtIlf1psDSwAg.PNG.imw2008/image.png?type=w800)
코드들을 함수로 묶으면 나중에 유지보수나 사용하기가 편리하다.
아래가 그 결과다.
(단, 최대한 간결하고 가독성을 좋게했을 때나 가능하다)
def binance_ohlcv(coin): “”“티커를 입력하면 바이낸스에서 ohlcv 차트 반환”“” binance=ccxt.binance() ohlcvs = binance.fetch_ohlcv(coin) waves = binance.fetch_ohlcv(symbol=coin, timeframe=‘1h’, since=None, limit=200) df=pd.DataFrame(waves, columns=[‘datetime’,‘open’,‘high’,‘low’,‘close’,‘volume’]) df[‘datetime’]=pd.to_datetime(df[‘datetime’], unit=‘ms’) df.set_index(‘datetime’, inplace=True) return df
함수 사용 결과
![바이낸스 차트를 DataFrame으로 출력하자 4 image](https://mblogthumb-phinf.pstatic.net/MjAyMTExMjlfNyAg/MDAxNjM4MTgyMzIzODEz.I9AUtBnGFkdv5jN_4uuDXVO8VHJ-fdU5Ph-RKFOT2ZEg.Ui1TQAOvpcfOIRVtzW4eOfyZosrTEUiDBfSIkZMhFa8g.PNG.imw2008/image.png?type=w800)
잘 쓰세용~
추천하는 글