Hoe een bot moet reageren op een 'Flash Crash' in crypto

Portret van Alex de Vries, Quantitatief Analist & Algo-Trading Expert
Alex de Vries
Quantitatief Analist & Algo-Trading Expert
Crypto Trading Bots & Specifieke API's · 2026-02-15 · 7 min leestijd

Een flash crash in crypto voelt als een achtbaan zonder veiligheidsriem. Je ziet je portfolio in seconden met tientallen procenten kelderen en je hoofd schreeuwt om te verkopen.

Als je een trading bot gebruikt, is die paniek precies wat je wilt voorkomen. Een bot moet koud, berekend en voorbereid zijn, zodat hij jouw kapitaal beschermt wanneer de markt even doordraait. In dit stuk leg ik je uit hoe je een Python-bot bouwt en instelt die niet in paniek raakt, maar slim reageert op een flash crash.

Flash crashes zijn geen theorie. In 2017 zakte Ethereum op sommige exchanges van ongeveer $300 naar $0,10.

In maart 2020 dook Bitcoin op BitMEX onder de $4.000. Een correctie van 10–15% is relatief normaal, maar een crash van 30% of meer kan je portfolio verwoesten als je geen maatregelen treft.

Een bot die op de juiste manier is ingesteld, helpt je om verliezen te beperken en later gunstiger in te kopen.

Wat je nodig hebt voordat je begint

Voordat je een bot bouwt die een flash crash aankan, zorg je dat je de juiste tools en data bij de hand hebt. Dit is je basisuitrusting:

  • Een broker of exchange met een stabiele API, bijvoorbeeld Binance, Kraken of BitMEX. Kies een partij die in de EU gereguleerd is; Knaken Cryptohandel B.V. heeft een MiCA-vergunning aangevraagd bij de AFM, wat laat zien dat Europese regelgeving steeds belangrijker wordt.
  • Python 3.9+ met bibliotheken zoals ccxt (voor API-connectie), pandas (data), numpy (berekeningen) en eventueel TA-Lib (technische analyse).
  • Een backtesting-omgeving, bijvoorbeeld Backtrader of een eigen script met historische tick- of 1-minuutdata. Zorg dat je data hebt van ten minste twee jaar, inclusief bekende crashes.
  • Een risicomanagement-plan met concrete getallen: maximaal verlies per trade, maximaal dagverlies, en position sizing.
  • Een server of VPS voor 24/7-run, met logging en monitoring (bijvoorbeeld via Telegram-alerts).

Denk aan veiligheid: bewaar API-keys lokaal in environment variables, niet in je code.

Gebruik exchange-whitelisting en beperk rechten tot trade-only.

Stap-voor-stap: bouw en configureer een bot die een flash crash aankan

Stap 1: Verbind de exchange-API en haal historische data op

Gebruik ccxt om een connectie te maken met je exchange. Voorbeeld in Python: import ccxt
exchange = ccxt.binance({ 'apiKey': os.getenv('API_KEY'), 'secret': os.getenv('SECRET'), 'enableRateLimit': True })
ohlcv = exchange.fetch_ohlcv('BTC/USDT', timeframe='1m', limit=50000)

Haal zoveel mogelijk minutendata op, minimaal 30.000 candles. Voor flash crashes heb je fijnmazige data nodig. Tijdsindicatie: 10–30 minuten voor de eerste run.

Veelgemaakte fout: te weinig data gebruiken waardoor je crashes mist in je backtest.

Stap 2: Parse en prepareer de data

Zet de ohlcv-data om in een pandas DataFrame en voeg indicatoren toe die helpen bij volatiliteit en risico. import pandas as pd
df = pd.DataFrame(ohlcv, columns=['timestamp','open','high','low','close','volume'])
df['returns'] = df['close'].pct_change()
df['atr'] = talib.ATR(df['high'], df['low'], df['close'], timeperiod=14) Voor flash crashes bereken je een short-term volatility threshold, bijvoorbeeld een 20-perioden standaarddeviatie van returns. Tijdsindicatie: 15–20 minuten.

