Een RSI-gebaseerde Mean Reversion strategie coderen
Stel je voor: je zit achter je scherm, de markt beweegt als een wilde achtbaan, en jij wilt gewoon een stabiele strategie die werkt zonder dat je elke seconde hoeft te kijken.
Een RSI-gebaseerde Mean Reversion strategie is precies dat. Het is een manier om te profiteren van prijzen die even te ver zijn doorgeschoten en weer terugkeren naar hun gemiddelde.
In deze gids ga je leren hoe je deze strategie zelf codeert in Python, van backtest tot live trading via een broker API. We gaan niet praten over vage theorie, we gaan direct aan de slag met concrete code, prijzen en tools die je nu kunt gebruiken.
Wat is een RSI-gebaseerde Mean Reversion strategie?
Een RSI-gebaseerde Mean Reversion strategie draait om twee simpele ideeën: de Relative Strength Index (RSI) meet hoe sterk een prijsbeweging is, en Mean Reversion gaat ervan uit dat prijzen na een extreme beweging terugkeren naar hun gemiddelde. Je gebruikt de RSI om te zien of een aandeel of crypto te ver is doorgeschoten.
Als de RSI laag is (bijvoorbeeld onder 30), is het aandeel mogelijk oversold en koop je. Als de RSI hoog is (boven 70), is het overbought en verkoop je. Het doel is om winst te maken door deze tijdelijke onevenwichtigheden te exploiteren.
Waarom is dit belangrijk? Omdat de markt niet altijd efficiënt is.
Prijzen schieten soms door door paniek of euforie, en Mean Reversion strategieën grijpen die momenten aan. Je hoeft geen expert te zijn in technische analyse; de RSI geeft je een duidelijk signaal. Bovendien is het een strategie die goed werkt in zijwaartse markten, waar prijzen niet constant stijgen of dalen.
Met Python kun je dit automatiseren, zodat je niet emotioneel handelt maar systematisch. Stel je voor: je hebt een aandeel zoals ASML dat na een nieuwsbericht plotseling daalt naar €450.
De RSI schiet naar 25. Je koopt in, en een paar dagen later kruipt de prijs terug naar €480.
Dat is de essentie. Je gebruikt geen ingewikkelde formules, gewoon de RSI en een gemiddelde lijn. In code wordt dit een eenvoudig script dat je op een broker zoals Interactive Brokers of een crypto-exchange als Binance kunt draaien.
De kern van de strategie: werking en code
De werking is simpel: je berekent de RSI op basis van de sluitingsprijzen van een aandeel of crypto. Voor een Mean Reversion strategie kijk je naar een periode van 14 dagen, wat standaard is voor RSI.
Als de RSI onder een drempel zakt (bijvoorbeeld 30), geef je een koopsignaal. Als de RSI boven een drempel stijgt (bijvoorbeeld 70), geef je een verkoopsignaal. Je voegt een gemiddelde prijs toe, zoals een 20-daags voortschrijdend gemiddelde (SMA), om te bevestigen dat de prijs terugkeert.
Om dit te coderen in Python, begin je met bibliotheken zoals pandas voor data en numpy voor berekeningen.
Je haalt data op via een API van je broker, bijvoorbeeld via de Interactive Brokers API of de Binance API. Voor een backtest gebruik je historische data, zoals van Yahoo Finance of je broker. Hier is een eenvoudig voorbeeld van de RSI-berekening: Deze functie neemt een lijst van sluitingsprijzen en retourneert de RSI.
def rsi(prices, period=14): delta = prices.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
Voor Mean Reversion voeg je een SMA toe: sma = prices.rolling(window=20).mean(). Je koopt als RSI < 30 en de prijs onder de SMA ligt, en je verkoopt als RSI > 70 of de prijs boven de SMA stijgt.
Stel je voor: je backtest dit op een aandeel als Unilever, met een startkapitaal van €10.000. Je ziet dat je in een maand 5 trades doet, met een winst van €200 per trade na kosten. Integreer dit met een trading bot.
Gebruik een library als Backtrader of Zipline voor backtesting. Voor live trading koppel je de code aan je broker API.
Bijvoorbeeld, bij Interactive Brokers kost een transactie ongeveer €5 per trade, dus houd daar rekening mee. Je risicomanagement begint hier: zet een stop-loss op 2% onder je instapprijs, en een take-profit op 5% boven. Zo beperk je verliezen en grijp je winst zonder te gokken.
Varianten en prijsindicaties voor praktijk
Er zijn verschillende varianten van deze strategie, afhankelijk van de markt. Door het negeren van marktliquiditeit bij het kiezen van een strategie loop je onnodige risico's. Voor aandelen zoals AEX-fondsen (bijv.
ING of Philips) werk je met dagelijkse data en een RSI-periode van 14.
Voor crypto, zoals Bitcoin op Binance, kun je kortere perioden gebruiken, zoals 7, vanwege de volatiliteit. Een variant is de "RSI met bands": voeg Bollinger Bands toe om de gemiddelde prijs te verfijnen. Koop als RSI < 30 en de prijs de onderste band raakt, verkoop als RSI > 70 en de prijs de bovenste band raakt.
Prijsindicaties helpen om het concreet te maken. Stel je backtest een Mean Reversion strategie op Tesla-aandelen met een startkapitaal van €5.000.
In een zijwaartse markt over 3 maanden, met 10 trades, kun je een rendement van 8-12% behalen, afhankelijk van de broker kosten (bijv. €4 per trade bij DEGIRO). Voor crypto op Binance, met €1.000 startkapitaal, kun je in een volatiele week 5-10 trades doen, met winsten van €50-€100 per trade na fees van 0,1%. Maar onthoud: resultaten variëren; backtest altijd eerst. Een andere variant is de "dual RSI": gebruik twee RSI's, eentje voor korte termijn (7 dagen) en eentje voor lange termijn (21 dagen).
Koop alleen als beide onder 30 zijn, wat extra bevestiging geeft. Voor prijsindicaties: op een aandeel als Adyen, dat rond €600 schommelt, zou een RSI-drop naar 25 een koopmoment zijn, met een target van €620 (ongeveer 3% winst).
Test dit op een broker als Plus500, waar je CFD's kunt gebruiken voor hefboom, maar pas op voor risico's. Pas deze varianten aan op basis van risicomanagement. Gebruik een Kelly Criterion om je positiegrootte te berekenen: bijvoorbeeld, riskeer nooit meer dan 1% van je totale kapitaal per trade.
Voor een €10.000 account is dat €100 risico per trade. Combineer dit met een API van je broker voor automatische uitvoering, zodat je niet handmatig hoeft in te grijpen.
Risicomanagement en live implementatie
Risicomanagement is de sleutel tot succes. Wil je weten hoe een Mean Reversion strategie werkt? Deze aanpak presteert goed in stabiele markten, maar kan verliezen in sterke trends.
Stel een stop-loss in op 2-3% onder je instapprijs, en een trailing stop om winst te beschermen. Gebruik position sizing: verdeel je kapitaal in gelijke delen, bijvoorbeeld 5% per trade. Voor een account van €5.000 is dat €250 per positie. Monitor de RSI dagelijks; als de markt te extreem wordt, pauzeer de bot.
Voor live implementatie kies je een broker met een goede API. Interactive Brokers is ideaal voor aandelen, met API-toegang voor €0 (alleen commissies).
Voor crypto, Binance of Kraken, met lage fees van 0,1%. In Python gebruik je libraries als ib_insync voor Interactive Brokers of python-binance voor Binance.
from ib_insync import IB, Stock ib = IB() ib.connect('127.0.0.1', 7497, clientId=1) contract = Stock('AAPL', 'SMART', 'USD') prices = get_historical_prices(contract) # Haal data op via API rsi_value = rsi(prices) if rsi_value < 30: order = create_market_order('BUY', 100) # Koop 100 aandelen ib.placeOrder(contract, order)
Hier is een simpel script voor live trading: Test dit eerst met paper trading op je broker. Voor risicomanagement voeg je een maximum drawdown toe: als je account 10% daalt, stop de bot.
Gebruik een tool als QuantConnect voor geavanceerde backtesting met risico-analyse. Onthoud: geen strategie is perfect, dus diversifieer met andere bots of activa.
Praktische tips voor succes
Begin klein: test de strategie met €100 op een demo-account bij je broker, voordat je echt geld inzet. Kies een markt die je kent, zoals Nederlandse aandelen op Euronext, om vertrouwd te raken met de data.
Gebruik Python-tools zoals Jupyter Notebook voor interactief coderen; het is gratis en makkelijk. Pas de parameters aan na backtesting. Als RSI 30 te vaak signaal geeft, verhoog naar 25 voor minder trades.
Voor prijsindicaties, kijk naar historische data: bijvoorbeeld, de AEX-index heeft een gemiddelde volatiliteit van 1-2% per dag, dus stel je targets realistisch in.
Combineer met risicomanagement door een dagelijkse limiet van 3 trades in te stellen. Tot slot, blijf leren en ontdek de 5 kenmerken van een robuuste trading strategie. Sluit je aan bij communities op Reddit of Discord over algorithmic trading bots. Gebruik bronnen als de Python Finance-gids of broker-documentatie voor updates. Met deze RSI Mean Reversion strategie heb je een sterke basis—nu is het aan jou om te experimenteren en te verbeteren. Veel succes!
