Trading/암호화폐2020. 10. 31. 01:24

 

bybit-ws 개요 

- 파이썬에서 암호화폐 거래소 바이빗 의 웹소켓 통신 간편하게 구현가능한 라이브러리. 

- 바이빗에서 공식 배포 (일반 개인 개발자 취미로 배포하는 것보다 지속가능성  양호할것임.). 

- USD종목과 USDT 종목에서 모두 사용가능하게 작업중이나 현재(2020.10.31) USDT 관련은 구현되어있지 않음. 

- - USD 종목 : BTCUSD, ETHUSD, EOSUSD, XRPUSD

- - USDT 종목 : BTCUSDT, ETHUSDT, LINKUSDT,LTCUSDT, XTZUSDT

 

 

bybit-ws 설치 방법. 

- bybit-ws 설치 구문 : pip install bybit-ws

 

 

 

bybit-ws 샘플코드  

from BybitWebsocket import BybitWebsocket
import logging
from time import sleep


def setup_logger():
    # Prints logger info to terminal
    logger = logging.getLogger()
    logger.setLevel(logging.INFO)  # Change this to DEBUG if you want a lot more info
    ch = logging.StreamHandler()
    # create formatter
    formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s")
    ch.setFormatter(formatter)
    logger.addHandler(ch)
    return logger


if __name__ == "__main__":
    logger = setup_logger()
    # inverse perpetual
    ws = BybitWebsocket(wsURL="wss://stream.bybit.com/realtime",
                         api_key="", api_secret=""
                        )

    ws.subscribe_orderBookL2("BTCUSD")
    # ws.subscribe_kline("BTCUSD", '1')
    # ws.subscribe_instrument_info('BTCUSD')
    # ws.subscribe_trade("BTCUSD") # !!! bug. 인자 전달하면 오류 생김. 버그. 
    # ws.subscribe_order()
    # ws.subscribe_stop_order()
    # ws.subscribe_execution()
    # ws.subscribe_position()
    # ws.subscribe_insurance() # only support inverse perpetual
    # ws.subscribe_wallet() # only support USDT perpetual
    while(1):
        logger.info(ws.get_data("orderBookL2_25.BTCUSD"))
        # logger.info(ws.get_data('candle.1.BTCUSD'))
        # logger.info(ws.get_data("instrument_info.100ms.BTCUSD"))
        # logger.info(ws.get_data("trade.BTCUSD"))
        # logger.info(ws.get_data('order'))
        # logger.info(ws.get_data('stop_order'))
        # logger.info(ws.get_data("execution"))
        # logger.info(ws.get_data("position"))
        # logger.info(ws.get_data('insurance.BTC'))
        # logger.info(ws.get_data('insurance.ETH'))
        # logger.info(ws.get_data('insurance.EOS'))
        # logger.info(ws.get_data('insurance.XRP'))
        # logger.info(ws.get_data('wallet'))
        sleep(1)


    # usdt perpetual
    # ws_public = BybitWebsocket(wsURL="wss://stream.bybit.com/realtime_public",
    #                      api_key="", api_secret=""
    #                     )
    # ws_private = BybitWebsocket(wsURL="wss://stream.bybit.com/realtime_private",
    #                      api_key="", api_secret=""
    #                     )
    # ws_public.subscribe_orderBookL2("BTCUSDT")
    # ws_public.subscribe_kline("BTCUSDT", '1')
    # ws_public.subscribe_instrument_info('BTCUSDT')
    # ws_public.subscribe_trade("BTCUSDT")  # !!! bug. 인자 전달하면 오류 생김. 버그. 

    # ws_private.subscribe_order()
    # ws_private.subscribe_stop_order()
    # ws_private.subscribe_execution()
    # ws_private.subscribe_position()
    # ws.subscribe_insurance() # only support inverse perpetual
    # ws_private.subscribe_wallet() # only support USDT perpetual
    # while(1):
        # logger.info(ws_public.get_data("orderBookL2_25.BTCUSDT"))
        # logger.info(ws_public.get_data('candle.1.BTCUSDT'))
        # logger.info(ws_public.get_data("instrument_info.100ms.BTCUSDT"))
        # logger.info(ws_public.get_data("trade.BTCUSDT"))
        # logger.info(ws_private.get_data('order'))
        # logger.info(ws_private.get_data('stop_order'))
        # logger.info(ws_private.get_data("execution"))
        # logger.info(ws_private.get_data("position"))
        # logger.info(ws_private.get_data('wallet'))

        # sleep(1)

 

파이썬에서 bybit-ws 설치하고 동작확인까지 

 

 

 

bybit-ws 깃허브

 

 

bybit-exchange/api-connectors

Libraries for connecting to the Bybit API. Contribute to bybit-exchange/api-connectors development by creating an account on GitHub.

