CCXT Crypto Exchange Library 및 Python 시작하기



Airflow 관련 게시물here에서 이미 CCXT 라이브러리를 사용했습니다. 이 게시물에서는 특별히 라이브러리에 대해 논의하고 라이브러리를 사용하여 교환 또는 거래 자동화에서 다양한 종류의 데이터를 가져오는 방법에 대해 설명합니다.

CCXT는 무엇입니까



Crypto Currency e X change Trading Library(CCXT)는 많은 비트코인/이더/알트코인 교환 시장 및 판매자 API를 지원하는 암호 화폐 거래 및 전자 상거래를 위한 JavaScript/Python/PHP 라이브러리입니다. 100 exchanges 이상과 연결됩니다. 이 라이브러리의 가장 좋은 기능 중 하나는 Exchange agonistic입니다. 즉, Binance를 사용하든 FTX를 사용하든 루틴의 서명은 동일합니다. Python, Javascript 및 PHP에서 사용할 수 있습니다. 다양한 거래소에서 제공하는 공개 API와 비공개 API를 모두 지원하지만 몇 가지 공개 API 엔드포인트에 대해서만 설명하겠습니다.

개발 설정



라이브러리 설치는 매우 쉽습니다. 터미널에서 pip install ccxt를 실행하기만 하면 됩니다.

자, 라이브러리가 설치되었습니다. 교환기를 연결해 봅시다. 지금 바이낸스 거래소를 연결하고 있습니다.

교환에 연결



첫 번째이자 분명한 단계는 거래소를 먼저 연결하는 것입니다. 매우 쉽습니다.

# Connect binance binance = ccxt.binance()


마켓 로딩



거래소가 연결되었으니 이제 거래소에서 제공하는 모든 마켓을 불러올 차례입니다. 일반적으로 사용되지 않지만 특정 쌍을 사용할 수 있는지 여부에 대한 좋은 정보를 제공할 수 있습니다.

티커를 가져오는 중



BTC/USDT 관련 정보를 알아봅시다.

btc_ticker = binance.fetch_ticker('BTC/USDT') btc_ticker


그리고 다음을 반환합니다.

{'symbol': 'BTC/USDT', 'timestamp': 1634909924391, 'datetime': '2021-10-22T13:38:44.391Z', 'high': 65564.0, 'low': 62000.0, 'bid': 63363.89, 'bidVolume': 1.32351, 'ask': 63363.9, 'askVolume': 0.27138, 'vwap': 63105.52714333, 'open': 65470.0, 'close': 63363.9, 'last': 63363.9, 'previousClose': 65469.99, 'change': -2106.1, 'percentage': -3.217, 'average': None, 'baseVolume': 53395.84423, 'quoteVolume': 3369572897.3972454, 'info': {'symbol': 'BTCUSDT', 'priceChange': '-2106.10000000', 'priceChangePercent': '-3.217', 'weightedAvgPrice': '63105.52714333', 'prevClosePrice': '65469.99000000', 'lastPrice': '63363.90000000', 'lastQty': '0.00843000', 'bidPrice': '63363.89000000', 'bidQty': '1.32351000', 'askPrice': '63363.90000000', 'askQty': '0.27138000', 'openPrice': '65470.00000000', 'highPrice': '65564.00000000', 'lowPrice': '62000.00000000', 'volume': '53395.84423000', 'quoteVolume': '3369572897.39724530', 'openTime': 1634823524391, 'closeTime': 1634909924391, 'firstId': 1109039843, 'lastId': 1110609081, 'count': 1569239}}


Ticker 및 Timestamp 외에도 Open, High, Low, Close, Volume, Bid 및 Ask Price 등과 같은 데이터 포인트를 반환합니다.

OHLCV 데이터 가져오기



OHLCV 데이터를 가져오는 것은 매우 쉽습니다. 다음 작업만 수행하면 됩니다.

btc_usdt_ohlcv = binance.fetch_ohlcv('BTC/USDT','1d',limit=100)


여기서 첫 번째 인수는 거래 쌍이고 두 번째 인수는 일 수준 데이터, 분 또는 한 달이 필요한지 여부를 알려주는 기간입니다. 각 OHLCV 항목은 촛대를 나타냅니다. 지속 시간의 차이는 하루이므로 데이터는 항상 UTC 오전 12시 자정부터 24시간 차이가 납니다. 마지막 매개변수 limit은 선택사항입니다. 인쇄하면 데이터가 다음 형식으로 반환됩니다.

[[1634774400000, 66001.4, 66639.74, 62000.0, 62193.15, 68538.64537], [1634860800000, 62193.15, 63732.39, 62000.0, 62680.01, 24059.82478]]


데이터는 TIMESTAMP, OPEN, HIGH, LOW, CLOSE 및 VOLUME 형식으로 반환됩니다. 흥미롭게 만들어 봅시다. Binance 및 FTX 거래소에서 BTC/USDT 가격을 가져와 가까운 값의 그래프를 그릴 것입니다.



마감 대 거래량은 어떻습니까?



꽤 더럽죠? 마치 어린아이가 종이에 무엇인가를 스케치한 것처럼 이것을 변동성이라고 합니다!

주문서를 가져오는 중



이제 바이낸스와 FTX의 오더북을 불러오겠습니다.

orderbook_binance_btc_usdt = binance.fetch_order_book('BTC/USDT') orderbook_ftx_btc_usdt = ftx.fetch_order_book('BTC/USDT') 

bids_binance = orderbook_binance_btc_usdt['bids'] asks_binanace = orderbook_binance_btc_usdt['asks'] df_bid_binance = 

pd.DataFrame(bids_binance, columns=['price','qty']) df_ask_binance = pd.DataFrame(asks_binanace, columns=['price','qty'])


그래프를 그려봅시다!

fig, (ax1, ax2) = plt.subplots(2, figsize=(10, 8), dpi=80) ax1.plot(df_bid_binance['price'], 

df_bid_binance['qty'],label='Binance',color='g') ax1.fill_between(df_bid_binance['price'], 
df_bid_binance['qty'],color='g') ax2.plot(df_ask_binance['price'], df_ask_binance['qty'],label='FTX',color='r') 

ax2.fill_between(df_bid_binance['price'], df_bid_binance['qty'],color='r') ax1.set_title('Ask Price vs Quantity for Binance') ax2.set_title('Bid Price vs Quantity for Binance')
plt.show()


그리고 생산…



멋지지 않나요?

결론



그래서 이것은 CCXT 라이브러리에 대한 간략한 소개였습니다. 나는 단지 표면을 긁었다. 관심이 있다면 이 라이브러리를 기반으로 거래 봇을 만들 수 있습니다. 몇몇은 전에 그것을 했습니다. 언제나처럼 코드는 Github에서 사용할 수 있습니다.

2021년 10월 23일 http://blog.adnansiddiqi.me에서 원래 게시되었습니다.

좋은 웹페이지 즐겨찾기