Wat is 'Feature Engineering' voor financiële data?

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

Stel je voor: je hebt een prachtige trading bot geschreven in Python. Je hebt een broker API gekozen, je backtests draaien soepel en je risicomanagement lijkt waterdicht.

Maar de bot presteert in de live markt opeens veel slechter dan in je simulatie. Waarom?

Vaak ligt het antwoord niet in je algoritme, maar in de data die je het voedt. Feature engineering is het geheime wapen dat rauwe koersdata omtovert tot bruikbare signalen voor je bot.

Wat is feature engineering precies?

Feature engineering is simpelweg het creatieve proces van het bouwen van nieuwe, betekenisvolle variabelen (features) uit je bestaande data.

Je neemt ruwe prijzen, volume en misschien wat orderbook data, en je transformeert dit tot iets slimmers. Denk aan een simpel gemiddelde van de afgelopen 50 candles, of de verandering in volume ten opzichte van gisteren.

Het is de kunst om de markt te vragen: "Wat is er echt aan de hand?" Waarom doe je dit? Omdat een standaard prijskaars niet veel vertelt. Is een stijging van €100 op Apple aandelen veel?

Dat hangt ervan af. Was het in 1 minuut of in 3 uur?

Was het volume hoog of laag? Machine learning modellen, zoals die in je trading bot, kunnen deze context niet vanzelf zien. Zij hebben heldere, gestandaardiseerde getallen nodig om patronen te herkennen.

Features zijn de vertaalslag tussen de chaotische markt en je strakke Python code.

Zonder goede features is je model blind. Stel je voor dat je werkt met een API van een broker zoals Interactive Brokers of een crypto exchange als Binance.

Je haalt rauwe tick-data op. Zonder engineering is dit een onoverzichtelijke stroom van getallen.

Door features toe te voegen, creëer je structuur. Je maakt de data verteerbaar voor je backtesting engine en uiteindelijk voor je live bot.

Waarom het cruciaal is voor je trading bots

Een trading bot is slechts zo goed als de data die hij krijgt.

Als je bot alleen de huidige prijs ziet, is het net alsof je door een sleutergat naar de wereld kijkt. Je ziet maar een heel klein stukje.

Feature engineering opent de deur en laat het hele landschap zien. Het zorgt ervoor dat je bot beter kan generaliseren en niet alleen maar overfit op historische ruis. Stel je voor dat je een mean-reversion strategie bouwt op EUR/USD. Je bot koopt laag en verkoopt hoog.

In je backtest op MetaTrader of via een Python library als Backtrader ziet dit er perfect uit.

Maar in de live markt faalt het. Waarom? Omdat je geen rekening hield met volatiliteit. Door een feature toe te voegen, zoals de Average True Range (ATR) over 14 periodes, leer je bot verschil te zien tussen een rustige markt en een stormachtige.

Je risicomanagement wordt hier direct beter van. Goede features verhogen de signaalkwaliteit aanzienlijk.

In plaats van ruis te verhandelen, focus je op echte bewegingen. Dit is vooral belangrijk bij algoritmische trading waar elke milliseconde telt.

Een goede feature kan het verschil betekenen tussen een winstgevende trade en een verlies. Het is de basis van elke sterke strategie. Denk ook aan de snelheid.

In Python, met bibliotheken als Pandas, bereken je complexe features vaak in één keer over een hele dataset. Dit maakt je backtesting proces efficiënter.

Je test niet alleen sneller, maar ook beter. Je ontdekt patronen die je met het blote oog nooit zou zien.

De kern: praktische voorbeelden en technieken

Laten we het concreet maken met voorbeelden die je direct in je Python code kunt toepassen. We werken met prijsdata: open, high, low, close, volume (OHLCV).

Technische indicatoren als features

Dit is de basis voor elke bot, of je nu handelt in aandelen, crypto of forex. De makkelijkste start is het berekenen van technische indicatoren. Deze zijn al bekend, maar je moet ze zelf maken als features.

  • Simple Moving Average (SMA): Neem een SMA van 20 perioden. Dit is een feature die de trend laat zien. Is de prijs boven de SMA? Dan is de feature 1, anders 0.
  • RSI (Relative Strength Index): Een klassieker. Bereken de RSI over 14 periodes. Een waarde boven 70 duidt op overbought, onder 30 op oversold. Dit is een getal tussen 0 en 100 voor je model.
  • MACD: Het verschil tussen twee exponentiële moving averages. Dit vangt momentum. Je kunt de MACD lijn, de signal line en het histogram als aparte features gebruiken.

Gebruik een library als TA-Lib of schrijf ze zelf met Pandas. Een concreet voorbeeld in Python met Pandas:

import pandas as pd
import talib

# Stel je hebt een DataFrame 'df' met een 'close' kolom
df['SMA_20'] = df['close'].rolling(window=20).mean()
df['RSI_14'] = talib.RSI(df['close'], timeperiod=14)
df['price_change'] = df['close'].pct_change()

Zie je hoe eenvoudig het is? Je neemt de 'close' prijs en transformeert het. Je bot krijgt nu niet alleen de prijs, maar ook de trend (SMA) en het momentum (RSI). Dit verbetert de accuraatheid van elke voorspelling aanzienlijk.

Statistische en prijs-georiënteerde features

Naast standaard indicatoren kun je technische indicatoren omzetten naar features voor je model. Dit is waar de echte creativiteit begint.

