Skip to content

Instantly share code, notes, and snippets.

@mujeebishaque
Created October 3, 2021 03:24
Show Gist options
  • Save mujeebishaque/936eee1a91e5f1eead283461fea8306e to your computer and use it in GitHub Desktop.
Save mujeebishaque/936eee1a91e5f1eead283461fea8306e to your computer and use it in GitHub Desktop.
Binance live data via sockets

''' Description: Capture stream; store it temporarily; delete it after certain time interval/99/100 values. Stream Name: @kline_ ''' from matplotlib.pyplot import close from constants import CURRENT_SYMBOL import websocket, json

class BinanceDataStream:

stream_url = 'wss://stream.binance.com:9443/ws/#@kline_1m' 

def __init__(self, symbol):
    self.stream_close = []
    BinanceDataStream.stream_url = BinanceDataStream.stream_url.replace('#', CURRENT_SYMBOL.lower())
    ws = websocket.WebSocketApp(BinanceDataStream.stream_url, on_open=print("->opened!"), on_close=print("->closed!"),on_message=self.get_stream)
    ws.run_forever()

def get_stream(self, data):
    _data    = json.loads(data)
    _klines  = _data.get('k')
    is_closed= _klines.get('x')
    close_price = _klines.get('c')

    if is_closed:
        self.stream_close.append(close_price)

def delete_stream(self):
    self.stream_close = list()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment