5 vragen voordat je een nieuwe strategie gaat coderen
Je staat te trappelen. Je hebt een briljant idee voor een nieuwe trading strategie, je laptop ligt open en je VS Code staat te popelen.
Je wilt beginnen met coderen. Wacht. Echt even wachten. Die ene stap overslaan is de grootste reden waarom traders maanden coderen voor een strategie die op papier al faalt. Voordat er ook maar één regel Python-code geschreven wordt, moet je het fundament leggen.
Dit is het moment voor een kritisch, eerlijk gesprek met jezelf. Want coderen is makkelijk, een strategie die consistent geld verdient, dat is de echte uitdaging.
1. Wat is het probleem dat ik écht oplos?
De meeste strategieën beginnen met een vage notie als "ik wil de trend volgen" of "ik wil mean reversion traden". Dat is geen strategie, dat is een genre. Je eerste vraag moet specifiek zijn: welk inefficiëntiepatroon in de markt probeer ik te vangen?
Denk aan een daghandelaar die een specifieke opening range breakout probeert te exploiteren op de AEX, of een swingtrader die de paniekverkopen tijdens een FOMC-persconferentie wil opvangen.
Formuleer het als een hypothese. "Ik geloof dat aandelen die met meer dan 3% stijgen tijdens de eerste 30 minuten van de US-market open, gemiddeld genomen de volgende 2 uur een correctie van ten minste 0.5% laten zien." Dat is een concrete, testbare stelling.
Het gaat niet om "wat vind ik leuk", maar om "welke marktbeweging is voorspelbaar genoeg om te automatiseren?". Als je dit niet scherp hebt, ga je een bot bouwen die willekeurig op en neer beweegt en je geld verliest door transactiekosten. Vraag je af: is dit idee gebaseerd op een logisch economisch argument of gewoon op wat grafieken die er toevallig goed uitzien?
Een strategie die gebaseerd is op "deze indicator lijkt altijd te werken" is vaak een teken van confirmation bias.
Je zoekt naar bevestiging, niet naar een robuust idee. De beste strategieën lossen een specifiek probleem op, zoals het snel inspelen op liquiditeitsgaten op decentrale beurzen of het filteren van fake-outs bij belangrijke support niveaus.
2. Is mijn data wel zo betrouwbaar als ik denk?
Zonder goede data ben je gewoon aan het gokken met extra stappen.
De verleiding is groot om direct te beginnen met een API van je broker, maar dat is vaak een vergissing. Je hebt een solide dataset nodig om te backtesten. Denk aan tickdata van een partij als TrueFX of Dukascopy voor forex, of gedetailleerde historische data via de API van je broker, bijvoorbeeld Interactive Brokers of Alpaca.
Je moet je afvragen: bevat mijn data genoeg detail? Als je een strategie voor de 1-minuut grafiek wilt bouwen, heb je data nodig die op z'n minst op de minuut is gebaseerd, maar voor snelle scalping-strategieën is tickdata essentieel.
Kijk naar de kwaliteit. Zitten er gaten in de data?
Zijn de prijzen gecorrigeerd voor dividendsplits? Een veelgemaakte fout is het testen met OHLC (Open-High-Low-Close) data zonder de spread mee te rekenen. Dat geeft een te rooskleurig beeld. Denk ook aan de API-beperkingen van je broker.
Een broker zoals Bitvavo of Bybit heeft bepaalde rate limits. Je strategie kan perfect werken in een backtest met oneindige data, maar in de praktijk faalt omdat je API te vaak moet aanroepen en je geblokkeerd wordt.
Test je data op "look-ahead bias". Weet je zeker dat je sluitingsprijzen van vandaag niet per ongeluk gebruikt om een beslissing voor morgen te nemen? Dit is de meest subtiele en dodelijke valkuil in algoritmische trading.
3. Hoe ziet de wereld van mijn strategie eruit?
Je strategie bestaat in een vacuum, maar handelt in de echte wereld. Je moet de "spelregels" van je markt definiëren.
Wat is je instrument? Handel je in BTC/USD op Binance of in de future op BitMEX?
De prijsactie en liquiditeit kunnen enorm verschillen. Wat is je tijdsframe? Is het een HFT-strategie die in milliseconden moet reageren of een lange-termijn strategie die alleen aan het einde van de dag kijkt?
Hier definieer je de kernlogica. Wat is de trigger voor een entry?
"Als de 50-EMA de 200-EMA kruist én het volume is 150% van het gemiddelde van de afgelopen 20 candles." Dat is een duidelijke regel. En nog belangrijker: wat is je exit? Zowel voor winstneming (take-profit) als voor verliesbeperking (stop-loss). Pas op voor "optimism bias" bij het bepalen van je parameters.
Je bent geneigd te denken: "Ik zet mijn stop-loss op 2% en mijn take-profit op 5%." Maar waarom precies?
Is dat getal gebaseerd op de volatiliteit van het instrument of gewoon een mooi getal? Een betere aanpak is om te kijken naar de ATR (Average True Range) van je instrument. Een strategie op een volatiel aandeel als Tesla heeft een veel bredere stop nodig dan een strategie op de S&P 500 ETF.
4. Hoe ga ik mijn bot niet de afgrond in sturen? (Risicomanagement)
Dit is het antwoord op de vraag: "Hoe overleeft mijn strategie een slechte dag?" Want die komen er. Zeker weten. Veel beginners coderen een strategie die perfect is in een opwaartse markt, maar direct faalt bij de eerste correctie. Je risicomanagement is het hart van je bot, niet je entry-signaal. Wil je verder gaan dan simpele regels? Leer dan hoe je een voorspellende bot bouwt om je resultaten te verbeteren.
Je moet nadenken over position sizing. Gebruik je een vast bedrag per trade, bijvoorbeeld €500,- per positie?
Of bereken je het op basis van een percentage van je totale portfolio, zoals de klassieke 1% regel? En wat gebeurt er als je 5 trades achter elkaar verliest?
Ga je dan door met hetzelfde bedrag of schaal je terug? Dit heet "volatility targeting". Als de markt extreem volatiel is, wil je minder risico nemen, niet meer.
Denk na over externe risico's. Wat als je internetverbinding wegvalt tijdens een trade?
Heb je een "heartbeat" mechanisme ingebouwd dat je positie sluit als de verbinding met de exchange te lang weg is? Wat als de API van je broker down is? Wat als er een flash crash gebeurt? Een goede bot heeft kill-switches.
Handmatige stopknoppen die je direct kunt gebruiken via een dashboard. Je wilt niet in paniek je laptop dichtklappen terwijl je positie door je stop-loss heen raakt.
5. Weet ik hoe ik mijn code ga testen?
Je hebt een idee, data, regels en risicomanagement. Nu komt het echte werk: het testen.
Voordat je je bot live zet, moet hij duizenden uren doorbrengen in de simulator.
Dit is de wereld van backtesting en paper trading. In Python gebruiken we hiervoor bibliotheken zoals Backtrader, Lean (van QuantConnect) of een eigen simpele loop. Om te bepalen of je momentum trading strategieën succesvol zijn, moet een backtest realistisch zijn.
Reken altijd met transactiekosten. Een strategie die €0,05 winst maakt per trade is waardeloos als je €0,01 transactiekosten per trade hebt. Reken met de werkelijke "slippage". Als je een market order plaatst, is de werkelijke uitvoeringsprijs vaak net iets slechter dan de prijs die je zag.
Zonder deze kosten lijk je een winnaar, maar in de realiteit verlies je geld.
En na de backtest? Paper trading. Dit is een live-simulatie met "nepgeld" op een live-omgeving. Dit is cruciaal.
Je backtest kan perfect zijn, maar je Python-code kan een bug hebben die ervoor zorgt dat hij in de live-markt verkeerde orders plaatst. Of je API-verbinding is trager dan je dacht. Begin met een bedrag dat je kunt missen.
Zet je bot niet direct in met €10.000,-. Start met €100,- en kijk wat er gebeurt.
Pas als je bot stabiel draait, schaal je langzaam op.
