Real-time data streamen met WebSockets en de JSON library
Stel je voor: je zit achter je scherm, de markt beweegt razendsnel en jij wilt elke prijsverandering direct zien. Met WebSockets en de JSON library in Python krijg je die data live binnen, zonder vertraging.
Je bent niet langer afhankelijk van oude cijfers; je reageert in realtime op wat de markt doet. Dit is de basis voor elke serieuze algoritmische trading bot die je bouwt.
Wat zijn WebSockets en JSON in de trading-wereld?
WebSockets zijn een open verbinding tussen jouw computer en een broker, zoals Interactive Brokers of Binance.
In plaats van steeds opnieuw te vragen om data, blijft de deur open staan en stroomt de informatie continu binnen. Het voelt als een live telefoongesprek in plaats van een e-mailwisseling. JSON is het taaltje waarin die data verpakt wordt.
Het is simpel, leesbaar en werkt perfect met Python. Je krijgt een bericht binnen met een prijs, volume en timestamp, en je script kan meteen reageren.
Geen rommel, gewoon pure data. Waarom is dit belangrijk voor jouw trading?
Omdat elke milliseconde telt. Als je een backtesting model draait of een risicomanagement script aanstuurt, wil je geen verouderde data gebruiken. Realtime data betekent dat je beslissingen baseert op wat er nu gebeurt, niet op gisteren.
Hoe bouw je een simpele verbinding op?
Je begint met de library websocket-client. Installeer hem met pip install websocket-client en je bent klaar om te starten.
Je schrijft een kleine functie die verbinding maakt met de WebSocket-URL van je broker, bijvoorbeeld die van Binance voor BTC/USDT.
Vervolgens luister je naar binnenkomende berichten. Die berichten zijn JSON-strings die je met de Python JSON library omzet naar een dictionary. Zo krijg je toegang tot keys zoals "price", "volume" en "timestamp".
import json import websocket def on_message(ws, message): data = json.loads(message) print(f"BTC/USDT prijs: {data['p']}") ws = websocket.WebSocketApp("wss://stream.binance.com:9443/ws/btcusdt@trade", on_message=on_message) ws.run_forever()
Je script kan deze waardes direct doorsturen naar je trading bot. Een voorbeeld van hoe het eruitziet in code: Dit is een minimale setup. Je kunt het uitbreiden met foutafhandeling, herverbinding en data-opslag voor later gebruik in je backtesting.
Waarom dit de kern is van elke trading bot
Elke algoritmische trading bot draait op data. Zonder realtime data loop je achter de feiten aan en mis je kansen. Met WebSockets krijg je elke tick binnen, wat essentieel is voor strategieën die inspelen op kleine prijsbewegingen. Gebruik Streamlit voor het snel deployen van je trading dashboard.
Stel je voor dat je een bot bouwt die automatisch koopt als de prijs van Ethereum onder de €1.800 daalt.
Met een WebSocket-verbinding zie je die prijs direct, terwijl een REST-API pas antwoordt als je erom vraagt. Dat verschil kan winst of verlies betekenen.
Combineer dit met je risicomanagement. Je kunt limieten instellen, zoals een maximale positie van €5.000 per trade. De bot ontvangt de live data, berekent het risico en voert de order uit via de broker API. Alles gebeurt in één naadloze stroom.
Verschillende brokers en hun prijzen voor data
Niet alle brokers bieden gratis realtime data. Bij Interactive Brokers krijg je basisdata gratis voor aandelen, maar voor opties of futures betaal je ongeveer €10-€20 per maand voor uitgebreide datastreaming.
Binance en Kraken bieden gratis WebSocket-data voor crypto, maar je betaalt wel trading fees van 0,1% tot 0,2% per transactie. Er zijn ook gespecialiseerde dataleveranciers zoals Polygon.io. Wil je weten wat een professionele Python data-feed kost? Voor aandelen en forex betaal je bij hen ongeveer €199 per maand voor diepgaande marktdata. Voor beginners is de gratis crypto-data van Binance vaak genoeg om te oefenen.
Kies een broker die past bij je strategie. Voor snelle scalping bots zijn lage latency en lage fees cruciaal. Voor lange-termijn backtesting kun je met historische data van €50-€100 per dataset werken, maar realtime data blijft nodig voor live trading.
Praktische tips voor soepel streamen
Test je verbinding altijd eerst met een demo-account. Zo voorkom je dat je per ongeluk echt geld verliest door een foutje in je code.
Gebruik een sandbox-omgeving van je broker, zoals die van Interactive Brokers of Binance Testnet. Hou rekening met de limieten van je broker. Veel brokers beperken het aantal verzoeken per minuut.
Bij Binance mag je bijvoorbeeld maximaal 1.200 requests per minuut doen. Plan je bot dus slim in om banned te worden.
Log elke binnenkomende data in een database, zoals SQLite of PostgreSQL. Zo kun je later backtesten en je risicomanagement verbeteren. Sla niet alles op, maar selecteer de key data points die voor je strategie relevant zijn, zoals prijs en volume.
Gebruik try-except blocks om fouten af te vangen. Een plotselinge disconnection mag je bot niet crashen.
Schrijf code die automatisch herverbinding probeert, bijvoorbeeld elke 5 seconden. Zo blijft je bot draaien, zelfs als de markt turbulent is.
Combineer WebSockets voor real-time orderboek data met andere Python libraries. Gebruik Pandas voor data-analyse, NumPy voor wiskundige berekeningen en TA-Lib voor technische indicatoren. Zo bouw je een robuuste bot die realtime data verwerkt en slimme beslissingen neemt.
