Hoe ga je om met 'Flash Crashes' als je bot live staat?
Een flash crash. Het klinkt als een film, maar voor je bot is het een nachtmerrie die in 5 minuten je hele account leeg kan trekken. Je staat live, de markt ziet er rustig uit, en dan ineens is er die ene candle die alles verandert. Je bot, je slimme algoritme, staat er alleen voor. Geen tijd om te twijfelen. Zonder de juiste bescherming is je geld in een oogwenk verdwenen. Je hoeft niet bang te zijn voor een crash, je moet er alleen op voorbereid zijn. Je bouwt een veiligheidsnet. Een goede bot is niet alleen slim in het maken van winst, maar vooral slimmer in het beperken van verlies. Hier is hoe je dat doet, stap voor stap.Stap 1: Je noodremmen installeren (Circuit Breakers)
Dit is de allerbelangrijkste stap. Je bot moet een noodrem hebben, oftewel een circuit breaker.
Dit is een simpele regel die je bot volledig uitschakelt als de markt te gek doet.
- Defineer je maximale dagverlies: Kies een percentage van je totale portefeuille dat je maximaal wilt verliezen op één dag. Voor een beginner is 2% tot 5% een reëel getal. Stel je hebt €10.000 op je exchange (bijv. Binance of Kraken), dan is je stop-loss €200 (2%).
- Check de 'spread' of prijsactie: Voordat je een trade plaatst, check de huidige prijs versus de prijs 1 minuut geleden. Is de prijs in één minuut meer dan 5% gedaald? Dan is er waarschijnlijk iets mis. Je script moet dan een 'panic button' indrukken.
- De code: Je hebt een simpele if-statement nodig:
if (current_price / price_1_min_ago) < 0.95: shutdown_bot(). De functieshutdown_bot()moet twee dingen doen: alle openstaande posities sluiten (market sell) en de bot stoppen.
Je bouwt dit niet vanaf nul; je gebruikt de logica die je al hebt. Stel je voor dat je een Python script draait met een library als ccxt. Je script draait in een lus (een while-loop).
In die lus check je de prijs voordat je een order plaatst. Hier voeg je je noodrem toe. Veelgemaakte fout: Stoppen met de bot is goed, maar je openstaande posities vergeten sluiten is desastreus. Zorg dat je 'sluit alles' functionaliteit losstaand kunt activeren.
Stap 2: Posities verkleinen bij twijfel (Dynamische Position Sizing)
Je standaard inzet is bijvoorbeeld €100 per trade. Tijdens een flash crash is €100 ineens €80 in seconden.
Om jezelf te beschermen, moet je je inzet automatisch aanpassen op basis van marktvolatiliteit. Dit heet dynamische position sizing. Je wilt niet met je maximale bedrag instappen als de markt op ontploffen staat.
- Meet de volatiliteit: Haal de 14-period ATR waarde op van je favoriete munt (bijv. BTC/USDT). Stel de ATR is €500.
- Bereken je risico: Deel je standaard risicobedrag door de ATR. Stel je wilt maximaal €50 verliezen per trade en de ATR is €500, dan is je positiegrootte: €50 / €500 = 0.1 BTC (afhankelijk van de prijs).
- Veiligheidsmarge: Tijdens een flash crash kan de ATR exploderen. Stel een maximum in op je inzet. Als de ATR boven de €1000 komt, schakel je traden uit of zet je je inzet naar €10 (het absolute minimum).
Je gebruikt hiervoor de ATR (Average True Range). Dit is een standaard indicator die de volatiliteit meet.
De meeste Python libraries zoals TALib of Pandas_ta hebben deze ingebouwd. Timing: Bereken dit elke candle (bijv. elke 5 minuten). Doe dit voor je de order naar de broker stuurt.
Stap 3: De juiste order types (Limit vs Market)
Veel beginners gebruiken 'Market Orders' omdat ze snel willen zijn. "Koop nu, wat de prijs ook is!" Tijdens een flash crash is dat het domste wat je kunt doen.
Je kunt een order krijgen op een prijs die veel lager is dan je dacht (slippage). Gebruik Limit Orders voor het openen van posities. En voor de veiligheid: gebruik Stop-Limit orders voor het sluiten.
- Buy Limit: In plaats van direct te kopen, zet je een buy limit order op een support niveau. Als de flash crash het niveau raakt, koop je automatisch (of je handel stopt, afhankelijk van je strategie).
- Stop-Limit voor verkoop: Zet een Stop-Limit order ver onder de huidige prijs. Bijvoorbeeld: Stop prijs op 5% onder de huidige koers, Limit prijs op 7% onder de huidige koers. Dit voorkomt dat je positie wordt verkocht bij een minieme dip, maar sluit hem wel bij een echte crash.
- Post-Only Orders: Bij het plaatsen van je limit order via de API, gebruik de optie 'post-only'. Dit zorgt dat je order nooit direct een marktorder wordt en je dus liquidity toevoegt in plaats van wegneemt.
Je broker (via API) moet dit ondersteunen. Tip: Test je Stop-Limit orders in een rustige markt en ontdek of jouw trading bot bulletproof is.
Zet er €10 op en kijk of het werkt zoals je verwacht. Niets is vervelender dan een stop-limit die niet vult terwijl de markt doorraast.
Stap 4: API Rechten beperken (De Poortwachter)
Je geeft je bot de sleutels van je huis. Als een hacker die sleutels krijgt, is je geld weg. Of als je bot een bug heeft en 1000x dezelfde order plaatst, of als je te maken krijgt met liquiditeitsrisico bij een crash, ben je ook geld kwijt.
Beperk de schade via de API-instellingen van je exchange. Log in op je exchange (Binance, Bybit, Kraken, etc.) en ga naar API Management.
- Geen Withdrawals: Schaal het vakje 'Withdrawals' (opnames) NOOIT aan. Je bot heeft dit niet nodig. Dit voorkomt dat iemand je geld naar een andere wallet kan sturen.
- Alleen handelen: Vink alleen 'Enable Trading' aan. 'Enable Reading' is ook handig voor data ophalen, maar 'Futures' moet aan als je met futures handelt.
- IP-restricties (Advanced): Als je exchange dit toestaat (Kraken doet dit bijv.), beperk de API-sleutel tot het IP-adres van je server of VPS. Als je vanaf huis handelt, vul dan je thuis IP in.
- Verbind met een testnet: Voordat je live gaat, test je code op de Testnet van de exchange. Gebruik nep-geld. Zorg dat je bot het gedrag van een flash crash correct afhandelt voordat je echte Euro's inzet.
Maak een nieuwe API-sleutel aan speciaal voor deze bot. Veelgemaakte fout: Een 'Master Key' maken met alle rechten.
Maak altijd aparte sleutels per bot. Als er één gecompromitteerd raakt, hoef je maar één sleutel te revoken.
Stap 5: Logging en Monitoring (Je Ogen en Oren)
Als je bot live staat, ben je de baas, maar je hoeft niet continu achter je scherm te zitten.
Je hebt een systeem nodig dat je waarschuwt als het misgaat. Tijdens een flash crash wil je geen e-mail krijgen die 10 minuten later aankomt. Daarom is het essentieel om je live risico's in een dashboard te monitoren.
- Log elke actie: Log "Order geplaatst", "Order gevuld", "Stop loss geactiveerd". Gebruik een timestamp.
- Gebruik Telegram of Discord: Er zijn simpele Python libraries (zoals
python-telegram-bot) die een berichtje sturen naar je telefoon. Stuur een bericht als je circuit breaker afgaat of als je bot stopt. - Houd de 'Uptime' in de gaten: Als je script crasht (bijv. door een error van de API), moet je het weten. Gebruik een simpele watchdog of een dienst als UptimeRobot.
Gebruik Python's logging module om alles naar een bestand te schrijven. Stuur kritieke logs naar je telefoon. Timing: Test je notificaties. Stuur een testbericht naar je telefoon voordat je de bot live zet. Je wilt niet dat je telefoon stil blijft als je bot in de fik staat.
Verificatie-checklist: Sta je bot live?
Voordat je de 'Live' knop indrukt, loop je deze lijst na. Eén misser kan je duur komen te staan.
- Circuit Breaker: Is er een harde stop bij een X% daling in korte tijd?
- Position Sizing: Wordt de inzet aangepast op basis van volatiliteit (ATR)?
- Order Types: Gebruik je Limit en Stop-Limit orders in plaats van Market orders?
- API Rechten: Is 'Withdrawals' uitgeschakeld en is de sleutel beperkt tot handelen?
- Logging: Krijg je een push-notificatie op je telefoon bij een error of stop?
- Testnet: Heeft je bot draaiend op nep-geld hetzelfde scenario overleefd?
Wees streng voor jezelf. Als je overal 'Ja' op hebt, ben je er klaar voor. Onthoud: een flash crash is niet het moment om te improviseren. Het is het moment waarop je voorbereiding telt. Veel succes!
