Technische indicatoren optimaliseren met de Optuna library

Portret van Alex de Vries, Quantitatief Analist & Algo-Trading Expert
Alex de Vries
Quantitatief Analist & Algo-Trading Expert
Python Libraries voor Algoritmische Trading · 2026-02-15 · 3 min leestijd

Stel je voor: je hebt een handelsstrategie gebouwd in Python, je backtest draait soepel via de API van Interactive Brokers of Alpaca, en toch voelt het alsof je mist ziet. De parameters van je technische indicatoren zijn net niet scherp genoeg.

Je MACD crossover voelt lui, je RSI-triggers zijn te laat. Dat is precies waar Optuna het verschil maakt. Deze library helpt je om de exacte waarden van je indicatoren te vinden, zonder dagenlang handmatig te tunen.

Je geeft Optuna een doel, en het zoekt de beste combinaties voor je bot.

Sneller, slimmer en met minder frustratie.

Wat is Optuna en waarom gebruik je het voor trading bots?

Optuna is een open-source hyperparameter optimalisatie bibliotheek voor Python. In gewone taal: het is een slimme zoekmachine voor je algoritmische parameters.

Je geeft Optuna een doel, bijvoorbeeld de hoogste Sharpe ratio of het laagste drawdown, en het probeert duizenden combinaties uit. Denk aan de snelheid van een backtest bij een broker zoals Interactive Brokers of Alpaca, maar dan geautomatiseerd voor je indicatoren.

Waarom is dat belangrijk? Omdat de meeste technische indicatoren gevoelig zijn voor hun instellingen. Een RSI met een periode van 14 werkt voor de ene markt, maar faalt voor een andere. Optuna vindt de beste waarden voor jouw timeframe, broker en instrument.

Je bespaart tijd en vermindert het risico op overdrijven van je parameters.

Je bot wordt robuuster. Optuna werkt met drie kernconcepten: studie, suggestie en prunen. Een studie is je zoekopdracht.

Suggesties zijn mogelijke parameterwaarden. Prunen is het vroegtijdig afbreken van slechte runs.

Dat is handig bij backtests die veel tijd kosten. Je bot blijft sneller zonder kwaliteit te verliezen.

De kern: hoe Optuna technische indicatoren optimaliseert

Je begint met een functie die je strategie definieert. Die functie neemt een trial-object van Optuna en retourneert een score.

Bijvoorbeeld: de totale return na een backtest op 1 jaar data. Optuna probeert dan verschillende waarden voor je indicatoren. Voor een EMA crossover test het waarden tussen 10 en 200. Voor een RSI test het tussen 2 en 30.

Je kunt ook discrete stappen kiezen, zoals 5, 10, 15, 20. Een concreet voorbeeld voor een Python bot:

  • EMA_fast: suggestie tussen 10 en 50, stap 5
  • EMA_slow: suggestie tussen 50 en 200, stap 10
  • RSI_period: suggestie tussen 10 en 30, stap 2
  • RSI_overbought: suggestie tussen 60 en 80, stap 5

Optuna gebruikt onder de motorkap Tree-structured Parzen Estimators (TPE). Dat is een Bayesian aanpak die slim leert uit eerdere runs.

Je hoeft dat niet zelf te implementeren. Je roept gewoon study.optimize aan, en Optuna doet de rest. Je kunt ook meerdere cores gebruiken voor parallelle zoektochten, handig bij grotere backtests, of wiskundige optimalisatie-algoritmen inzetten voor je strategie.

Voor risicomanagement kun je Optuna ook scoren op drawdown en winstfactor. Je bouwt een functie die de max drawdown berekent via de equity curve van je broker API.

Dan kiest Optuna parameters die niet alleen winstgevend zijn, maar ook stabiel. Voor geavanceerde strategieën kun je zelfs complexe derivaten en opties prijzen met QuantLib, wat extreme pieken en dalen in je equity voorkomt.

Praktijk: integratie met backtesting en broker API’s

Je sluit Optuna aan op je backtesting pipeline. Volg onze gids voor hyperparameter tuning en gebruik library’s zoals Backtrader, VectorBT of je eigen pandas-loop.

Optuna stuurt de parameters aan en haalt de resultaten op. Voor live trading stuur je de beste parameters naar je broker API. Bij Interactive Brokers via ib_insync, bij Alpaca via hun Python SDK.

Je kunt ook een aparte configuratiebestand genereren dat je bot inlaadt. Een concrete workflow:

  1. Verzamel historische data via je broker API, bijvoorbeeld 1 jaar 1-uur bars voor EUR/USD.
  2. Bouw een backtestfunctie die parameters accepteert en een
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 Python Libraries voor Algoritmische Trading
Ga naar overzicht →