Hoe werkt een 'Genetic Algorithm' voor strategie-optimalisatie?

Portret van Alex de Vries, Quantitatief Analist & Algo-Trading Expert
Alex de Vries
Quantitatief Analist & Algo-Trading Expert
Machine Learning & AI in Trading · 2026-02-15 · 6 min leestijd

Stel je voor: je hebt een handelsstrategie die best aardig presteert, maar je wilt meer. Meer winst, minder risico, of gewoon die ene tweak die het allemaal net wat scherper maakt.

Dan komt een genetisch algoritme om de hoek kijken. Het is niet zweverig, het is simpelweg een slimme manier om automatisch de beste parameters voor je strategie te vinden, zonder dagenlang handmatig te testen. In dit stuk lees je hoe je zo’n algoritme inzet voor strategie-optimalisatie, specifiek voor algoritmische trading met Python.

Wat heb je nodig?

Voordat je begint, zorg je dat je de juiste spullen bij de hand hebt.

Je hebt een computer nodig met Python geïnstalleerd, bij voorkeur versie 3.8 of nieuwer. Gebruik een IDE zoals VS Code of PyCharm, dat maakt het leven een stuk makkelijker. Voor de trading-kant kies je een broker met een goede API, denk aan Interactive Brokers of Alpaca.

Die APIs kosten meestal niets voor een basisaccount, maar houd rekening met eventuele commissies per trade (bijv. €0,01 per aandeel). Voor de genetische algoritmen zelf pak je bibliotheken zoals DEAP of PyGAD.

Die zijn gratis en open-source. Installeer ze met pip: pip install deap pygad.

Je hebt ook historische data nodig voor backtesting. Koop die bij je broker of via een dienst als AlgoData (ongeveer €50 per maand voor intraday data). Tot slot: een aparte rekening voor risicomanagement. Zet nooit meer in dan je kunt verliezen, bijvoorbeeld maximaal 1% van je totale kapitaal per trade.

Stap 1: Definieer je strategie en parameters

Eerst moet je weten wat je wilt optimaliseren. Neem een simpele moving average crossover-strategie.

Je hebt twee parameters: de korte MA (bijv. 5 tot 20 dagen) en de lange MA (bijv. 20 tot 100 dagen).

Deze parameters bepaal je niet zelf, maar laat je door het genetisch algoritme uitzoeken.

Schrijf je strategie uit in Python, bijvoorbeeld met libraries als pandas en backtrader. Geef elk parameterbereik een specifieke grootte. Voor de korte MA: getallen tussen 5 en 20, stapsgewijs.

Voor de lange MA: 20 tot 100, ook in stappen. Dit bepaalt hoe groot de zoekruimte is.

Een veelgemaakte fout is te breed zoeken; beperk het tot maximaal 5 parameters om de boel beheersbaar te houden.

Test je strategie eerst handmatig met een paar vaste waarden, bijv. MA(10) en MA(50). Dit duurt ongeveer 10 minuten en geeft je een baseline. Zonder deze stap loop je het risico dat je algoritme optimaal zoekt naar iets dat niet werkt.

Stap 2: Zet het genetisch algoritem op

Begin met het opzetten van de basis van je genetisch algoritem. Gebruik DEAP voor de logica: je definieert een 'individual' (een set parameters) en een 'population' (een groep van die sets).

Elk individu is een chromosoom, bijvoorbeeld [10, 50] voor de MA-waarden. Je stelt een fitnessfunctie op: die berekent de winst of Sharpe-ratio van je strategie met die parameters. Kies een populatiegrootte van 50 tot 100 individuen. Te klein?

Je mist goede oplossingen. Te groot? Het duurt eeuwen. Laat het algoritme lopen voor 20 tot 50 generaties.

Een generatie duurt ongeveer 1-2 minuten op een gemiddelde laptop, dus reken op een totale looptijd van 1-2 uur voor een complete run. Vermijd de fout om de fitnessfunctie te complex te maken. Begin met eenvoudig: totale winst of drawdown. Later kun je toevoegen aan risicomanagement, zoals de max drawdown beperken tot 10%.

Gebruik crossover (70%) en mutatie (20%) om nieuwe generaties te creëren. Test dit eerst op een kleinschalige dataset, bijv. 1 jaar historische data, om te zien of traditionele statistiek of machine learning beter convergeert voor jouw strategie.

Stap 3: Backtesten en optimaliseren

