Wat is OAuth en hoe beveilig je je broker verbinding?
Je broker koppelen aan een Python trading bot voelt soms als je huisdeur op slot doen met een open raam ernaast.
Je wilt snel data ophalen, orders plaatsen en je backtests draaien, maar je wilt niet dat je API-sleutel op straat ligt. OAuth is hier je beste vriend.
Het is geen ingewikkeld toverwoord, maar een manier om toegang te geven zonder je wachtwoorden te delen. In deze handleiding leef je stap voor stap hoe je een veilige broker-verbinding opzet voor je algoritmische trading setup.
Wat je nodig hebt voordat je begint
Voordat we starten, zorg je dat je een aantal basics op orde hebt. Dit is geen urenlang gedoe, maar een checklist van 5 minuten.
Je hebt een broker account nodig met API-ondersteuning, bijvoorbeeld Interactive Brokers, Degiro of een crypto-exchange zoals Binance. Een API-sleutel (of token) is je toegangspas. Zorg dat je Python geïnstalleerd hebt, versie 3.8 of nieuwer, en een IDE zoals VS Code of PyCharm.
Gebruik een virtual environment om je packages gescheiden te houden, dat voorkomt rommel in je systeem.
Installeer de benodigde Python packages: pip install requests oauthlib voor algemene OAuth-ondersteuning, en broker-specifieke libraries zoals ib_insync voor Interactive Brokers of ccxt voor crypto-exchanges. Heb je een backtesting framework zoals Backtrader of Zipline al draaien? Mooi, want die koppelen we straks ook. Tijd: ongeveer 10 minuten.
Kosten: gratis, tenzij je broker een API-abonnement heeft (bijv. €10-€20 per maand voor premium toegang). Veelgemaakte fout: vergeten een virtual environment aan te maken, waardoor je packages conflicteren met bestaande projecten.
Stap 1: Kies je broker en activeer API-toegang
Log in op je broker dashboard en zoek naar 'API' of 'Developer Settings'. Bij Interactive Brokers activeer je de TWS API in het configuratiemenu van Trader Workstation.
Bij Degiro ga je naar 'Instellingen' en vul je een API-aanvraag in.
- Open je broker account en navigeer naar API-instellingen (tijd: 2 minuten).
- Activeer API-toegang; kies voor 'paper trading' of een testomgeving (tijd: 1 minuut).
- Maak een nieuwe API-sleutel aan met beperkte rechten (alleen lezen voor backtesting) (tijd: 1 minuut).
- Bewaar de sleutel in een veilige plek, zoals een password manager (tijd: 30 seconden).
Voor crypto-exchanges zoals Binance activeer je API-toegang in je accountprofiel, met lees- en handelsrechten. Zet de 'read-only' modus eerst aan, testen zonder risico op echte trades. Veelgemaakte fout: te veel rechten geven aan je API-sleutel, zoals volledige handelstoegang zonder limieten.
Dat is als je huisdeur openzetten voor elke bezorger. Specifieke maatvoering: voor backtests heb je alleen 'read' rechten nodig; voor live trading voeg je 'write' toe na testing.
Tijdsindicatie: totale tijd 5 minuten. Kosten: meestal gratis, maar check je broker voor eventuele API-licentiekosten (bijv. €5 per maand voor premium data).
Stap 2: Installeer en configureer OAuth in Python
OAuth is een standaard voor autorisatie zonder wachtwoorden te delen. Je krijgt een toegangstoken dat tijdelijk geldig is, vaak 1 uur tot 24 uur, en je ververs het automatisch.
Voor trading bots is dit ideaal: je script vraagt token-vernieuwing aan zonder tussenkomst.
Open je Python-project en start met een nieuwe file, bijv. oauth_broker.py. Gebruik de library oauthlib voor algemene OAuth 2.0 flow, of broker-specifieke SDKs zoals ib_insync voor IB. Stap-voor-stap configuratie: eerst de basis.
Installeer de packages als je dat nog niet deed. Voeg je API-sleutel en secret toe aan een .env-bestand, niet hardcoded in je code.
Gebruik python-dotenv om het te laden. Voor IB: maak een connectie met TWS of Gateway op poort 7497 (paper) of 7496 (live). Voor crypto via CCXT: initialiseer de exchange met je API-credentials. Tijd: 15-20 minuten. Veelgemaakte fout: vergeten de .env-file te .gitignore-en, waardoor je sleutels per ongeluk in GitHub belanden.
Specifiek voor trading: zet je script op een aparte Raspberry Pi of cloud-instance (bijv.
AWS t3.micro, €5-10 per maand) om je main machine vrij te houden.
Denk aan OAuth als een hotel-sleutelcard: je krijgt toegang tot je kamer, maar niet tot de kluis van de receptionist. Zo beveilig je je bot tegen ongewenste toegang.
Stap 3: Voer de OAuth-flow uit voor je broker
Elke broker heeft een licht verschillende OAuth-flow, maar de kern is hetzelfde: authorisatie, token-uitwisseling en verversing. Begin met een test-call om je connectie te valideren.
Voor Interactive Brokers versus Alpaca: gebruik de IB API met OAuth-achtige authenticatie via TWS. Voor exchanges zoals Binance: OAuth 2.0 met API-keys als fallback. Schrijf een simpel script dat je portfolio ophaalt—dat test leesrechten zonder risico.
- Initialiseer de OAuth-client met je broker's endpoint (bijv.
https://api.ibkr.com/v1/oauth/authorizevoor IB). - Vraag authorisatie aan: open de URL in je browser, log in, en kopieer de code (tijd: 2 minuten).
- Ruil de code in voor een access token via een POST-request (tijd: 1 minuut).
- Gebruik het token in je API-calls, bijv.
GET /portfolioom posities op te halen (tijd: 5 minuten testen). - Implementeer token-vernieuwing: check expiration en vraag een nieuwe aan via refresh token (tijd: 10 minuten).
Tijdsindicatie: 20-30 minuten voor de eerste succesvolle call. Kosten: geen, tenzij je live data subscribe (bijv. €10-€50 per maand voor real-time quotes).
Veelgemaakte fout: verkeerde endpoint gebruiken—check altijd je broker's developer docs. Voor backtesting: haal historische data op met het token, bijv. 1 jaar candle-data voor Python backtests met Pandas. Specifiek: als je bot op Binance draait, gebruik ccxt om OAuth te simuleren; het ondersteunt 100+ exchanges zonder aparte setup.
Stap 4: Beveilig je verbinding en test je bot
Nu je token draait, focus op beveiliging. Gebruik HTTPS voor alle calls—geen HTTP, dat is als je ramen openzetten in een storm.
Sla je credentials op in een versleutelde vault, niet in plaintext. Voor trading bots: implementeer rate limiting (bijv. max 1200 requests per minuut bij IB) om bans te voorkomen.
Test je backtesting-script: draai een eenvoudige SMA-crossover strategie op historische data, met je koppeling via een API om data te fetchen. Stappen voor beveiliging: eerst firewall op je server (bijv. ufw op Linux: sudo ufw allow 22 voor SSH, verder dicht). Twee-factor authenticatie (2FA) op je broker account is verplicht.
Voor risicomanagement: voeg stop-loss en position sizing toe aan je bot, bijv. max 1% risico per trade. Test met paper trading: draai 100 trades zonder echt geld. Tijd: 30-45 minuten.
Veelgemaakte fout: geen rate limiting, waardoor je API-key geblokkeerd wordt na een backtest met duizenden calls. Specifieke maatvoering: voor Python bots, gebruik time.sleep(1) tussen calls om limieten te respecteren; je actuele portfolio balans opvragen via een Python script is essentieel voor monitoring. Voor grootschalige backtests, overweeg een data-feed provider zoals Alpaca (gratis voor basis) of Polygon (€99/maand voor premium).
Stap 5: Onderhoud en monitoring van je OAuth-verbinding
Een OAuth-token vervalt, dus je moet het bijhouden—denk aan een auto die regelmatig tankt. Schrijf een cron-job of scheduler (bijv.
Python's schedule library) om elke 50 minuten tokens te verversen. Monitor je bot met logging: gebruik logging module om errors bij te houden, zoals 'token expired' of 'rate limit exceeded'. Voor risicomanagement: koppel je bot aan een dashboard (bijv.
- Stel een verversings-script in: check token expiration en renew indien nodig (tijd: 10 minuten).
- Log elke API-call: timestamp, response code, fouten (tijd: 5 minuten).
- Test maandelijks: draai een backtest met nieuwe data en controleer connectie-stabiliteit (tijd: 15 minuten).
- Herroep sleutels bij verdenking van misbruik: genereer nieuwe API-keys bij je broker (tijd: 2 minuten).
Grafana op een Raspberry Pi, €50-100 setup) om winst/verlies en API-gebruik te tracken.
Tijdsindicatie: onderhoud kost 10 minuten per week. Kosten: monitoring tools zoals Grafana zijn gratis; cloud-hosting €5-10/maand. Veelgemaakte fout: vergeten te monitoren, waardoor je bot stopt zonder waarschuwing.
Specifiek voor algoritmische trading: integreer met je backtesting-framework—bijv. Backtrader met IB-datafeed—zodat live trading naadloos aansluit op je tests.
Verificatie-checklist
Check of alles werkt voordat je live gaat. Beantwoord ja op alle vragen voor een veilige setup.
- Is je API-sleutel beperkt tot noodzakelijke rechten (lezen voor backtest, schrijven alleen voor live)?
- Draait je Python-script in een virtual environment met de juiste packages (requests, oauthlib, broker-specifieke lib)?
- Haal je succesvol data op via OAuth, bijv. portfolio of historische candles voor backtests?
- Is token-vernieuwing geïmplementeerd en getest zonder onderbreking?
- Gebruik je HTTPS, 2FA, en rate limiting in je bot?
- Log je errors en monitor je API-gebruik wekelijks?
- Heb je paper trading getest met minstens 50 trades zonder fouten?
Als je alle ja's hebt, is je broker-verbinding ready voor Python trading bots. Bij een nee, herhaal de betreffende stap.
Dit proces duurt in totaal 1-2 uur, maar bespaart je hoofdpijn later. Zo blijft je algoritmische trading soepel en veilig draaien.
