Supervised Learning in finance: Koersrichting voorspellen met labels

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 · 7 min leestijd

Je zit achter je scherm, de markt beweegt en je wilt niet alleen meekijken, maar vooruitdenken. Supervised learning helpt je om koersrichting te voorspellen met labels, zodat je bot weet wat hij moet leren.

Je traint een model met historische data en een duidelijk doel: stijgt de prijs of daalt die?

Dat klinkt simpel, maar de kracht zit in de details. We bouwen dit stap voor stap op, gewoon in Python, met data van je broker en een backtest die je direct begrijpt.

Wat is supervised learning in trading?

Supervised learning betekent dat je een model leert met voorbeelden waarbij je het juiste antwoord al kent.

In trading is dat antwoord een label: de toekomstige koersrichting. Je geeft de model input (features) en het gewenste output (label), en het algoritme zoekt het verband. Denk aan features als prijs, volume, RSI of MACD, en een label als ‘stijgt 1% in de volgende 5 candles’.

Een praktisch label is een binaire keuze: 1 voor long, 0 voor short. Je kunt ook een drieluik maken: 0 voor zijwaarts, 1 voor short, 2 voor long.

Voor momentum-strategieën werkt een label als ‘+1% binnen 10 candles’ vaak beter dan een vaag ‘stijgt of daalt’.

Voor mean-reversion kies je een smaller doel, bijvoorbeeld ‘keert terug naar het voortschrijdend gemiddelde van 20 binnen 5 candles’. Het doel is simpel: de bot herkent patronen die samenhangen met toekomstige bewegingen. Je traint op historische data en test op ongeziene data. Zo voorkom je dat de bot alleen maar een herinnering leert, en geen echt inzicht. De kwaliteit van je labels bepaalt voor een groot deel het succes.

Waarom labels het hart van je model zijn

Goede labels zijn een afspiegeling van je strategie. Koop je op een dip en verkoop je bij een kleine winst? Dan is een label als ‘+0,5% binnen 3 candles’ logisch.

Handel je op een breakout? Dan past een label als ‘+2% binnen 10 candles’ beter.

Hoe specifieker je label, hoe duidelijker het model kan leren. Labels bepalen ook hoe je risico beheerst.

Een model dat +0,5% voorspelt, maar een stop van -1% heeft, moet een hoge hitrate hebben om winstgevend te zijn. Een model dat +2% voorspelt, mag een lagere hitrate hebben, maar moet betrouwbaar zijn. Je zet de label-waarde dus recht tegenover je risico-rendementsverhouding.

Met Python maak je labels snel reproduceerbaar. Gebruik Pandas om candles te laden en rollende berekeningen toe te passen.

Voorbeeld: df['label'] = (df['close'].shift(-5) > df['close'] * 1.01).astype(int) geeft een label voor +1% in 5 candles. Je kunt ook een trailing stop meenemen en pas een label geven als die stop niet geraakt wordt. Zo voorkom je dat het model leert van onhaalbare doelen.

Hoe je een model bouwt en traint: van data naar signaal

Stap 1: haal schone data via je broker-API. Bijvoorbeeld bij Interactive Brokers of LMAX haal je 1-minuut of 5-minuut candles voor een instrument zoals de DAX of EUR/USD.

Zorg dat je tijdzone en UTC correct zitten, en dat je eventuele splitsingen en dividends meeneemt. Sla de data lokaal op in Parquet voor snel inladen. Stap 2: maak features die logisch zijn voor je strategie.

Voor momentum: RSI(14), MACD(12,26,9), momentum(5). Voor mean-reversion: z-score versus voortschrijdend gemiddelde(20), Bollinger Band-width, volume-verhouding versus gemiddelde.

Voor breakouts: ATR(14) als volatiliteit-filter, hoogste prijs van de afgelopen 20 candles, en een volume-spike. Stap 3: definieer je label en splits de data. Gebruik een tijdgestuurde split: train op januari–september, test op oktober–december. Geen shufflen, want de tijd is heilig.

Train een model zoals Logistic Regression, Random Forest of LightGBM. Voor complexere patronen kun je onderzoeken of transfer learning werkt voor financiële data; LightGBM blijft echter snel en werkt uitstekend met tabulaire data.

Zet een pipeline op in Python en gebruik class weights als je labels onbalans hebben. Stap 4: evalueer met realistische metrics. Accuracy zegt weinig; kijk naar precision, recall en F1 voor long en short apart.