Nu komt het echte werk: backtesten met je genetisch algoritme. Laad je historische data in, bijvoorbeeld via de API van Interactive Brokers.

Gebruik Python om de data te schrijven naar een DataFrame en je strategie erop los te laten. Voor elke set parameters in de populatie draai je een backtest over een periode van minimaal 3 jaar voor dagelijkse data, of 1 jaar voor intraday. Meet de prestaties met metrics als winst, winstpercentage, en max drawdown.

Een veelgemaakte fout is overfitting in je trading model: je algoritme vindt parameters die perfect werken op historische data, maar falen in live trading.

Test daarom altijd out-of-sample: deel je data op in 70% training en 30% test. Als de resultaten op de testset minder dan 50% slechter zijn, zit je goed. Voeg risicomanagement toe door je fitnessfunctie aan te passen. Bijvoorbeeld: score = totale winst / max drawdown.

Zo voorkomt het algoritme extreme risico’s. Tijdens deze stap kun je ook rekening houden met transactiekosten (bijv. €0,01 per trade) en slippage (0,1% van de trade-waarde). Plan 2-3 uur voor deze fase, inclusief debuggen.

Stap 4: Valideer en implementeer

Nadat het algoritme convergeert (de fitness stabiliseert), pak je de beste parameters.

Bijvoorbeeld: MA(12) en MA(45). Test deze op een onafhankelijke dataset, zoals de afgelopen 6 maanden, om te zien of ze nog steeds werken. Gebruik een paper trading account bij je broker om live te simuleren zonder echt geld te riskeren.

Implementeer de strategie in je trading bot. Sluit de API aan, bijvoorbeeld via de IB-insync library voor Interactive Brokers.

Stel stop-losses in op basis van je risicobudget, bijv. 2% per trade.

Monitor de bot de eerste week nauwgezet: log elke trade en vergelijk met de backtest-resultaten. Vermijd de fout om meteen vol in te zetten. Begin met een klein bedrag, bijv. €1000, en schaal op na een maand positieve resultaten. Een andere veelgemaakte fout is het negeren van marktomstandigheden; een genetisch algoritme is niet magisch, pas het aan als de markt verandert.

Veelgemaakte fouten en tips

Een klassieke val is te veel parameters tegelijk optimaliseren. Beperk je tot 3-5, en kies voor slimme hyperparameter optimalisatie, anders loopt het algoritme vast of wordt het te traag.

Gebruik altijd een seed voor reproduceerbaarheid, bijv. random.seed(42), zodat je resultaten kunt herhalen.

Een andere fout: vergeten om rekening te houden met kosten. Test altijd inclusief commissies en slippage, anders lijkt je strategie beter dan die is. Timing is belangrijk: plan je runs ’s nachts of tijdens rustige uren om je computer niet te belasten.

Voor risicomanagement: stel een maximum drawdown in op 10-15% en stop de bot als die wordt bereikt. Gebruik tools zoals QuantConnect of Backtrader voor extra ondersteuning, maar begin simpel met je eigen Python-code.

Onthoud: een genetisch algoritme is een hulpmiddel, geen garantie. Combineer het met je eigen inzicht. Als je vastloopt, vraag hulp op forums zoals Reddit’s r/algotrading of Python-groepen op Discord.

Verificatie-checklist

  • Heb je een werkende Python-omgeving met de juiste libraries (DEAP, PyGAD, pandas, backtrader)?
  • Zijn je parameters gedefinieerd met specifieke bereiken (bijv. MA 5-20 en 20-100)?
  • Heb je de fitnessfunctie getest op een baseline-strategie (minimaal 10 minuten werk)?
  • Is de populatiegrootte 50-100 en lopen de generaties 20-50 (totaal 1-2 uur)?
  • Heb je out-of-sample getest en resultaten binnen 50% van de training?
  • Zijn risicomanagement parameters ingesteld (max drawdown 10-15%, 1% per trade)?
  • Gebruik je een paper trading account voor live validatie?
  • Heb je transactiekosten (€0,01/trade) en slippage (0,1%) meegenomen?
  • Is de bot geïmplementeerd met stop-loss en monitoring voor de eerste week?
  • Check of de resultaten reproduceerbaar zijn met een seed (bijv. 42)?

Als je alle punten kunt afvinken, ben je klaar om je genetisch algoritme in te zetten voor strategie-optimalisatie. Succes, en onthoud: trading draait om discipline, niet om snelle winst.

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 Machine Learning & AI in Trading
Ga naar overzicht →