github.com

 

 

 

 

연관 

- 라이브러리 사용하지 않고 초간단 웹소켓 시세 수신 파이썬 코딩예. 

 

암호화폐. API. bybit. 실시간 시세수신. WebSocket. Python

개요. - 암호화폐 거래소 바이빗 에서 제공하는 WebSocket 기반 실시간 시세수신(= 실시간 체결 틱 데이터) 파이썬 코드. 코드. - Python 실행 영상. 코드 구현 요점 설명. 코드에서 함수 websocket.send('{"op

igotit.tistory.com

 

 

 

거래소. bybit. 바이빗. 개요. 가입방법. 암호화폐

바이빗 거래소 주요특징. - 거래가능 종목 : - BTCUSD , ETHUSD , EOSUSD , XRPUSD - 최대 레버리지 100 까지 가능 매매자가 레버리지 사용 유무 선택가능. 바이빗 레버리지 상세   - - 장점 : 레버리지 1에서

igotit.tistory.com

 

 

 


첫 등록 : 2020.10.31

최종 수정 : 

단축 주소 : https://igotit.tistory.com/2673

 


 

Posted by 리치굿맨

댓글을 달아 주세요

  1. 안녕하세요?

    저는 그냥 bybit 모듈로 코딩을 하려고 하는데요.
    직접 웹소켓으로 통신하면 좋은 점이 있는건가요??

    2020.11.11 19:01 [ ADDR : EDIT/ DEL : REPLY ]
    • bybit 거래소에서의 API 형식이 REST, WebSocket 이 있고, 이것이 동일기능을 다른 형식으로 제공하는게 아니라, 각각의 기능이 다른겁니다.

      REST 형식의 통신수단은 내 프로그램에서 주문송신등과 같은 비실시간 통신용으로 사용되며, WebSocket 형식은 실시간 시세수신, 포지션 변경이벤트 등과 같은 실시간 수신용으로 사용됩니다.

      bybit 모듈에는 REST 통신만 지원하기 때문에 실시간 시세 수신 안됩니다.

      저같은 경우엔 실시간 정보 활용하지 않고 코딩해본 적은 없는데... REST 만으로 캔들 정보 요청하면서 진행해도되는 로직이면 REST 만으로도 가능하긴 합니다.

      2020.11.11 21:09 신고 [ ADDR : EDIT/ DEL ]
  2. 안녕하세요

    죄송한데 BTCUSDT를 테스트 서버에서 가져오는것은 불가능인가요?? 가져와지지가 않아서요 ㅠㅠ

    2021.01.19 14:53 [ ADDR : EDIT/ DEL : REPLY ]
    • 네 작년 11월경에 확인된 바로는 USDT 관련 종목은 구현작업중이었는데 아직도 지원되지 않나 보네요.

      거래소들이 API 는 완전하게 제공하지만, 중간단계의 편리한 라이브러리 제공에서 별로 적극적이지 않은 이유는 이 분야가 대중화 된 시점이 아니고 초기 선두주자들이 참여된 시점이다 보니 참여 개발자들이 내공 높은 경우가 많고 그냥 API 기반으로 작업 하는걸 선호하기 때문이기도 합니다...

      라이브러리 이용하지 않고 API 기반 파이썬으로 소켓 통신 예제소스코드 https://igotit.tistory.com/2490 간단합니다.

      2021.01.19 15:04 신고 [ ADDR : EDIT/ DEL ]
  3. 자료가 많아서 너무 감사드리네요.

    위의 자료는 되는데

    라이브러리 이용하지 않고 API 기반 파이썬으로 소켓 통신 예제소스코드 https://igotit.tistory.com/2490
    <== 이걸 테스트 해보려고 했더니

    Traceback (most recent call last):
    File "c:\y700 down\1\vscode\bybit_websocket_realtime_fill_data.py", line 5, in <module>
    import websockets
    ModuleNotFoundError: No module named 'websocket

    이렇게 나오고 안되네요. 왜 그런지 혹시 알수 있을까요.

    2021.06.17 14:02 [ ADDR : EDIT/ DEL : REPLY ]
    • import websockets 에서 알 수 있듯이 본 코드는 파이썬 모듈(=라이브러리 패키지)중에 websockets 이용하고 있기에 파이썬 개발환경에서 해당 모듈을 먼저 설치 하면 정상 실행됩니다.

      설치구문예 : pip install websockets

      vs2019 의 파이썬 인 경우 모듈 설치방법. https://igotit.tistory.com/2574 참조하여 websockets 설치하면 됩니다.

      2021.06.17 15:12 신고 [ ADDR : EDIT/ DEL ]
  4. 다원

    도움 감사드립니다.

    2021.06.17 19:15 [ ADDR : EDIT/ DEL : REPLY ]