Package: async-bithumb
bithumb-apiAsynchronus Python Wrapper for Bithumb API
Based on pybithumb:https://github.com/sharebook-kr/pybithumbInstallationpipinstallasync-bithumbImportimportasynciofromasync_bithumbimportBithumbPublic API암호화폐 목록빗썸이 지원하는 암호화폐 목록을 얻어온다.print(asyncio.run(Bithumb.get_tickers()))['BTC', 'ETH', 'DASH', 'LTC', 'ETC', 'XRP', 'BCH', 'XMR', 'ZEC', 'QTUM', 'BTG', 'EOS', 'ICX', 'TRX', 'ELF', 'MCO', 'OMG', 'KNC', 'GNT', 'ZIL', 'WAXP', 'POWR', 'LRC', 'STEEM', 'STRAT', 'AE', 'ZRX', 'REP', 'XEM', 'SNT', 'ADA', 'CTXC', 'BAT', 'WTC', 'THETA', 'LOOM', 'WAVES', 'ITC', 'TRUE', 'LINK', 'RNT', 'ENJ', 'PLX', 'VET', 'MTL', 'INS', 'IOST', 'TMTG', 'QKC', 'BZNT', 'HDAC', 'NPXS', 'LBA', 'WET', 'AMO', 'BSV', 'APIS', 'DAC', 'ORBS', 'VALOR', 'CON', 'ANKR', 'MIX', 'LAMB', 'CRO', 'FX', 'CHR', 'MBL', 'MXC', 'FAB', 'OGO', 'DVP', 'FCT', 'FNB', 'FZZ', 'TRV', 'PCM', 'DAD', 'AOA', 'XSR', 'WOM', 'SOC', 'EM', 'QBZ', 'BOA', 'WPX', 'FLETA', 'BNP', 'SXP', 'COS', 'EL', 'BASIC', 'HC', 'BCD', 'XVG', 'XLM', 'PIVX', 'GXC', 'BHP', 'BTT', 'HYC', 'VSYS', 'IPX', 'WICC', 'LUNA', 'AION', 'COSM']최근 체결가격get_current_price 함수는 최근 체결 가격을 조회한다.forcoininasyncio.run(Bithumb.get_tickers())[:5]:print(coin,asyncio.run(Bithumb.get_current_price(coin)))BTC 8190000.0
ETH 171900.0
DASH 82450.0
LTC 48810.0
ETC 6180.0시장 현황 상세정보get_market_detail 함수는 00시 기준으로 시가/고가/저가/종가/거래량 정보를 반환한다.forcoininasyncio.run(Bithumb.get_tickers()):print(coin,asyncio.run(Bithumb.get_market_detail(coin)))BTC (8162000.0, 8240000.0, 8050000.0, 8190000.0, 3117.77267769)
ETH (170500.0, 172600.0, 168000.0, 171500.0, 34816.2510681)
DASH (81950.0, 82700.0, 80600.0, 82450.0, 1651.47875125)
LTC (48440.0, 49410.0, 48270.0, 48810.0, 3344.70736905)
ETC (6150.0, 6250.0, 6075.0, 6180.0, 77986.83409064)매수/매도 호가get_orderbook 함수는 호가 정보를 가져온다.
기본적으로 5개를 가져오며, limit 파라미터로 30개까지 지정할 수 있다.forcoininasyncio.run(Bithumb.get_tickers()):print(coin,asyncio.run(Bithumb.get_orderbook(coin)))시간별 가격정보시가/종가/고가/저가/거래량 정보를 DataFrame으로 반환한다.df=asyncio.run(Bithumb.get_candlestick("BTC"))print(df.tail(5))openclosehighlowvolumetime2020-03-3015:00:007740000.07848000.08019000.07683000.07913.6967182020-03-3115:00:007847000.07630000.07893000.07534000.05163.6702062020-04-0115:00:007633000.08194000.08216000.07569000.09123.5837772020-04-0215:00:008193000.08162000.08499000.08057000.011354.9502472020-04-0408:00:008162000.08177000.08240000.08050000.03082.263414chart_intervals 파라미터로 조회 간격을 조정할 수 있다.1m, 3m, 5m, 10m, 30m, 1h, 6h, 12h, 24hdf=asyncio.run(Bithumb.get_candlestick("BTC",chart_intervals="30m"))print(df.tail(5))웹소켓WebSocket을 이용해서현재가,호가,체결에 대한 정보를 수신한다.첫 번째 파라미터로 수신정보를 입력하며ticker,orderbook,transaction을 사용할 수 있다.두 번째 파라미터는 구독할 필터를 설정하며 암호화폐의 티커를 입력한다. 현재 버전에서는 원화 시장만을 지원한다.if__name__=="__main__":wm=WebSocketManager("ticker",["BTC_KRW"])foriinrange(10):data=wm.get()print(data)wm.terminate()주의할 사항은 multiprocessing을 위해__name__guard를 반드시 써줘야한다는 것이다.PyQt5와 함께 웹소켓을 사용하는 예제는 다음과 같다.버튼을 클릭하면 웹소켓에서 가격정보를 가져와서 화면에 출력한다.https://gist.github.com/mr-yoo/a3d1f8a4152f94cf61e4bc566659cd20Private API로그인connectkey와 secretkey를 사용해서 로그인한다.
두 key를 생성하는 방법은링크를 참조한다.bithumb=Bithumb("conkey","seckey")수수료 조회print(asyncio.run(bithumb.get_trading_fee()))잔고 조회forcoininasyncio.run(Bithumb.get_tickers():)print(coin,asyncio.run(bithumb.get_balance(coin)))매수/매도 주문비트코인을 1100만원에 1개 매수/매도한다.desc=asyncio.run(bithumb.buy_limit_order("BTC",11000000,1))desc=asyncio.run(bithumb.sell_limit_order("BTC",11000000,1))매수/매도 잔량 확인quanity=asyncio.run(bithumb.get_outstanding_order(desc))매수/매도 주문 취소status=asyncio.run(bithumb.cancel_order(desc))마켓별 주문 조회비트코인 원화 마켓의 최신 주문내역을 가져온다.status=asyncio.run(bithumb.user_transactions("BTC","KRW"))