Wat is de RSI (Relative Strength Index) en hoe gebruik je het in een bot?

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

Hey, leuk dat je aan de slag wilt met de RSI in je trading bot. De Relative Strength Index is een van die klassiekers die je in een paar minuten begrijpt, maar eindeloos kunt finetunen voor algoritmische handel.

We gaan dit samen opbouwen, van de basis tot een werkende bot, met concrete getallen en stappen die je vandaag nog kunt testen. Pak je Python-omgeving erbij, want we gaan direct aan de slag met backtesting en risicomanagement.

Wat je nodig hebt voordat je start

Voordat we code schrijven, zorgen we dat je setup stabiel is. Je hebt Python 3.9 of nieuwer nodig, liefst via een virtual environment zoals venv of Conda.

Installeer de volgende libraries: pandas, numpy, matplotlib, en voor backtesting bijvoorbeeld backtesting.py (vanaf €0 voor de open-source versie) of een broker-API zoals die van Interactive Brokers (IBKR) of Alpaca voor live trading. Voor data haal je gratis historische koersen via Yahoo Finance (yfinance) of betaal je €20-€50 per maand voor kwalitatieve data van Quandl of Polygon.io.

Je broker moet API-toegang bieden; bij IBKR is dat via TWS API (gratis) en bij Alpaca krijg je een gratis paper-trading account. Zorg dat je API-keys veilig opslaat, bijvoorbeeld via environment variables. Voor risicomanagement leg je een basis in: een max risico per trade van 1-2% van je totale kapitaal, en een stop-loss van 1-3% afhankelijk van je timeframe. Reken uit dat je bot nooit meer dan €50-€100 riskeert per trade bij een account van €5.000.

Tot slot, een computer of VPS (vanaf €5/maand bij DigitalOcean of AWS) om je bot 24/7 te laten draaien.

Veelgemaakte fouten hier: vergeten om een virtual environment aan te maken (leidt tot library-conflicten), of API-keys direct in de code zetten (veiligheidsrisico). Test je setup met een simpele print-actie voordat je verdergaat.

Stap 1: Begrijp de RSI-basis en je timeframe

De RSI meet hoe sterk een koersbeweging is, op een schaal van 0 tot 100.

Een waarde boven 70 betekent dat de markt mogelijk overbought is (te veel koopdruk), onder 30 is oversold (te veel verkoopdruk). Voor algoritmische trading kies je een periode van 14 candles als standaard, maar pas dat aan op je timeframe: voor scalping op 1-minuut candles gebruik je 9-14 perioden, voor daghandel 14-21. Stel je voor: je bot haalt data van EUR/USD via de API van je broker.

Op een 5-minuut chart berekent de RSI elke candle opnieuw. Een waarde van 75 op een uptrend kan een verkoopsignaal zijn, maar combineer het met volume of trendlijnen voor meer zekerheid.

Voor risicomanagement zet je een trailing stop van 1% in, zodat winst niet weglekt.

Veelgemaakte fout: RSI blind gebruiken zonder rekening te houden met de trend. In een sterke uptrend blijft RSI lang boven 70, dus verkoop niet te snel. Test dit met een historische dataset van de afgelopen 2 jaar om te zien hoe vaak RSI je verkeerd leidt.

Stap 2: Installeer en configureer je Python-omgeving

  1. Open je terminal en maak een nieuwe map aan: mkdir rsi_bot && cd rsi_bot.
  2. Activeer een virtual environment: python -m venv venv en activeer het (Windows: venv\Scripts\activate, Mac/Linux: source venv/bin/activate).
  3. Installeer libraries: pip install pandas numpy matplotlib yfinance backtesting.py. Voor live trading voeg je pip install ib_insync toe voor IBKR of pip install alpaca-trade-api voor Alpaca.
  4. Test je installatie met een simpel script: importeer pandas en print een dataframe van yfinance-data voor AAPL van de afgelopen maand.

Deze stap duurt 10-15 minuten. Als je een fout krijgt over versies, downgrade pandas naar 1.5.x voor compatibiliteit met backtesting.py.

Veelgemaakte fout: vergeten te updaten, waardoor je bot crasht tijdens een run.

Zet je API-keys in een .env-bestand en laad ze met python-dotenv.

Stap 3: Bereken de RSI in Python

De RSI-formule is simpel: RSI = 100 - (100 / (1 + RS)), waarbij RS de gemiddelde winst gedeeld door gemiddelde verlies is over 14 perioden.

  1. Maak een bestand rsi_calculator.py en importeer pandas.
  2. Schrijf de functie: def calculate_rsi(data, period=14): delta = data['Close'].diff(); gain = (delta.where(delta > 0, 0)).rolling(window=period).mean(); loss = (-delta.where(delta < 0, 0)).rolling(window=period).mean(); rs = gain / loss; rsi = 100 - (100 / (1 + rs)); return rsi.
  3. Test met data: import yfinance as yf; data = yf.download('EURUSD=X', period='1mo'); data['RSI'] = calculate_rsi(data). Print de laatste 5 RSI-waarden – verwacht waarden tussen 30 en 70 voor een stabiele markt.
  4. Visualiseer: gebruik matplotlib om een plot te maken van Close en RSI (bijvoorbeeld €1.08-1.12 voor EUR/USD).

