Market Data & Web Scraping Intermediate

Stream Real-Time Crypto Order Book Depth & Bid/Ask Spreads via WebSocket in Python

Connect to Binance public WebSocket order book depth streams in Python using asyncio to track live bid-ask imbalance and spread slippage.

#websockets#asyncio

Problem Statement

High-frequency market makers monitor order book depth imbalance (bid vs ask liquidity) to predict immediate micro-price direction.

Formula / Core Logic

Subscribes to wss://stream.binance.com:9443/ws/btcusdt@depth20@100ms for live order book snapshots.

Installation

pip install websockets asyncio
real-time-crypto-order-book-depth-websocket-python.py
import asyncio
import json
import websockets

async def stream_order_book(symbol='btcusdt'):
    url = f'wss://stream.binance.com:9443/ws/{symbol}@depth20@100ms'
    async async with websockets.connect(url) as ws:
        while True:
            msg = json.loads(await ws.recv()) 
            bids = msg.get('bids', [])
            if bids:
                print(f'Top Bid: {bids[0]}')
                break

Get the Complete 100+ Python Quant & Automation Bundle

Instant lifetime access to all production-ready scripts, valuation models, and trading bots ($19).

Buy Full Bundle on Gumroad ($19) →

Frequently Asked Questions

Q: What does `@100ms` mean in the Binance WebSocket URL?

It specifies a 100-millisecond snapshot update frequency, providing near-real-time order book depth.