De 'Kelly Criterion' toepassen voor optimale positiegrootte

Portret van Alex de Vries, Quantitatief Analist & Algo-Trading Expert
Alex de Vries
Quantitatief Analist & Algo-Trading Expert
Algoritmische Strategieën · 2026-02-15 · 6 min leestijd

Stel je voor: je hebt een algoritmische bot die op de Binance Futures API draait. Je backtest ziet er geweldig uit, maar in de live markt verlies je je inleg omdat je te veel risico neemt per trade.

De Kelly Criterion is de oplossing. Het is een wiskundige formule die je helpt bepalen hoeveel van je kapitaal je in één trade moet stoppen, zodat je portefeuille maximaal groeit zonder te crashen. Geen magie, gewoon logica.

Wat is de Kelly Criterion precies?

De Kelly Criterion is een formule uit de jaren ’50, bedacht door John Kelly bij Bell Labs. Het doel is simpel: bereken de optimale positiegrootte voor elke trade op basis van je winstpercentage en je winst/verlies-verhouding.

In plaats van blind 1% of 2% van je account te riskeren, gebruikt Kelly de werkelijke kansen en uitkomsten van je strategie. De basisformule ziet er zo uit: f* = (bp - q) / b. Hierbij is f* het deel van je kapitaal dat je moet inzetten, b de verhouding tussen je winst en je risico (bijvoorbeeld 2:1), p het winstpercentage, en q het verliespercentage (q = 1 - p).

Het klinkt abstract, maar met een concreet voorbeeld wordt het helder. Stel je backtest op een Python bot met historical data van BTC/USDT op Binance.

Je wint 55% van de trades en je gemiddelde winst is €400 terwijl je gemiddelde verlies €200 is. Dan is b = 400 / 200 = 2. Je p = 0.55, q = 0.45. De Kelly f* = (2 * 0.55 - 0.45) / 2 = 0.325.

Dat betekent 32,5% van je kapitaal per trade. Dat klinkt hoog, en dat is het ook – we komen straks op varianten.

Waarom Kelly cruciaal is voor algoritmische traders

Veel traders gebruiken vaste risicopercentages, zoals 1% per trade. Dat is veilig, maar niet optimaal.

Als je strategie een hoge edge heeft, loop je potentiele winst mis.

Als je edge laag is, riskeer je te veel. Kelly past je positiegrootte dynamisch aan je werkelijke edge, wat leidt tot maximale groei op de lange termijn. Voor algoritmische bots is dit nog relevanter.

Een bot die 24/7 draait op een VPS, aangesloten via API op exchanges zoals Binance, Bybit of Kraken, maakt tientallen trades per dag. Zonder goede positiebepaling kan een serie verliezen je account snel uitroeien.

Kelly zorgt voor een evenwicht tussen groei en bescherming. Denk aan je backtesting pipeline in Python: je gebruikt libraries zoals Backtrader of Zipline, je haalt data via CCXT of de Binance API, en je berekent je winstpercentage en gemiddelde winst/verlies. Die getallen voed je in de Kelly formule. Zo koppel je je backtest direct aan je risicomanagement in de live bot.

Er is nog een praktisch voordeel: Kelly forceert je om je edge scherp te definiëren.

Je kunt niet zomaar een bot live zetten zonder te weten wat je verwachte winst per trade is. Dat voorkomt emotionele beslissingen en zorgt voor consistente uitvoering, wat essentieel is bij automatisch traden.

Hoe je Kelly berekent: stap voor stap

Stap 1: verzamel je data. Doe een backtest van minimaal 500 trades, bijvoorbeeld op BTC/USDT futures via Binance. Ben je nog zoekende? Ontdek wat de beste strategie voor een beginnende algo-trader is.

Gebruik Python met CCXT om historische kandelaars te halen, en bereken per trade je entry, exit, winst en verlies. Zorg dat je transactiekosten meeneemt (bij Binance Futures is dat 0,02% maker / 0,04% taker). Stap 2: bereken je kerngetallen. Tel hoeveel trades winstgevend waren (p) en wat je gemiddelde winst en verlies waren in euro’s.

Stel je hebt 600 trades, 330 winst, 270 verlies. Gemiddelde winst €300, gemiddelde verlies €150.

Dan is p = 0.55, b = 300 / 150 = 2.

