Hoeveel procent van mijn kapitaal mag ik per trade riskeren?
Stel je voor: je hebt een gave Python-bot gebouwd die op basis van een API van Interactive Brokers of Alpaca trades plaatst. Je backtest ziet er fantastisch uit, je hebt de parameters geoptimaliseerd en je bent klaar om live te gaan.
Maar dan komt de belangrijkste vraag: hoeveel van je geld zet je op het spel bij elke transactie? Dit is geen theoretisch vraagstuk; het is het verschil tussen een bot die overleeft en een bot die na een paar verkeerde candlesticks uitgeschakeld wordt. We gaan hier geen ingewikkelde formules uit de hoge hoed toveren, we gaan praktisch aan de slag met risicomanagement voor jouw algoritmische setup.
Stap 1: Check je technische voorwaarden
Voordat we percentages berekenen, moet je weten wat je tools doen. Je hebt een broker nodig die API-toegang biedt en die fractional shares ondersteunt als je met kleine bedragen werkt.
Denk aan Interactive Brokers, Alpaca of een crypto-exchange als Binance. Zonder API-access kun je geen risico per trade automatisch instellen.
Je Python-omgeving moet stabiel zijn. Gebruik libraries als ccxt, ib_insync of alpaca-trade-api. Zorg dat je backtesting-engine (bijvoorbeeld Backtrader of Zipline) dezelfde risicologica gebruikt als je live-bot.
- Een brokeraccount met API-toegang (minimaal €500-€1000 startkapitaal).
- Een Python-omgeving (lokale machine of cloud zoals AWS Lambda).
- Een backtesting-tool die order execution simuleert.
- Een risicomanagement-module die stop-loss en position size berekent.
Als je backtest geen rekening houdt met transactiekosten of slippage, is je risicoberekening waardeloos. Wat je nodig hebt:
Veelgemaakte fout: direct live gaan zonder de risicologica te testen in een paper-trading omgeving. Doe dit altijd eerst.
Stap 2: Bepaal je risicopercentage per trade
De gouden regel voor algoritmische trading is: riskeer nooit meer dan 1% tot 2% van je totale kapitaal per trade. Voor een account van €10.000 betekent dit maximaal €100 tot €200 risico per transactie.
Dit klinkt conservatief, maar het voorkomt dat een serie verliezen je account liquideert. Stel je hebt een bot die 10 trades per dag uitvoert. Als je 2% per trade riskeert, kan een reeks van 5 verliezen je account met 10% laten krimpen.
Met 1% is dat maar 5%. Je bot heeft zo meer ruimte om te herstellen en je psychologie blijft stabiel.
- Accountgrootte: €10.000.
- Risico per trade: 1% = €100.
- Maximaal dagelijks risico: 3% = €300 (stop de bot als dit wordt bereikt).
Specifieke maatvoering: Veelgemaakte fout: je risicopercentage baseren op je winstverwachting in plaats van op je drawdown. Doe dit niet; houd je aan een vast percentage ongeacht hoe "zeker" een trade lijkt.
Stap 3: Bereken de position size op basis van je entry en stop-loss
Nu we weten hoeveel we mogen verliezen, berekenen we hoeveel eenheden we mogen kopen.
De formule is simpel: position size = risicobedrag / (entry - stop-loss). Als je een aandeel koopt op €50 en je stop-loss ligt op €48, is je risico per aandeel €2. Met een risicobedrag van €100 koop je 50 aandelen.
Werken met API’s vereist precisie. Bij Interactive Brokers kun je via de API een order plaatsen met een stop-loss.
- Bepaal entry en stop-loss in je strategie.
- Bereken de afstand in procenten: (entry - stop-loss) / entry.
- Deel je risicobedrag door deze afstand om het aantal eenheden te krijgen.
- Controleer of de broker API fractional shares toestaat; zo niet, rond af naar beneden.
Bij crypto op Binance moet je rekening houden met leverage en funding fees.
Voor een bot die long gaat op BTC bij €40.000 met een stop-loss op €39.600 (1% daling), is je risico per BTC €400. Met een risicobedrag van €100 mag je 0,25 BTC kopen (bij 1x leverage). Stappen in code: Veelgemaakte fout: vergeten dat de stop-loss afstand inclusief spread en fees moet zijn. Voeg altijd 0,1% tot 0,2% toe voor slippage, zeker bij snelle markten.
Stap 4: Integreer risicomanagement in je Python-code
Je bot moet risicomanagement automatisch toepassen. Schrijf een functie om je maximale exposure per trade te limiteren in Python en geef dit door aan je API-call.
Gebruik een risicomanagement-class die je accountbalans, risicopercentage en stop-loss logica beheert, terwijl je ook rekening houdt met het tegenpartijrisico bij je broker. Voorbeeld in pseudocode: Integreer deze functie in je order-loop.
def calculate_position_size(entry, stop_loss, account_balance, risk_percent=0.01):
risk_per_trade = account_balance * risk_percent
price_risk = entry - stop_loss
position_size = risk_per_trade / price_risk
return position_size
Bij elke trade roep je deze aan en pas je de ordergrootte aan. Zorg dat je bot geen trades plaatst als de berekende size kleiner is dan de minimale ordergrootte van de broker.
Veelgemaakte fout: hardcoden van position sizes zonder rekening te houden met wisselende accountbalans.
Zorg dat je bot elke keer opnieuw berekent, vooral na winst of verlies.
Stap 5: Test je risicomanagement in een backtest
Je backtest moet niet alleen winst tonen, maar ook drawdown en inzicht in je risico per trade. Gebruik een tool als Backtrader met een risico-module die stop-loss en position size simuleert.
Draai minimaal 1000 trades of een jaar aan data om betrouwbare resultaten te krijgen. Controleer de volgende metrics: Veelgemaakte fout: backtests zonder transactiekosten. Voeg €0,01 per aandeel of 0,1% crypto-fee toe om realistische resultaten te zien.
- Maximale drawdown: onder 10% voor een conservatieve bot.
- Winrate: niet het belangrijkste, maar zorg dat risico/reward minimaal 1:1,5 is.
- Risico per trade: gemiddeld 1% of minder.
Stap 6: Monitor en pas live aan
Als je bot live gaat, monitor dan elke trade. Gebruik een dashboard (bijvoorbeeld met Grafana of een simpele Telegram-bot) die je waarschuwt als je dagelijks risico wordt overschreden.
Stel een kill-switch in: als je account met 5% daalt, stopt de bot automatisch. Pas je risicopercentage aan op basis van prestatie. Als je bot consistent winst maakt, kun je voorzichtig opschalen naar 1,5% risico.
Bij verliesperioden verlaag je naar 0,5%. Dit heet dynamisch risicomanagement en voorkomt dat je te snel te veel verliest.
Veelgemaakte fout: emotioneel ingrijpen als de bot verliest. Vertrouw op je vooraf bepaalde risicoregels en wijzig deze niet tijdens een trade.
Verificatie-checklist
- Heb je een broker met API-toegang en fractional shares?
- Is je risicopercentage ingesteld op 1-2% per trade?
- Wordt position size automatisch berekend in je Python-code?
- Bevat je backtest transactiekosten en slippage?
- Is er een dagelijkse risicolimiet en kill-switch ingesteld?
- Test je live eerst met paper trading voor minimaal 2 weken?
Als je deze checklist kunt afvinken, sta je sterker dan de meeste retail-traders.
Je bot is nu niet alleen slim, maar ook veilig. Ga aan de slag, maar onthoud: risicomanagement is je beste vriend, niet je vijand.