Je kijkt naar de relatie tussen prijs en tijd. Stel je voor dat je een bot bouwt voor een aandeel als ASML, dat rond de €700 noteert. Een simpele prijsstijging van €5 zegt weinig.

  • Volatiliteit: Gebruik de standaardafwijking van de sluitingprijzen over de laatste 10 candles. Dit laat zien hoe 'wisselvallig' de markt is op dit moment. Een hoge volatiliteit betekent meer risico, maar ook meer kansen.
  • Rolling Max/Min: Bereken de hoogste en laagste prijs van de afgelopen 50 candles. De feature is dan: (huidige prijs - min) / (max - min). Dit geeft je een genormaliseerde waarde tussen 0 en 1, perfect voor neural networks.
  • Volume-gegewogen prijs (VWAP): Als je orderbook data hebt, is VWAP een krachtige feature. Het laat zien waar de grote partijen hun posities hebben ingenomen. Je kunt de afwijking van de huidige prijs ten opzichte van de VWAP als feature gebruiken.

Maar als je de feature "prijs ten opzichte van de 52-weekse high" berekent, krijg je direct inzicht.

Is het aandeel op 95% van zijn hoogtepunt? Dat is een heel ander signaal dan op 50%.

Varianten en modellen met prijsindicaties

Niet elke feature is voor elke strategie geschikt. Een trendvolgende bot heeft andere features nodig dan een mean-reversion bot.

Trendvolgende strategie (bijv. op een index fonds)

Laten we kijken naar twee varianten en welke features je daarvoor kunt gebruiken, inclusief concrete prijsindicaties voor je backtests. Stel je bouwt een bot die de S&P 500 volgt via een ETF. Je doel is om de grote bewegingen te pakken. Je features moeten de trend bevestigen.

  • Feature 1: Prijs vs. SMA(200): De klassieker. Is de prijs boven de lange-termijn moving average? Dit is een binary feature (1 of 0).
  • Feature 2: ATR (Average True Range): Meet de volatiliteit. Gebruik dit voor je risicomanagement. Stel de stop-loss op 2x de ATR onder de instapprijs. Als de ATR €2 is, zet je stop op €4 afstand.
  • Feature 3: Directional Movement Index (DMI): Geeft aan of de trend sterk is. Een waarde boven 25 duidt op een sterke uptrend.

Backtesting deze features op een ETF als de SPY (prijs rond €450) laat zien dat je winstgevende trades plakt aan sterke trends en vermijdt in zijwaartse markten. Je risico per trade is beheersbaar door de ATR-feature.

Mean-reversion strategie (bijv. op een crypto coin)

Stel je handelt in Ethereum (ETH), dat vaak heen en weer schiet tussen support en weerstandsniveaus.

Je bot moet kopen als het te laag is en verkopen als het te hoog is. Stel ETH staat op €2.500. Je Bollinger Band ondersteuning ligt op €2.480.

  • Feature 1: Bollinger Bands: Gebruik de bovenste en onderste band als feature. De prijs is een feature, maar de afwijking van de middellijn is dat ook. Koop als de prijs de onderste band raakt.
  • Feature 2: RSI (lage periode): Gebruik een RSI van 9 periodes in plaats van 14. Dit is gevoeliger voor snelle schommelingen in crypto. Een RSI onder 30 is een koopsignaal.
  • Feature 3: Volume spike: Bereken het gemiddelde volume van de afgelopen 20 candles. Als het huidige volume 2x zo hoog is, is dat een sterke confirmatie van een reversal.

Je RSI is 28. Je volume-feature is 1.8x het gemiddelde.

Dit is een sterke set features voor je bot om een long positie te openen. Je sluit de trade zodra de prijs de middellijn van de Bollinger Bands raakt, rond €2.550.

Praktische tips voor je eigen project

Begin klein. Voorkom de vloek van dimensionaliteit door niet meteen 50 features te bouwen.

Start met 3 tot 5 sterke features. Gebruik Pandas en TA-Lib in Python om inzicht te krijgen in feature belang.

Deze combinatie is krachtig en gratis. Je hebt geen dure software nodig om professionele features te berekenen. Voorkom data leakage.

Dit is een veelgemaakte fout. Bereken je features alleen met informatie die op dat moment beschikbaar was.

Gebruik bijvoorbeeld niet de 'close' prijs van morgen om vandaag een signaal te geven. In Python betekent dit: gebruik .shift(1) om te zorgen dat een feature altijd één stap terugkijkt. Test je features in een backtesting omgeving. Gebruik een library als Backtrader of Zipline.

Koppel je features aan je broker API (bijv. van Bitvavo of DEGIRO) om ze live te testen.

Let op de transactiekosten. Een feature die €5 winst oplevert, maar €6 aan kosten kost, is waardeloos. Normaliseer je features voor machine learning modellen.

Als je prijzen van €10 en volumes van 1.000.000 hebt, schaal ze dan naar een bereik van 0 tot 1 of -1 tot 1. Dit helpt je model om patronen sneller te leren.

Gebruik hiervoor de MinMaxScaler uit scikit-learn. Denk aan risicomanagement. Gebruik features niet alleen voor entries, maar ook voor position sizing.

Als de volatiliteit (ATR) hoog is, handel dan met een kleinere positie. Als de volatiliteit laag is, kun je meer risico nemen.

Dit houdt je bot stabiel op de lange termijn. Feature engineering is een doorlopend proces.

De markt verandert, en je features moeten dat ook doen. Blijf experimenteren, blijf testen en vooral: blijf leren van je data.

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 →