Hoe programmeer je een 'Circuit Breaker' in je eigen trading systeem?

Portret van Alex de Vries, Quantitatief Analist & Algo-Trading Expert
Alex de Vries
Quantitatief Analist & Algo-Trading Expert
Risicomanagement & Portfolio Protectie · 2026-02-15 · 5 min leestijd

Stel je voor: je hebt een strategie die draait als een zonnetje. Je backtests in Python of met ProRealTime zien er geweldig uit, je hebt je risicomanagement op orde en je broker API klopt als een bus.

Maar dan komt het echte werk: de markt gaat wild, een flash crash of een onverwachte news event, en je systeem blijft maar kopen en verkopen totdat je account leeg is. Herkenbaar? Een 'Circuit Breaker' is je eigen kill-switch. Het is de noodrem die je systeem uitzet voordat je complete portfolio in rook opgaat. Laten we er eentje bouwen.

Waarom heb je een Circuit Breaker nodig?

Een Circuit Breaker is fundamenteel anders dan een stop-loss. Een stop-loss beschermt één enkele transactie.

Een Circuit Breaker beschermt je hele account tegen je eigen algoritmische bot of tegen een markt die compleet ontspoort. Denk aan een 'gap down' van 20% op een aandeel of een bug in je Python script die een loop aanstuurt waardoor je honderden orders plaatst. De meeste beginnende traders denken aan risico per trade (bijv.

1% van je portfolio). Maar ze vergeten het risico per tijdseenheid.

Een Circuit Breaker kijkt naar je totale verlies over een bepaalde periode (bijvoorbeeld 5% van je totale vermogen in 1 uur) of het aantal trades dat je bot in korte tijd uitvoert. Zodra die limiet wordt bereikt, schakelt het systeem zichzelf uit. Geen nieuwe posities meer, bestaande posities sluiten (of beveiligen met een harde stop), en jij krijgt een notificatie.

Stap 1: De logica ontwerpen (De 'Kill-Switch')

Voordat je een regel codeert, moet je de regels scherp hebben. Een Circuit Breaker heeft drie knoppen: de drempel, de timer en de actie.

  1. De Drempel (Threshold): Dit is de rode lijn. Dit kan een percentage van je equity zijn (bijv. -5%) of een vast bedrag (bijv. €500 verlies in 24 uur). Een andere goede is het aantal mislukte trades achter elkaar (bijv. 5 stop-loss hits op een rij).
  2. De Timer (Window): Over welke periode meten we? Een markt kan tijdens een rustige ochtend 2% dalen, dat is normaal. Maar 2% in 5 minuten is paniek. Kies een window dat bij je strategie past. Voor scalping bots: korte window (15 minuten). Voor swing trading: langere window (dagelijks).
  3. De Actie (Action): Wat gebeurt er als de drempel is bereikt?
    • Hard Stop: Sluit ALLE posities onmiddellijk tegen marktprijs.
    • Soft Stop: Stop met nieuwe entries, maar laat bestaande posities hun eigen stop-loss volgen.
    • Freeze: Alles stilzetten, jij moet handmatig ingrijpen.

Begin klein. De meeste beginnersfouten ontstaan door te complexe logica. Houd het bij een eenvoudige check: if current_equity < starting_equity * 0.95: shutdown().

Stap 2: De technische implementatie (Code & API)

Hier gaan we de techniek in. Of je nu Python gebruikt met libraries als ccxt voor crypto of alpaca-trade-api voor aandelen, het principe is identiek.

Je hebt een 'Main Loop' of een 'Event Handler' nodig die constant de status van je account checkt.