Check de ROC-AUC en de calibration curve: voorspelt het model ook de kans realistisch?

Doe een walk-forward test: train op een venster, test op het volgende venster, schuif op, herhaal. Zo check je of het model robuust blijft onder nieuwe marktcondities. Stap 5: koppel het model aan je trading bot.

Je bot haalt realtime features via de API, roept het model aan en krijgt een signaal en een kans. Als de kans boven een drempel komt en de spread acceptabel is, wordt een order gestuurd. Zet een eenvoudige risico-manager ertussen: positiegrootte op basis van ATR, stop op een veelvoud van ATR, en een maximum dagverlies.

Modellen en label-strategieën met prijsindicaties

Logistic Regression is een goede start. Het is transparant en snel. Een typische setup: features RSI(14), MACD, ATR(14), en een label ‘+1% binnen 5 candles’.

Verwacht een hitrate van 55–60% en een gemiddelde winst van 0,8–1,2% per trade bij een stop van 1%.

De winst hangt af van de spread en slippage; reken voor een DAX-future met 1 tick spread en 0,5 tick slippage. Random Forest voegt non-lineariteit toe en is robuust.

Gebruik 200–500 bomen, max depth 6–8. Een label ‘+2% binnen 10 candles’ kan een betere verhouding geven tussen hitrate en risico. Verwacht een hitrate van 45–55% en een gemiddelde winst van 1,5–2,5% per trade.

Zorg dat je out-of-bag scores checkt en niet alleen de training score.

Gradient Boosting (LightGBM) is vaak de winnaar voor tabulaire data. Train met early stopping en een validation split. Gebruik een label ‘+0,5% binnen 3 candles’ voor scalping, maar pas op voor kosten. Voor een EUR/USD scalping-bot met 0,2 pip spread en 0,1 pip slippage, kan een hitrate van 60–65% nodig zijn om break-even te draaien.

Zet de learning rate laag (0,05–0,1) en gebruik max depth 4–6. Een variant is multi-class: 0 zijwaarts, 1 short, 2 long.

Handig als je zowel momentum als mean-reversion wilt herkennen. Een andere aanpak is regressie, of je kunt deep learning en neurale netwerken inzetten om de absolute prijs of het rendement over N candles te voorspellen.

Gebruik dat dan als signaalsterkte, en zet een drempel op bijvoorbeeld 0,8% verwacht rendement voor entry. Vergeet niet dat regressie gevoeliger is voor fouten in volatiele markten; een stop is essentieel.

Praktische tips voor live handel en risicomanagement

  • Gebruik een broker met een stabiele API en lage kosten, zoals Interactive Brokers of LMAX. Test eerst met een demo-account.
  • Zet je backtest realistisch op: neem spread, slippage en ordergrootte mee. Reken met minimaal 0,1–0,2% kosten per trade.
  • Beperk de positiegrootte: riskeer max 1% per trade op basis van ATR. Voor een ATR van 50 punten op de DAX is een stop van 50 punten logisch.
  • Gebruik een daily loss limit: stop na een verlies van 2–3% op een dag. Dit beschermt tegen model-fouten en extreme moves.
  • Monitor de kalibratie van je model: als de voorspelde kans 60% is, moet die ook ongeveer 60% van de tijd uitkomen. Zo niet, retrain of pas de drempel aan.
  • Houd een logboek bij van elke trade: signaal, model-kans, entry, stop, exit, en marktconditie. Leer hieruit en verbeter je labels.
  • Start klein: een enkele markt, een enkele label-strategie. Breid pas uit als de live resultaten stabiel zijn.
Denk in kansen, niet in zekerheden. Een model is een hulpmiddel, geen glazen bol.

Als je begint, pak een eenvoudig script: laad 6 maanden 5-minuut candles, maak drie features, en label op +1% in 5 candles.

Train een logistic regression en test met walk-forward. Zie je een positief expectatie? Voeg dan een stop toe en draai live met 1 contract of een kleine positie. Pas de label-waarde aan als de markt sneller of langzamer beweegt.

Zo blijf je leren en verbeter je stap voor stap. Met supervised learning en goede labels bouw je een bot die begrijpt wat je zoekt.

Je bent niet aan het gokken; je traint een model op een duidelijke vraag.

De combinatie van Python, backtesting, broker-API en risicomanagement geeft je een praktisch pad naar een werkende strategie. Begin klein, test eerlijk, en zorg dat elke trade logisch past bij je label en je risico.

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 →