Торговля потоком Binance через проблему websocket - PullRequest
0 голосов
/ 02 мая 2020

Я не получаю ответ от API Binance при выполнении следующего кода, есть ли что-то, что я мог бы здесь пропустить? мне нужно создать учетную запись для получения потоковых данных через API?

import json
import websocket

socket='wss://stream.binance.com:9443'

def on_open(ws):
    print("opened")
    subscribe_message = {
        "method": "SUBSCRIBE",
        "params":
        [
         "btcusdt@trade",
         "btcusdt@depth"
         ],
         "id": 1
         }

    ws.send(json.dumps(subscribe_message))

def on_message(ws, message):
    print("received a message")
    print(json.loads(message))     

def on_close(ws):
    print("closed connection")        

ws = websocket.WebSocketApp(socket, on_open=on_open, on_message=on_message, on_close=on_close)
ws.run_forever()

1 Ответ

0 голосов
/ 02 мая 2020

Я вижу, что вы не используете путь после имени хоста и порта!

Смотрите здесь, чего не хватает: https://github.com/binance-exchange/binance-official-api-docs/blob/master/web-socket-streams.md#general -wss-information

Доступ к необработанным потокам осуществляется в / ws / streamName>

Доступ к объединенным потокам осуществляется в / stream? Streams = streamName1 / streamName2 / streamName3

Если вы хотите подписаться на потоки через websocket.send (), затем сначала нужно создать объединенный поток, а затем отправить полезную нагрузку для подписки на потоки.

Но вам не нужно заново изобретать колесо. Существуют различные готовые реализации для python.

Я рекомендую вам эту библиотеку, которую я написал: https://github.com/oliver-zehentleitner/unicorn-binance-websocket-api

Это сэкономит вам много работы :)

С уважением, Оливер

...