We schrijven een functie die dit berekent op een DataFrame van koersen. Dit duurt 20-30 minuten. Pas de periode aan: voor snellere signalen op 1-minuut data, zet period=9. Veelgemaakte fout: vergeten om NaN-waarden te handle aan het begin (eerste 14 perioden zijn leeg), wat je bot kan laten crashen. Vul ze met 50 als neutrale waarde.

Stap 4: Bouw een simpele trading bot met RSI-logica

De bot koopt als RSI onder 30 komt (oversold) en verkoopt als RSI boven 70 stijgt (overbought), met een stop-loss van 1% en take-profit van 2%. Combineer dit eventueel met de Opening Range Breakout strategie voor betere resultaten.

  1. Importeer backtesting en je RSI-functie: from backtesting import Backtest, Strategy.
  2. Maak een klasse RSIStrategy(Strategy): definieer init met period=14, oversold=30, overbought=70. In de next-functie: als RSI[-1] < oversold en je geen long positie hebt, koop met 1% risico (bijv. 100 aandelen bij €50 per stuk op een €5k account).
  3. Voeg stop-loss en take-profit toe: self.position.close() als RSI[-1] > overbought, en een trailing stop van 1% op basis van de hoogste koers sinds entry.
  4. Run de backtest: bt = Backtest(data, RSIStrategy, cash=5000, commission=.002) (0.2% commissie bij brokers zoals Interactive Brokers). Bekijk resultaten: winstpercentage, max drawdown onder 10%.

Gebruik backtesting.py voor een snelle test zonder live risico. Test op 1 jaar historische data van EUR/USD of AAPL. Duur: 30-45 minuten.

Veelgemaakte fout: geen rekening houden met transactiekosten (verhoog tot 0.5% voor realistische resultaten), of teveel trades (beperk tot max 5 per dag om risico te spreiden). Voor risicomanagement voeg je een Kelly-criterium toe: bereken je positiegrootte als (winrate * avg_win - (1-winrate) * avg_loss) / avg_win, en beperk tot 2% van je kapitaal. Wil je verder gaan? Leer hoe je een voorspellende bot bouwt met libraries zoals pyportfolioopt voor geavanceerde optimalisatie (vanaf €0 open-source).

Stap 5: Test, finetune en integreer met een broker-API

Na backtesting, finetune je parameters: varieer oversold van 25-35 en overbought van 65-75, en test op verschillende timeframes (1u, 4u, dag). Gebruik walk-forward optimalisatie: split je data in train (70%) en test (30%) sets om overfitting te voorkomen.

  1. Optimaliseer: loop over parameters met een grid-search, en kies die met de hoogste Sharpe-ratio (boven 1.5 is goed).
  2. Integreer met API: voor IBKR, gebruik ib = IB(); ib.connect('127.0.0.1', 7497) en plaats orders als RSI-signalen triggeren. Voor Alpaca: from alpaca_trade_api import REST; api = REST().
  3. Live test op paper account: zet je bot op een VPS, monitor 1 week lang. Stel een alert in voor grote verliezen (bijv. >5% op een dag).
  4. Risico-check: implementeer een kill-switch die de bot stopt als drawdown >10% van je account.

Duur: 1-2 uur voor finetuning, plus een week voor live monitoring. Kosten: €0-€20 voor data. Veelgemaakte fout: te snel live gaan zonder paper trading, wat tot echte verliezen leidt. Test altijd op meerdere markten (forex, aandelen) om robuustheid te checken.

Tip: Houd een trading journal bij in Notion of Excel – noteer elke trade, de RSI-waarde, en outcome. Dit helpt bij iteratieve verbetering.

Verificatie-checklist

  • Is je Python-omgeving stabiel? Test met een simpele data-download.
  • Berekent je RSI-functie correct? Controleer waarden op een bekende dataset (bijv. AAPL van 2023: RSI piekt rond 70-80 in uptrends).
  • Werkt de backtest zonder crashes? Minimale winst >0% en drawdown <15% op 1 jaar data.
  • Zijn risico-limieten ingesteld? Max 2% per trade, stop-loss actief, en API-keys veilig.
  • Heb je gefinetuned? Parameters getest op meerdere timeframes, Sharpe-ratio >1.2.
  • Live-readiness: Paper trading draait 3+ dagen zonder grote fouten, VPS is online.

Als je alles afvinkt, is je RSI-bot klaar voor actie. Blijf experimenteren met verschillende grid trading strategieën – de markt verandert, en je bot moet meegroeien. Succes!

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 Trading Strategieën & Logica
Ga naar overzicht →