class CircuitBreaker:
    def __init__(self, max_drawdown=0.05, window_minutes=60):
        self.max_drawdown = max_drawdown
        self.window = window_minutes
        self.start_equity = get_current_equity()
        self.triggered = False

    def check(self):
        if self.triggered:
            return True # Blijf uit
            
        current_equity = get_current_equity()
        drawdown = (self.start_equity - current_equity) / self.start_equity
        
        # Simpele check: heb ik te veel verloren?
        if drawdown >= self.max_drawdown:
            self.emergency_stop()
            return True
        return False

    def emergency_stop(self):
        self.triggered = True
        print("CIRCUIT BREAKER ACTIVATED! SLUITEN ALLE POSITIES!")
        # Hier roep je je broker API functie aan om alles te sluiten
        broker.close_all_positions()
        # Stuur een alert (email/SMS)
        send_alert("Stop loss triggered")

In Python ziet een simpele versie van een account-brede stop er zo uit: Integreer deze check in je bestaande bot, net zoals je zou doen bij het programmeren van een ATR-gebaseerde stop-loss. Roep breaker.check() op voordat je bot een nieuwe order probeert te plaatsen. Als hij True teruggeeft, stop je direct.

Stap 3: De logica valideren (Simuleren)

Nooit, maar dan ook nóóit, live gaan zonder je Circuit Breaker getest te hebben.

Je moet weten hoe het aanvoelt als de kill-switch afgaat. Gebruik een backtesting omgeving. Als je met ProRealTime werkt, test je dit in ProBacktest. Als je in Python bouwt, schrijf je een simpele unit-test die je start-equity kunstmatig verlaagt om te zien of de bot stopt, en controleer direct of er sprake is van gevaarlijke over-leveraging.

Je wilt zien of de API calls niet te langzaam zijn. Een veelgemaakte fout is dat de bot wel besluit te stoppen, maar door vertragingen bij de broker nog 3 extra trades uitvoert. Door nauwkeurige trade logging kun je precies achterhalen waarom dit gebeurde.

Test scenario's:

  • Scenario A: Een snelle flash crash van 6% in 10 minuten.
  • Scenario B: Een bug die 100 trades per minuut genereert (check op 'rate limits').
  • Scenario C: Een netwerk error.

    Wat doet je bot als de API offline is?

Stap 4: Monitoren en Aanpassen

Als je systeem eenmaal live draait, ben je nog niet klaar. Een Circuit Breaker is geen 'set and forget' ding.

Het is een levend onderdeel van je risicomanagement. Hou een logboek bij.

Elke keer dat de Circuit Breaker afgaat, moet je analyseren waarom. Was het een echte markt crash of was je instelling te strak? Als je bot elke week wordt uitgeschakeld door je eigen Circuit Breaker, is je strategie te agressief of je limieten te laag. Pas je parameters aan.

Een goeie tip: gebruik een trailing circuit breaker. In plaats van een vast bedrag, koppel je de limiet aan je hoogste equity punt ooit.

Als je €10.000 hebt verdiend, en je zakt opeens 10% terug naar €9.000, kan de breaker afgaan. Dit beschermt je winst.

Checklist: Is je Circuit Breaker klaar?

Voordat je de live-knop indrukt, loop deze lijst na. Eén 'Nee' is genoeg om terug te gaan naar stap 1.

  • ✅ Is de drempel realistisch voor het fonds dat ik verhandel? (Een crypto coin heeft meer beweging nodig dan een ETF).
  • ✅ Heeft mijn broker API een rate limit die de 'close all' functie vertraagt?
  • ✅ Heb ik de Circuit Breaker getest in een PaperTrade omgeving?
  • ✅ Krijg ik een onmiddellijke notificatie (Telegram/SMS/Email) als hij afgaat?
  • ✅ Weet ik wat er gebeurt met openstaande orders als de breaker afgaat? (Annuleer ze allemaal!)

Een Circuit Breaker geeft je gemoedsrust. Het maakt niet uit hoe slim je Python script is of hoe goed je backtest resultaten zijn, de markt blijft onvoorspelbaar. Met een kill-switch op maat zorg je dat je nooit meer wakker hoeft te liggen van een leeggegeten account.

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.