Fout: indicatoren afleiden zonder rekening te houden met slippage en liquiditeit. Bouw een backtest die specifiek kijkt naar dagen met extreme bewegingen. Simuleer:

Gebruik een eenvoudige strategie als benchmark: buy-and-hold versus een eenvoudige arbitrage bot bouwen met stop-loss en herinvoer.

Stap 3: Backtest op crash-scenario’s

Test op minimaal 3 crash-dagen uit de historie (bijv. maart 2020). Tijdsindicatie: 1–2 uur voor een eerste backtest. Fout: backtesten zonder slippage, wat te rooskleurige resultaten geeft. Stel concrete getallen in:

  • Een dip van 10–15% in 5–10 minuten.
  • Een crash van 30%+ in 15–60 minuten.
  • Slippage van 0,5–2% per trade en extra spread tijdens paniek.

Log deze regels in je bot en breek de bot als een limiet wordt overschreden. Tijdsindicatie: 20–30 minuten om te configureren. Fout: te grote posities nemen zonder rekening te houden met spread en slippage.

Stap 4: Definieer risicoregels en position sizing

  • Max verlies per trade: 2% van je totale kapitaal.
  • Max dagverlies: 5–7%. Daarna stopt de bot.
  • Position sizing: bereken aantal coins of notional op basis van stop-lostd afstand. Voorbeeld: entry $30.000, stop $29.400 (2% afstand), risico $600 op een trade. Bij 1% risico per trade is je inzet $60.000, afhankelijk van hefboom.
  • Hefboom: beperk tot max 2–3x tijdens normale markten, en 0x tijdens extreme volatiliteit.

Hoe te reageren op een flash crash

Een flash crash vereist een kalm, voorspelbaar script. Jouw bot moet drie dingen doen: strikte veiligheidsmaatregelen voor je crypto trading bot implementeren, analyseren en herpositioneren.

Bescherm je kapitaal met stop-losses en risicobreaks. Analyseer of het om een echte crash gaat of een tijdelijke liquidatiegolf.

Gebruik Stop-Loss Orders

Herpositioneer alleen als de markt stabiliseert en je entry-condities weer gelden. Stop-losses zijn je primaire verdedigingslinie. Gebruik een combinatie van:

  • Hard stop: een marktorder die uitvoert zodra de prijs je stop raakt. Dit is snel maar kan slippen.
  • Trailing stop: volg de prijs omhoog, maar sluit af bij een vaste procentuele daling.
  • OCO-orders (One-Cancels-the-Other): combineer een stop-loss met een take-profit, zodat je niet in een bounce wordt uitgestopt terwijl je winst kunt pakken.

Stel je stop in op basis van technische steun of de ATR. Voorbeeld: stop 1,5× ATR onder de recente swing-low. Als de ATR op $200 ligt, zet je stop op $300 onder je entry. Tijdsindicatie: 5 minuten om te testen in je backtest.

Gebruik een stop loss om verliezen te beperken en later gunstiger in te kopen.

Blijf Kalm

Fout: een te strakke stop die bij normale volatiliteit al wordt geraakt.

  • Geen nieuwe posities openen totdat de volatiliteit daalt onder een threshold (bijvoorbeeld 2× de gemiddelde ATR).
  • Bestaande posities afdekken of sluiten volgens je risicoregels.
  • Loggen wat er gebeurt en een alert sturen naar Telegram, zodat jij weet dat de bot het juiste doet.

Paniek is je vijand. Jouw bot moet tijdens een crash:

Test je bot op een dag met extreme bewegingen en kijk of hij rustig blijft. Tijdsindicatie: 30 minuten voor een simulatie. Fout: de bot handmatig uitzetten tijdens een crash, waardoor je het systeem ondermijnt.

Implementatie in Python: een voorbeeld-script

