Analyse van een 'Flash Crash' en de rol van algoritmes
Een flash crash voelt als een aardbeving op je scherm. In enkele minuten stort een aandeel of crypto naar beneden en herstelt het ook weer snel. Als je handelt, wil je weten wat er gebeurt en hoe je niet meegesleurd wordt.Deze crashes komen vaak door algoritmische handel. Kleine fouten in code, verkeerde parameters of ruis in de data kunnen een kettingreactie starten. Je kunt je bot beter bouwen en testen, zodat je niet slachtoffer wordt van zo’n moment.
Wat is een flash crash en waarom doet het ertoe
Een flash crash is een extreme prijsdaling die binnen minuten weer herstelt. Het gebeurt zonder fundamenteel nieuws.
De oorzaak zit vaak in de marktstructuur en de algoritmes die erop reageren.
Denk aan 2010: de Amerikaanse beurs zakte in een paar minuten ruim 9 procent en krabbelde op. In 2019 zakte het aandeel Nibe van circa €47 naar €36 in een halfuur en herstelde het snel. In crypto zie je soms 10 procent bewegingen binnen seconden op een exchange zoals Binance of BitMEX.
Waarom het ertoe: een flash crash kan je stoploss raken voordat je beseft wat er gebeurt. Je kunt flink verliezen, of juist een mooie entry vinden als je bot goed is ingericht. Begrijpen hoe het werkt, helpt je risico’s beheren en je strategie robuuster maken.
Hoe een flash crash ontstaat: de rol van algoritmes
Veel algoritmes reageren op prijs en volume. Zodra een groot order de markt raakt, springen andere algoritmes erop in.
Dat kan een cascade worden. Market makers bieden continu liquiditeit, maar trek zich terug als de volatiliteit te hoog wordt. Dan ontstaat een gat in de orderbook.
Een trendvolgend algoritme ziet de prijs zakken en verkoopt nog meer. Een stoploss-algoritme voert verkooporders uit onder een bepaalde prijs.
Zo ontstaat een neerwaartse spiraal. Arbitragebots tussen exchanges of futures en spot versterken de beweging. Ze trekken liquiditeit weg waar die het hardst nodig is. Als je eigen bot niet let op spread en diepte, word je meegenomen.
Werking in de praktijk: orderbook, spread en slippage
Concreet: een large-cap aandeel zakt van €50 naar €47 in een minuut. De spread loopt op van €0,02 naar €0,50.
Je bot koopt op €47,20 maar krijgt uitvoering op €48,10. Die slip kost je direct 2 procent. Het orderbook is de afbeelding van de liquiditeit.
Bij een flash crash zie je dat de bied- en laatkant leeglopen.
De spread groeit, en de prijs schiet voorbij de limieten die je hebt ingesteld. Slippage is het verschil tussen je verwachte prijs en de werkelijke uitvoering. Bij een flash crash kan slippage oplopen tot enkele procenten.
Je bot moet dat meten en beperken. Een voorbeeld: je bot wil kopen op €100 met een limietorder.
Door de crash raakt de liquiditeit op en krijg je gedeeltelijke uitvoering op €103. Als je geen maximum slippage instelt, betaal je te veel en neemt je risico toe.
Backtesten en risicomanagement: bouw een bot die het overleeft
Backtesten is je bot testen op historische data. Gebruik data met orderbook- en tick-niveau, niet alleen dagcijfers.
Bij een flash crash zie je pas hoe je bot reageert op extreme momenten. Gebruik Python met libraries als backtrader, vectorbt of lean (QuantConnect). Haal data via een broker-API of een data-provider.
Bijvoorbeeld LMAX Exchange voor orderbook-data, of Interactive Brokers voor historische tick- en minute-data.
Voor crypto kun je Binance of Coinbase Pro gebruiken, maar let op kosten en datakwaliteit. Voeg slippage, commissies en spread toe in je backtest. Simuleer een flash crash door pieken in volatiliteit en lege orderbooks toe te voegen.
Als je bot in een backtest met slippage nog steeds positief is, heb je een sterke basis. Zonder slippage is je resultaat vaak te mooi om waar te zijn.
Modellen met prijsindicaties voor herkenning en handel
Test of je bot nog steeds positief is na deze ruis. Risicomanagement begint met eenvoudige regels.
- Volatiliteitsratio: prijsbeweging versus gemiddelde beweging over 20 minuten. Een waarde boven 5 kan een crash aanduiden.
- Orderbook imbalance: verhouding tussen bied- en laatvolume. Een imbalance van 0,3 (sterk naar de aanbodkant) duidt op druk.
- Spread indicator: spread als percentage van de prijs. Bij 0,5 procent of meer is de markt kwetsbaar.
- Volume spike: volume 3 tot 5 keer het gemiddelde over 20 minuten.
- VIX of crypto-equivalent: een stijging van 10 procentpunten in een uur is waarschuwend.
Stel een maximum slippage in, bijvoorbeeld 1 procent voor large-caps en 2 procent voor small-caps.
Zet een daily loss limit, bijvoorbeeld 3 procent van je totale kapitaal. Beperk je positie tot een percentage van de gemiddelde dagvolume, bijvoorbeeld 1 procent. Je kunt een eenvoudig model bouwen dat een flash crash herkent en erop reageert. Gebruik prijsindicaties zoals: Prijsindicaties voor je bot: als de volatiliteitsratio boven 5 komt én de orderbook imbalance onder 0,3 ligt, verlaag je je positie met 50 procent.
Als de spread boven 0,5 procent komt, schakel je marketorders uit en gebruik je alleen limietorders met een maximum slippage van 1 procent. Voorbeeld op een aandeel van €50: je bot handelt met een positie van 1.000 aandelen.
Bij een flash crash zakt de prijs naar €47. Je bot zet een limietorder op €47,20, maar als de spread oploopt naar €0,50, past de bot de order aan naar €47,40 en beperkt de ordergrootte tot 500 stuks. Zo beperk je het verlies.
Je kunt een eenvoudig dashboard bouwen in Python met matplotlib en streamlit. Toon de volatiliteitsratio, orderbook imbalance en spread in real-time.
Zie je een piek? Dan weet je dat je bot moet schakelen.
Praktische tips voor je algoritmische setup
Begin met een broker die een stabiele API en lage latency heeft. Interactive Brokers is populair voor aandelen, LMAX Exchange biedt orderbook-data voor professionele handel.
Voor crypto zijn Binance, Coinbase Pro en Kraken gangbaar. Check de kosten: bij Binance betaal je circa 0,1 procent, bij IBKR vaak minder voor large-caps.
Gebruik Python-versies die stabiel zijn en zet virtual environments op. Voor backtesting zijn backtrader, vectorbt en lean goede opties. Voor live trading kun je ccxt voor crypto of de IBKR API gebruiken.
Zorg dat je bot order types begrijpt: market, limit, stop-limit en IOC (immediate-or-cancel). Test je bot op meerdere tijdsframes.
Een bot die op 1-minuut data goed presteert, kan op tick-data falen. Voeg een crisis-scenario toe: een orderbook met 10 procent van de normale diepte, spread die oploopt tot 1 procent, en een volume-piek van 5x het gemiddelde. Kijk hoe je bot reageert. Stel harde limieten in.
Geen positie groter dan 1 procent van het dagvolume. Max slippage van 1 procent voor large-caps, 2 procent voor small-caps.
Daily loss limit van 3 procent. Na een verlies van 2 procent schakel je de bot uit en controleer je de data. Monitor naast je bot ook de markt.
Gebruik een dashboard dat de spread, volume en volatiliteitsratio toont. Zet alerts op je telefoon voor extreme bewegingen.
Een flash crash is sneller voorbij dan je denkt, maar de impact op je portefeuille kan groot zijn. Als je een eigen algoritmische bot bouwt, begin klein. ben je klaar om je eerste €1000 aan een algoritme toe te vertrouwen? Test dan met een demo-account of een beperkt kapitaal.
Gebruik limietorders en vermijd marketorders tijdens onrustige markten. Zorg dat je bot altijd weet wat de huidige spread is en hoeveel liquiditeit er beschikbaar is.
Een laatste tip: houd een logboek bij van elke trade, inclusief slippage, spread en uitvoeringskwaliteit.
Als je een flash crash meemaakt, analyseer dan wat er misging, zoals in mijn ervaring met de corona-crash. Past je bot de parameters aan? Was de data up-to-date?
Stonden je risicolimieten goed? Met deze aanpak bouw je een bot die niet alleen snel is, maar ook slim omgaat met risico. Zo leer je hoe grote hedgefunds miljarden verdienen met code, en word je geen slachtoffer van een flash crash, maar een voorbereide handelaar die de markt beter begrijpt.