Stap 3: pas de formule toe. f* = (2 * 0.55 - 0.45) / 2 = 0.325. Dus 32,5% van je account per trade. Als je account €10.000 is, zou je €3.250 inzetten.

In de praktijk is dat te agressief, vooral als je data beperkt is of de markt verandert. Daarom gebruiken we conservatieve varianten.

Stap 4: implementeer in je bot. In Python bepaal je voor elke trade je positiegrootte: positie_grootte = (f* * account_balance) / stop_loss_afstand. Bij een 2:1 strategie die voldoet aan de 5 kenmerken van een robuuste trading strategie met een stop van €100, gebruik je f* om je inleg te berekenen.

Je API-call naar de exchange moet rekening houden met leverage en margin.

Bij Binance Futures kun je met 10x of 20x werken, maar Kelly gaat uit van het werkelijke risico. Stap 5: test live met kleine bedragen.

Zet je bot eerst live met een beperkt account, bijvoorbeeld €500, en draai een week.

Monitor de drawdown en pas f* aan als de markt volatieler wordt. Gebruik een dashboard zoals Grafana of een Telegram-bot voor alerts.

Varianten en praktische aanpassingen

De klassieke Kelly is vaak te agressief. Daarom gebruiken veel traders half-Kelly: f_half = f* / 2.

In ons voorbeeld wordt dat 16,25% van je kapitaal per trade. Dat verlaagt de groei, maar reduceert drawdowns aanzienlijk. Voor een bot die 24/7 draait, is half-Kelly een veilige start.

Een andere variant is fractional Kelly: f_frac = f* * factor, waarbij factor tussen 0,1 en 0,5 ligt.

Je kunt dit koppelen aan je volatiliteit. Als de ATR (Average True Range) van BTC hoog is, verlaag je de factor. In Python bereken je ATR via libraries als TA-Lib, en je past je positiegrootte dynamisch aan. Er zijn ook alternatieve modellen, zoals de optiegebaseerde Kelly.

Hier kijk je naar de implied volatiliteit van opties op BTC of ETH en pas je je risico aan op basis van de kansverdeling. Dit is complexer en vereist toegang tot optiedata via een broker zoals Deribit.

Voor de meeste futures-bots is de klassieke of half-Kelly voldoende. Prijsindicaties voor tools: een VPS voor je bot kost ongeveer €10-€20 per maand (bij DigitalOcean of Hetzner). Backtesting data via Binance API is gratis, maar voor meer historische data kun je een abonnement nemen bij CoinMetrics of Kaiko, vanaf €50 per maand. Voor risicomanagement kun je een dashboard bouwen met Streamlit (gratis) of een betaalde tool zoals QuantConnect vanaf €20 per maand.

Praktische tips voor Kelly in algoritmische trading

  • Gebruik altijd half-Kelly als je net begint. Het voorkomt dat een reeks verliezen je account vernietigt.
  • Neem transactiekosten mee in je backtest. Bij Binance Futures zijn dat 0,02-0,04%, wat bij hoge frequentie flink optelt.
  • Monitor je edge continu. Als je winstpercentage daalt naar 50% of lager, verlaag je f* of zet de bot stop.
  • Combineer Kelly met een maximale drawdown limiet. Stel bijvoorbeeld in dat je bot stopt als de drawdown 15% is.
  • Test op meerdere markten. Een bot die goed werkt op BTC/USDT, presteert misschien anders op ETH/USDT. Pas je f* per markt aan.
  • Gebruik Python libraries voor automatisering: Backtrader voor backtests, CCXT voor API’s, en NumPy voor berekeningen.
  • Houd een trade log bij in een spreadsheet of database. Noteer elke trade, je positiegrootte, en je resultaat. Zo kun je je Kelly-factoren blijven fine-tunen.
Kelly is geen garantie voor winst, maar een hulpmiddel voor discipline. Het dwingt je om je edge te meten en je risico te beheersen.

Sluit af met een simpele routine: elke week je backtest updaten, je kerngetallen controleren, en je f* aanpassen als de markt verandert. Zo blijft je algoritmische bot scherp en je kapitaal beschermd, terwijl je de meest succesvolle algoritmische trading strategieën toepast voor groei. Met Kelly zit je aan tafel met de markt, niet ertegen.

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 Algoritmische Strategieën
Ga naar overzicht →