Hieronder vind je een eenvoudig script dat de kernlogica toont. Pas de getallen en thresholds aan op basis van je backtests. import ccxt, pandas as pd, numpy as np, talib, os, time
exchange = ccxt.binance({ 'apiKey': os.getenv('API_KEY'), 'secret': os.getenv('SECRET'), 'enableRateLimit': True })
symbol = 'BTC/USDT'
timeframe = '1m'
risk_per_trade = 0.02 # 2%
max_daily_loss = 0.07 # 7%
daily_loss = 0.0

def fetch_data():
  ohlcv = exchange.fetch_ohlcv(symbol, timeframe, limit=5000)
  df = pd.DataFrame(ohlcv, columns=['timestamp','open','high','low','close','volume'])
  df['returns'] = df['close'].pct_change()
  df['atr'] = talib.ATR(df['high'], df['low'], df['close'], timeperiod=14)
  return df

def check_crash(df, window=20):
  recent = df['close'].iloc[-window:]
  drop_pct = (recent.max() - recent.min()) / recent.max()
  vol = df['returns'].iloc[-window:].std()
  return drop_pct > 0.15 and vol > 0.02 def place_stop_loss(entry_price, atr_multiplier=1.5):
  atr = fetch_data()['atr'].iloc[-1]
  stop_price = entry_price - atr_multiplier * atr
  order = exchange.create_order(symbol, 'stop_market', 'sell', size, params={'stopPrice': stop_price})
  return order

def run_bot():
  while True:
    df = fetch_data()
    is_crash = check_crash(df)
    if is_crash or daily_loss >= max_daily_loss:
      # Sluit bestaande posities of open geen nieuwe
      time.sleep(60)
    else:
      # Voorbeeld: market entry en stop-loss plaatsen
      order = exchange.create_order(symbol, 'market', 'buy', size)
      place_stop_loss(order['price'])
    time.sleep(30) Tijdsindicatie: 1–2 uur om dit script te testen en te fine-tunen. Fout: vergeten om slippage en spread te simuleren, waardoor de stop in de praktijk minder effectief is.

Risicomanagement en Europese regelgeving

Risicomanagement is meer dan een stop-loss. Zorg dat je je verdiept in algoritmische trading in crypto. Een voorbeeld: als je €10.000 inlegt, riskeer je per trade maximaal €200 (2%). Bij een dagverlies van €700 (7%) stop je de bot en evalueer je de markt.

  • Alleen belegt wat je bereid bent te verliezen en je portfolio diversifieert over meerdere assets.
  • Je bot uitschakelt bij een dagverlies van 5–7%.
  • Gebruik maakt van een broker met een MiCA-vergunning, zoals Knaken, om te voldoen aan Europese regelgeving.

Tijdsindicatie: 10 minuten om je daglimieten in te stellen. Fout: vergeten om je dagverlieslimiet te resetten na een nieuwe dag.

Verificatie-checklist

Loop deze lijst na voordat je de bot live zet: Als je alle punten kunt afvinken, ben je klaar om de bot live te laten draaien.

  • API-connectie werkt en data is volledig (minimaal 30.000 candles).
  • Backtest laat duidelijke resultaten zien op crash-dagen (maart 2020, 2017).
  • Stop-losses zijn getest met slippage en spread.
  • Risicoregels staan vast: 2% per trade, 5–7% per dag.
  • Position sizing klopt op basis van ATR en je kapitaal.
  • De bot schakelt uit bij dagverlies en stuurt een Telegram-alert.
  • API-keys zijn veilig opgeslagen en rechten zijn beperkt.
  • Je broker heeft een MiCA-vergunning of voldoet aan Europese regelgeving.

En onthoud: een flash crash is geen test van moed, maar van systeem. Jouw bot moet het werk doen, zodat jij kalm blijft.

Portret van Alex de Vries, Quantitatief Analist & Algo-Trading Expert
Over Alex de Vries

Alex is een ervaren quantitatief analist en Python-ontwikkelaar die complexe trading concepten vertaalt naar begrijpelijke, praktische handleidingen voor zowel beginners als gevorderden.

Volgende stap
Bekijk alle artikelen over Crypto Trading Bots & Specifieke API's
Ga naar overzicht →