Получение данных о ценах с биржи Bybit с использованием Python

GetCoder.ru
Изображение статьи

Получайте данные о ценах криптовалют с биржи Bybit через WebSocket API, используя Python.

В этой статье мы рассмотрим пример использования Python для получения данных о ценах с биржи Bybit. Мы создадим простое приложение, которое подключится к WebSocket API биржи Bybit, чтобы получать данные о текущих ценах криптовалют.

Введение

Биржа Bybit предоставляет API, которое позволяет разработчикам получать данные о рынке и торговать криптовалютами. Мы будем использовать WebSocket API Bybit для получения данных о текущих ценах криптовалют.

Настройка проекта

Для работы с WebSocket API Bybit нам понадобится установить библиотеку websocket-client. Вы можете установить ее с помощью pip:

  • copy
pip install websocket-client

Код

  • copy
#-*- coding: UTF-8 -*- import time, websocket, json, threading from functools import partial class bybit(): def __init__(self): self.ticker_socket = {} # Выключения сокета def on_error(self, _wsa, wsData): _wsa.close() # Данные от сокета def on_message(self, _wsa, wsData): try: mData = json.loads(wsData) if 'op' in mData: if mData['op'] == 'subscribe' and mData['success'] == False: _wsa.close() else: self.ticker_socket[mData['data']['symbol']] = mData['data'] except Exception as e: print(str(e)) # Открытие соединения def on_open(self, _wsa, args): try: _wsa.send(json.dumps({"op": "subscribe", "args": args})) except Exception as e: _wsa.close() # Запуск сокета def run_web_sock(self, pairs): while True: try: wss = 'wss://stream.bybit.com/v5/public/spot' wsa = websocket.WebSocketApp(wss, on_message = self.on_message, on_open = partial(self.on_open, args = pairs), on_error = self.on_error) textLog = u'Установлено соединение Web Socket' print(textLog) wsa.run_forever() raise Exception(u'Разрыв соединения Web Socket') except Exception as e: print(str(e)) time.sleep(10) # Старт ws def start(self, pairs): ws = threading.Thread(target=self.run_web_sock, kwargs={'pairs': pairs}) ws.setDaemon(True) ws.start() # Проверка class main(): def __init__(self): # Инициализация класса / запуск потока pairs = ["tickers.BTCUSDT", "tickers.DOGEUSDT"] wb = bybit() wb.start(pairs) # Вывод данных while True: time.sleep(5) print(wb.ticker_socket) if __name__ == "__main__": main()

Как это работает

  • Мы создаем класс Bybit, который содержит методы для обработки WebSocket соединения с биржей Bybit.
  • Метод run_web_sock устанавливает соединение с WebSocket API Bybit и подписывается на получение данных о котировках для указанных торговых пар.
  • При получении сообщений о котировках метод on_message обрабатывает их и сохраняет данные в атрибут ticker_socket.
  • Класс Main инициализирует экземпляр класса Bybit и запускает поток для получения данных о котировках. Затем он выводит полученные данные каждые 5 секунд.

Заключение

В этой статье мы рассмотрели пример использования Python для получения данных о ценах с биржи Bybit с использованием WebSocket API. Вы можете использовать этот код как отправную точку для создания собственных инструментов и приложлений для работы с данными рынка криптовалют.

  • 17.03.2024
  • 444
  • 0

Получение данных о ценах с биржи Bybit с использованием Python

В этой статье мы рассмотрим пример использования Python для получения данных о ценах с биржи Bybit. Мы создадим простое приложение, которое подключится к WebSocket API биржи Bybit, чтобы получать данные о текущих ценах криптовалют.

Введение

Биржа Bybit предоставляет API, которое позволяет разработчикам получать данные о рынке и торговать криптовалютами. Мы будем использовать WebSocket API Bybit для получения данных о текущих ценах криптовалют.

Настройка проекта

Для работы с WebSocket API Bybit нам понадобится установить библиотеку websocket-client. Вы можете установить ее с помощью pip:

  • copy
pip install websocket-client

Код

  • copy
#-*- coding: UTF-8 -*- import time, websocket, json, threading from functools import partial class bybit(): def __init__(self): self.ticker_socket = {} # Выключения сокета def on_error(self, _wsa, wsData): _wsa.close() # Данные от сокета def on_message(self, _wsa, wsData): try: mData = json.loads(wsData) if 'op' in mData: if mData['op'] == 'subscribe' and mData['success'] == False: _wsa.close() else: self.ticker_socket[mData['data']['symbol']] = mData['data'] except Exception as e: print(str(e)) # Открытие соединения def on_open(self, _wsa, args): try: _wsa.send(json.dumps({"op": "subscribe", "args": args})) except Exception as e: _wsa.close() # Запуск сокета def run_web_sock(self, pairs): while True: try: wss = 'wss://stream.bybit.com/v5/public/spot' wsa = websocket.WebSocketApp(wss, on_message = self.on_message, on_open = partial(self.on_open, args = pairs), on_error = self.on_error) textLog = u'Установлено соединение Web Socket' print(textLog) wsa.run_forever() raise Exception(u'Разрыв соединения Web Socket') except Exception as e: print(str(e)) time.sleep(10) # Старт ws def start(self, pairs): ws = threading.Thread(target=self.run_web_sock, kwargs={'pairs': pairs}) ws.setDaemon(True) ws.start() # Проверка class main(): def __init__(self): # Инициализация класса / запуск потока pairs = ["tickers.BTCUSDT", "tickers.DOGEUSDT"] wb = bybit() wb.start(pairs) # Вывод данных while True: time.sleep(5) print(wb.ticker_socket) if __name__ == "__main__": main()

Как это работает

  • Мы создаем класс Bybit, который содержит методы для обработки WebSocket соединения с биржей Bybit.
  • Метод run_web_sock устанавливает соединение с WebSocket API Bybit и подписывается на получение данных о котировках для указанных торговых пар.
  • При получении сообщений о котировках метод on_message обрабатывает их и сохраняет данные в атрибут ticker_socket.
  • Класс Main инициализирует экземпляр класса Bybit и запускает поток для получения данных о котировках. Затем он выводит полученные данные каждые 5 секунд.

Заключение

В этой статье мы рассмотрели пример использования Python для получения данных о ценах с биржи Bybit с использованием WebSocket API. Вы можете использовать этот код как отправную точку для создания собственных инструментов и приложлений для работы с данными рынка криптовалют.