Wat te doen als je bot een 'Ghost Trade' opent?

Portret van Alex de Vries, Quantitatief Analist & Algo-Trading Expert
Alex de Vries
Quantitatief Analist & Algo-Trading Expert
Foutmeldingen & Debugging Live Bots · 2026-02-15 · 5 min leestijd

Je bot draait, je bent net wakker en ziet iets geks: een trade die je niet herkent. Geen logica, geen patroon, gewoon een open positie die er niet hoort te zitten.

Dat is een ghost trade, en het voelt alsof je computer een eigen leven is gaan leiden. Even rustig ademhalen. We gaan dit samen fixen.

Wat is een ghost trade eigenlijk?

Een ghost trade is een positie die in je broker-account verschijnt zonder dat je strategie daar expliciet de opdracht voor heeft gegeven. Het is geen onzichtbare trade, maar een trade die ontstaat door een fout in de code, een verkeerde API-call, of een mismatch tussen je backtest en live-omgeving.

Je ziet hem in je broker-dashboard, maar je bot herkent hem niet als eigen.

Denk aan een order die per ongeluk twee keer wordt verstuurd omdat je bot een timeout krijgt en opnieuw probeert. Of een partial fill die je code niet netjes verwerkt. Soms is het een restpositie van een eerdere sessie die niet is opgeruimd. Het gevaar? Je risicomanagement loopt in de soep en je exposure groeit ongemerkt.

Waarom dit nú belangrijk is voor je Python-bot

Als je met Python, brokers zoals Interactive Brokers, Alpaca, of Binance, en API-keys werkt, gebeurt er veel achter de schermen.

Een kleine bug in je orderbevestiging of een ruis op de websocket kan al genoeg zijn voor een ghost trade. Vooral als je meerdere symbolen draait of met leverage werkt. Stel je voor: je bot zet een long op BTC/USDT met 5x hefboom. Door een bug in je order-id mapping denkt je bot dat de order mislukt is en stuurt een nieuwe.

Je broker voert beide uit. Je exposure is nu dubbel, en je risicomanagement telt mee voor één positie. Dat is pijnlijk.

Backtests geven je geen garantie. Live-markten zijn rauwer: latency, rate limits, en netwerkfouten spelen op.

Je bot moet kunnen omgaan met onverwachte situaties en ghost trades tijdig opsporen en oplossen.

De kern: hoe ontstaat een ghost trade en wat kun je direct doen?

Stap 1: Stop de bot en sluit de positie handmatig

Zodra je een ghost trade ziet, zet je bot stil. Gebruik eventueel een Dead Man's Switch voor je trading server; geen paniek, maar wel direct actie.

Sluit de positie handmatig via je broker-dashboard. Dit voorkomt verder oplopende schade en geeft je lucht om de oorzaak te vinden.

Stap 2: Controleer je order- en position-synchronisatie

Check je broker-API-log. Kijk naar order-id’s, fills, en cancellaties. Vaak zie je een duplicate order of een verkeerde status.

Noteer het tijdstip, symbool, grootte, en prijs. Deze gegevens zijn goud waard voor het debuggen van je trading bot. Veel ghost trades ontstaan door een mismatch tussen je bot en je broker. Je bot denkt iets te hebben gedaan, maar de broker doet iets anders.

Zorg dat je een single source of truth hebt: de broker is leidend.

Stap 3: Fix de oorzaak in je code

Je bot moet regelmatig zijn eigen positie afstemmen met die van de broker. Gebruik een heartbeat-functie die elke 30 seconden je open posities vergelijkt. Verschillen?

Dan krijg je een alert en stopt je bot automatisch. Dit voorkomt dat ghost trades onopgemerkt blijven. Meest voorkomende oorzaken:

  • Double order sending: je bot stuurt een order, krijgt geen bevestiging, en stuurt opnieuw.
  • Foute order-status handling: je bot denkt dat een order geannuleerd is, maar de broker vult hem alsnog.
  • Partial fills niet correct verwerkt: je bot opent 10 contracts, maar krijgt 3 en 7 in twee fills. Je bot telt maar één fill mee.
  • Restposities van vorige sessies: je bot start op zonder eerst open posities op te ruimen.

Los dit op met een order-manager die elk order-id uniek bijhoudt, timeouts slim afhandelt, en altijd synchroniseert met de broker.

Gebruik een database of een in-memory store voor order- en positie- statussen.

Prijsindicaties voor tools en diensten

Goede tooling helpt ghost trades voorkomen. Hieronder een paar opties met indicatieve prijzen (standaardprijzen, kunnen wijzigen):

  • Broker API: Interactive Brokers (TWS) – gratis met account, data vanaf €10/maand voor marktdata. Alpaca – gratis voor aandelen, crypto via add-ons (vanaf €5/maand).
  • Logging & monitoring: Datadog (vanaf €15/maand) of self-hosted Prometheus + Grafana (serverkosten €10-€20/maand).
  • Backtesting infrastructuur: Backtrader of VectorBT (open source). Cloud-hosting via AWS t3.small (€10-€15/maand).
  • Risicomanagement add-ons: broker-native tools zoals IBKR Risk Navigator (inbegrepen), of eigen scripts met limieten per symbool (bijv. max 2% exposure per trade).

Investeer in goede monitoring en risk checks, en vergeet niet het belang van database backups voor je trading logs. De kosten zijn laag vergeleken met de schade van een onopgemerkte ghost trade.

Praktische tips om ghost trades te voorkomen en te fixen

Een bot die niet weet wat hij doet, is een risico. Zorg dat je altijd weet wat er openstaat.
  • Gebruik een order-id registry: sla elk order-id op met status (pending, filled, cancelled). Verwerk alleen fills die matchen met bekende IDs.
  • Implementeer een pre-trade check: controleer of er al een positie open is voor het symbool voordat je een nieuwe order stuurt.
  • Stel harde limieten in: max exposure per symbool, max aantal open posities, max dagelijks verlies. Stop de bot als een limiet wordt overschreden.
  • Log alles: order-sends, fills, cancellations, errors. Gebruik gestructureerde logs (JSON) voor makkelijke analyse.
  • Test je error handling: simuleer timeouts, rate limits, en netwerkfouten in een sandbox-omgeving.
  • Voer een dagelijkse reconciliatie uit: vergelijk je bot-positie met de broker-positie aan het einde van de dag. Los verschillen direct op.
  • Houd je bot eenvoudig: minder complexiteit betekent minder ghost trades. Voeg functies stap voor stap toe en test elke wijziging.

Als je een ghost trade tegenkomt, sluit hem handmatig, vind de oorzaak, en verbeter je bot.

Met de juiste monitoring en risk checks wordt je bot stabieler en betrouwbaarder. En jij slaapt weer rustig.

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 Foutmeldingen & Debugging Live Bots
Ga naar overzicht →