Wat te doen als de broker API documentatie niet klopt?
Je zit klaar met je Python bot, je hebt een mooie backtest gedraaid en je broker API koppeling staat op punt van actief.
Dan stuit je op een foutmelding die niet in de documentatie staat. Of erger: de documentatie belooft iets, maar in de praktijk werkt het net andersom. Dat is niet alleen frustrerend, het kan je serieuze centen kosten. Een verkeerde order omdat de API foutief reageert, is zo gebeurd. Je moet weten hoe je dit oplost zonder je complete strategie overboord te gooien.
Waarom slordige documentatie een risico is voor je bot
API documentatie is het recept voor je handelsbot. Als de ingrediëntenlijst klopt, kook je een perfecte maaltijd.
Als er een fout in staat, eindig je met een verbrande pan. Bij algoritmisch traden gaat het vaak om milliseconden en kleine verschillen in prijsvorming.
Een fout in de documentatie kan leiden tot verkeerde order types, verkeerde symbolen of zelfs het niet uitvoeren van een stop-loss. Stel je voor: je bot scant de koers van Apple (AAPL) en zet een limit order op €150,00. De documentatie zegt dat de API de prijs aanneemt als een float (150.00). In werkelijkheid verwacht de broker een string ("150.00") of rekent met een andere precisie.
Je order faalt of wordt uitgevoerd op een ongunstig moment. Dat is niet alleen irritant, het vreet aan je risicomanagement en je winst.
De kern van het probleem: symptomen herkennen
Het begint vaak klein. Je krijgt een HTTP 400 of 500 error terug, maar de foutmelding is vaag.
"Invalid request" of "General error" zegt je weinig. Of de API documentatie belooft ondersteuning voor een bepaalde order type, maar je broker ondersteunt het alleen voor aandelen, niet voor crypto.
Dit soort mismatchen kom je pas tegen als je live gaat, want in de backtest werk je met historische data, niet met de echte API. Een ander veelvoorkomend probleem is rate limiting. De documentatie zegt dat je 100 requests per minuut mag doen, maar in de praktijk word je al na 50 requests geblokkeerd.
Veelvoorkomende valkuilen in API documentatie
- Verkeerde data types: Prijs als float vs string, timestamps als unix vs ISO.
- Ontbrekende parameters: Documentatie noemt een optie, maar de API accepteert het niet.
- Rate limits: Onvolledige uitleg over wat wel en niet telt als request.
- Symbol formats: AAPL vs aapl.us vs US.AAPL, afhankelijk van de broker.
Dit komt vaak door verborgen limieten voor specifieke endpoints. Je bot crasht of stopt met traden terwijl de markt beweegt.
Dit is typisch iets wat je alleen ziet als je met echt geld en echte data werkt. Om dit soort problemen op te lossen, moet je niet blind vertrouwen op de documentatie. Je moet testen, meten en aanpassen. Dit begint bij een goede testomgeving.
Stap-voor-stap: hoe je de fout oplost
De eerste stap is een sandbox of demo account. Gebruik nooit je live account om API problemen te debuggen.
De meeste brokers bieden een demo account aan, zoals Interactive Brokers, Alpaca of een crypto exchange als Binance. Hier kun je zonder risico testen hoe de API reageert. Zorg dat je demo account dezelfde voorwaarden heeft als je live account, zoals dezelfde beschikbare instrumenten en tarieven.
Log altijd alles: je request, de response, en de timestamp. Dit is je bewijsmateriaal voor later.
Maak een simpel testscript in Python. Voorkom veelgemaakte Python-fouten in trading scripts door de requests library of de officiële SDK van de broker zorgvuldig te gebruiken.
- Order placement (limit, market, stop-loss)
- Position ophalen
- Account balance
- Historische data (candles)
Stuur een simpele request, bijvoorbeeld het ophalen van de account status. Log de exacte response, inclusief headers en status codes. Vergelijk dit met de documentatie.
Gebruik een mock server voor backtesting
Vind je een verschil? Noteer het. Gebruik een tool zoals Postman of een Python script met json.dumps() om de response mooi te formatteren.
Test vervolgens specifieke endpoints die je bot gebruikt. Voor een trading bot zijn dat vaak:
Probeer elke endpoint met verschillende parameters. Verander de prijs, het volume, de munt. Kijk of de API consistent reageert. Als je een fout krijgt, noteer dan precies wat je hebt gestuurd en wat terugkwam.
Een mock server simuleert de broker API zonder echt contact te maken. Dit is handig voor backtesting en voor het testen van je bot-connectie zonder risico.
- Verkeerde data terugsturen om te zien hoe je bot reageert.
- Rate limits simuleren.
- Verkeerde foutmeldingen geven om je error handling te testen.
Je kunt een eenvoudige mock server bouwen met Flask of FastAPI in Python. Of gebruik een library als responses om HTTP requests te mocken. Stel je bot in om tegen de mock server te praten. Je kunt dan:
Dit kost niets en bespaart je veel hoofdpijn later. Voor een professionele setup kun je tools als pytest of unittest gebruiken om je bot te testen tegen de mock server.
Prijsindicaties voor tools en oplossingen
Goede tools helpen je om API problemen sneller op te lossen. Hier zijn een paar opties met prijzen:
- Postman: Gratis voor basisgebruik. Pro versie vanaf €12 per gebruiker per maand. Handig voor het testen van API endpoints.
- PyTest: Helemaal gratis. Ideaal voor het schrijven van testscripts in Python.
- Mock server libraries:
responses(gratis) ofFlask(gratis). Een eigen mock server opzetten kost tijd, maar geen geld. - Broker demo accounts: Meestal gratis. Bij Interactive Brokers moet je een live account hebben, maar demo is gratis. Bij crypto exchanges is een demo account vaak gratis beschikbaar.
- Professionele API monitoring: Tools zoals Papertrail (vanaf €7 per maand) of Sentry (gratis tot 50.000 events per maand) helpen bij het loggen van errors.
Investeer eerst in gratis tools. Pas als je bot live gaat en je echt geld verdiend, kun je overwegen om te betalen voor professionele monitoring.
Praktische tips voor je volgende bot
Begin met een checklist voor elke nieuwe broker API die je gebruikt. Schrijf op:
- Welke endpoints gebruik je?
- Wat zijn de rate limits?
- Hoe worden prijzen en volumes geformatteerd?
- Welke foutmeldingen kun je verwachten?
Test je bot eerst op een demo account voor minimaal 1 week. Draai hem 24 uur per dag en kijk of er errors optreden.
Gebruik een tool zoals Telegram of Discord om alerts te ontvangen als je bot crasht. Dit is gratis en eenvoudig in te stellen met Python libraries zoals python-telegram-bot. Hou je code eenvoudig. Gebruik functies voor elke API call, zodat je snel kunt debuggen. Bijvoorbeeld:
def get_balance(api_key):
response = requests.get("https://api.broker.com/balance", headers={"Authorization": api_key})
if response.status_code != 200:
log_error(response.text)
return None
return response.json()
Log elke error in een bestand of database. Zorg er daarnaast voor dat je je dependencies goed beheert met een requirements.txt of Poetry file, zodat je altijd een historie opbouwt die je helpt bij het oplossen van problemen.
Sluit af met een test voor je risicomanagement. Zorg dat je bot altijd een stop-loss heeft en dat je weet wat er gebeurt als de API faalt. Gebruik een fallback mechanisme, zoals handmatige ingreep of een tweede broker. Dit beschermt je kapitaal en geeft je gemoedsrust.
