Ichimoku A45Casestudy · Transtorm

Casestudy · automatisering van een beursstrategie

Een handelsstrategie automatiseren: twintig jaar backtest en een stap naar productie

« Mijn methode werkt als ik ze volg. Het probleem ben ik. Ik wil dat de beslissing uit een programma komt, niet uit mijn gemoedstoestand van de avond. »

Een strategie is alleen iets waard als ze tot op de letter wordt gevolgd, en daar struikelt de mens. Een trader vertrouwde ons toe hoe hij zijn aandelen kiest, instapt en uitstapt. Wij hebben dat vertaald naar regels, wij hebben het over twintig jaar gesimuleerd en daarna geautomatiseerd. Sindsdien krijgt hij elke avond een e-mail die hem zegt te kopen, te verkopen of niets te doen.

Door Mamisoa Andriantafika, oprichter van Transtorm, workflowautomatisering en software-engineering

Praten over uw projectDe casestudy lezen

Waarom automatiseren

Op de beurs is het moeilijke zelden het vinden van een goede methode. Het moeilijke is ze feilloos toepassen, elke dag, ook op de dagen waarop de markt uitnodigt om iets anders te doen. Automatisering lost precies dat probleem op: het programma voert de strategie tot op de letter uit, zonder emotie.

Onze klant heeft een methode. Hij kent ze goed en is ervan overtuigd dat ze werkt als hij ze volgt. Blijven over: de avond van een daling waarop hij te vroeg verkoopt en de avond van een stijging waarop hij te lang aanhoudt; opgeteld kosten die afwijkingen uiteindelijk meer dan het rendement van de methode zelf.

Hij vroeg ons dus om de toepassing van zijn methode te automatiseren. Wij leveren hem elke avond een e-mail, na sluiting van New York. Die draagt één verdict en niets anders — kopen, verkopen of niets doen — en de orders die hij vóór de opening van de volgende dag moet programmeren.

Het werk verliep in drie fasen.

Kadering: de methode op papier

Wij hebben de methode eerst vertaald naar regels die een programma zonder interpretatie toepast. „Ik koop als het aandeel goed gericht staat” laat zich niet coderen: je moet zeggen op welke koers, op welk moment van de sessie, en wat er gebeurt wanneer twee voorwaarden elkaar tegenspreken.

Drie vragen structureerden het gesprek. Waarop berust de keuze van de aandelen? Bij welk signaal wordt ingestapt en uitgestapt? Welk deel van het kapitaal krijgt elke positie? De twee volgende secties geven het resultaat van die kadering, zoals de klant ze heeft gevalideerd. De exacte drempels blijven zijn eigendom en worden hier niet gepubliceerd.

De selectie van de aandelen

Twee keer per jaar, in mei en in november, neemt een scan een volledige maand koersen door. Het universum omvat de honderd aandelen van de Nasdaq-100 en de energieaandelen van de S&P 500, ofwel ongeveer 120 kandidaten. Het gekozen mandje komt in portefeuille op de eerste beursdag van de daaropvolgende maand.

Elke kandidaat doorloopt vier filters, in deze volgorde:

  1. Liquiditeit. De koers ligt boven 1 USD en het aandeel verhandelt elke dag een aanzienlijk volume. Je moet kunnen in- en uitstappen zonder de markt te verplaatsen.
  2. Onderliggende trend. Het aandeel bevindt zich in wat Stan Weinstein stadium 2 noemt, de ingezette stijgingsfase die volgt op de accumulatie. Wij kopen geen dip, wij kopen een trend die al aan de gang is.
  3. Relatieve sterkte. Het aandeel doet het beter dan de Amerikaanse markt, en niet alleen beter dan nul: een stijging van 5 % betekent niets als de index er 8 heeft gemaakt.
  4. Relatief volume. De handel neemt toe ten opzichte van zijn gebruikelijke regime, wat aantoont dat er kapitaal instroomt in het aandeel.

De scan rangschikt vervolgens de aandelen die de vier filters doorstaan op het gemiddelde van hun rang voor relatieve sterkte en hun rang voor volume; de eerste vijf vormen het mandje. Bij de volgende scan behouden de aandelen die hun trend nog aanhouden hun open positie en worden alleen de overige vervangen. Het hele mandje telkens vernieuwen zou kosten met zich meebrengen en zou de posities de tijd ontnemen die ze nodig hebben om te renderen.

De koop- en verkoopregels

Elk aandeel van het mandje krijgt een vijfde van het kapitaal. Slechts twee indicatoren sturen de in- en uitstappen: de RSI van het aandeel, die de kracht van zijn recente beweging meet, en de toestand van de Amerikaanse markt, gegeven door de positie van de Nasdaq-index ten opzichte van zijn lange gemiddelde.

De RSI dient als vangnet aan beide kanten. Wij kopen geen aandeel waarvan de beweging al gespannen staat, en wij verkopen wanneer hij duidelijk op hol slaat voorbij dat niveau. Die dubbele grens voorkomt dat je instapt op een opstoot die uitdooft en dat je blijft zitten wanneer ze omslaat.

RegelAankoopVerkoopWat ze toevoegt
A16Nasdaq boven zijn lange gemiddelde en RSI niet te hoogtwee slotkoersen van de Nasdaq onder zijn lange gemiddelde, of RSI die op hol slaatde basisregel: belegd wanneer de markt stijgt, in cash wanneer ze breekt
A24zoals A16; in een dalende markt wordt kopen weer mogelijk als de Nasdaq drie slotkoersen boven zijn Kijun over 26 dagen aanhoudtzoals A16; in een dalende markt, één slotkoers van de Nasdaq onder de Kijunze pikt de herstelbewegingen mee zonder te wachten op de terugkeer boven het gemiddelde, en ze geeft het beste resultaat van de drie over twintig jaar
A25RSI niet te hoog, over heel het compartiment in een gunstige markt en over de helft andersRSI die op hol slaatze blijft steeds gedeeltelijk belegd, zodat een trendbreuk slechts de helft van de positie kost

De uitvoeringsconventie is dezelfde in de studie en in de opvolging in real time. Het programma leest de regel op de slotkoers en plaatst de order bij de opening van de volgende sessie, nooit tegen de koers die het signaal veroorzaakte: dat scheidt een eerlijke simulatie van een geflatteerde. Elke uitvoering kost 10 basispunten, de helft in commissie, de helft in slippage.

Backtest en optimalisatie: twintig jaar simulaties

Vervolgens hebben wij de methode gesimuleerd van december 2005 tot november 2025, waarbij wij drie zaken lieten variëren: de selectie, de regels en de hefboom. Elke variant vertrekt van 100.000 USD, doorloopt veertig periodes van zes maanden en betaalt kosten bij elke uitvoering.

Wij oordelen niet op één enkel cijfer. Een curve die hoger eindigt maar onderweg een terugval van 80 % doormaakt, houdt geen stand: niemand volgt ze tot het einde, en dat is precies het probleem dat wij wilden oplossen. Wij lezen dus vier indicatoren samen: het eindkapitaal, de ergste terugval, de Sharpe-ratio en het aantal gewonnen periodes.

Eén belangrijke voorzorg bestaat erin het beleggingsuniversum te reconstrueren zoals het op elk moment bestond: het universum van elke scan is de samenstelling van de index op die datum, en niet die van vandaag. Zonder die voorzorg zouden wij alleen de vooraf bekende winnaars testen.

Twintig jaar op aandelen, 2005-2025

De demonstratie schakelt veertig periodes van zes maanden aaneen, van december 2005 tot november 2025, met het mandje gedateerd per scan en 100.000 USD bij de start. Voor elke scan van de studie is het Nasdaq-100-universum de samenstelling van de index op die datum, niet die van vandaag. Een aandeel dat sindsdien uit de index is verdwenen, blijft kandidaat voor de periodes waarin het er deel van uitmaakte. Deze voorzorg vermindert de survivorship bias, die erin bestaat alleen de winnaars van vandaag te testen. De energielijst daarentegen is die van 2022 over de volledige periode: ze werd niet gereconstrueerd. De verticale schaal is logaritmisch: eenzelfde helling komt overeen met hetzelfde groeitempo, in 2006 zoals in 2024.

Twintig jaar op aandelen, 2005-2025Logaritmische verticale schaal: eenzelfde helling betekent eenzelfde groeitempo, in 2006 zoals in 2024. De stippellijn is het startkapitaal, 100.000 USD.
50 k100 k200 k500 k1 M2005200820102012201420162018202020222024
Buy & HoldA16A24A25
✕ Sluiten
StrategieEindkapitaal (USD)Jaarlijks rendementErgste terugvalSharpeSortinoGewonnen periodes
Buy & Hold1.037.514+12,4 %−72 %0,55
A161.144.738+13,0 %−38 %0,6517 / 40
A241.312.607+13,7 %−40 %0,6718 / 40
A251.163.442+13,1 %−57 %0,6313 / 40

De Buy & Hold dient als referentie: dezelfde vijf aandelen, gekocht bij hun instap in het mandje en aangehouden zonder regel. De drie regels eindigen erboven, met een lagere maximale terugval (−38 tot −57 % tegenover −72 % voor de Buy & Hold in 2008). A24 is gekozen als motor van de opvolging. Ze levert het beste eindkapitaal en de beste Sharpe-ratio, en haar regime voor dalende markten opent instapmomenten die de twee andere niet hebben.

De hefboom via turbo call

Een turbo call is een certificaat uitgegeven door een bank. Het repliceert een aandeel met een hefboom: met hefboom 3 laat een stijging van 1 % van het aandeel het certificaat ongeveer 3 % winnen, en een daling van 1 % laat het 3 % verliezen. De prijs van het certificaat komt, op weinig na, overeen met het verschil tussen de koers van het aandeel en een niveau genaamd barrière, hier geplaatst op ongeveer een derde onder de instapkoers. Als het aandeel de barrière raakt, wordt het certificaat uitgeknockt en is de inzet verloren. De barrière stijgt elke dag, met ongeveer 8,6 % per jaar op Amerikaanse aandelen. Dat is de financieringskost die de uitgever aanrekent. Daar komt het verschil tussen aan- en verkoopprijs nog bij.

De drie regels werden opnieuw uitgevoerd met het volledige compartiment geplaatst in turbo ×3 bij elk koopsignaal, knock-out op de laagste koers van de handelsdag en herbelegging vijf handelsdagen later als het signaal nog steeds op kopen staat. Deze varianten dragen de namen A42, A45 en A46.

Twintig jaar met de hefboom van de turbo calls, 2005-2025Logaritmische verticale schaal: eenzelfde helling betekent eenzelfde groeitempo, in 2006 zoals in 2024. De stippellijn is het startkapitaal, 100.000 USD.
50 k100 k200 k500 k1 M2 M5 M2005200820102012201420162018202020222024
Buy & HoldA42A45A46
✕ Sluiten
StrategieEindkapitaal (USD)Jaarlijks rendementErgste terugvalSharpeSortinoGewonnen periodes
Buy & Hold1.038.865+12,4 %−72 %0,550,78
A423.883.594+20,1 %−76 %0,610,8924 / 40
A455.668.540+22,4 %−79 %0,640,9324 / 40
A463.848.078+20,0 %−87 %0,610,8720 / 40

De hefboom vermenigvuldigt het jaarlijks rendement met 1,5 tot 1,7 en verdubbelt de ergste terugval. A45 eindigt ver vooraan, maar ze verloor 79 % van haar waarde tussen november 2022 en oktober 2023, toen de mislukte herstelbewegingen van een dalende markt driedubbel werden betaald. De Sharpe-ratio verbetert niet: de hefboom verbetert de kwaliteit van de signalen niet, hij versterkt hun resultaten. Om die reden is de opvolging in real time een simulatie op reële schaal, geen echte rekening.

De verworpen varianten

Wij hebben vergeleken voordat wij kozen. Over dezelfde twintig jaar hebben wij verschillende op het eerste gezicht redelijke varianten gemeten en ze daarna verworpen. De tabel geeft het eindkapitaal van A24 in elk van die gevallen.

VariantEindkapitaal A24 (USD)VerschilWaarom
Gedeeltelijke halfjaarlijkse rotatie, aangehouden posities (gekozen)1.312.607+0,0 %de referentie: aandelen die nog boven hun lange gemiddelde staan, worden aangehouden van de ene periode tot de andere
Driemaandelijkse rotatie1.043.974−20,5 %elke drie maanden opnieuw scannen vervangt aandelen die nog geen tijd hadden om te renderen
Aanhouden op voorwaarde van twee slotkoersen boven het gemiddelde1.123.862−14,4 %aangezien de beslissing slechts twee keer per jaar wordt genomen, filtert de tolerantie geen enkele ruis en vertraagt ze echte uitstappen met een volledige periode
Marktfilter via de GICS-sector-ETF van elk aandeel865.458−34,1 %de geselecteerde aandelen volgen de Nasdaq veel meer dan hun sector, en de sector-ETF's zakken vaker onder hun lange gemiddelde
Enkelvoudig marktfilter via de SPY834.972−36,4 %de S&P 500 breekt vaker door zijn lange gemiddelde dan de Nasdaq en herstelt er later van
Kalmer gemaakt marktfilter (hysteresisband, wekelijkse slotkoers, trage herbelegging)zie labelde drie varianten kosten 12 tot 38 % van het eindkapitaal: een vals signaal van de QQQ kost weinig, een vertraagde uitstap kost veel

Deze proeven leiden allemaal tot dezelfde conclusie. Bij volatiele aandelen kost alles wat een uitstap vertraagt meer dan de vermeden valse signalen, en alles wat de aanhoudingsduur verkort, ontneemt de posities de tijd die ze nodig hebben om te renderen.

Gegevens en methode: survivorship bias, look-ahead bias en transactiekosten

De cijfers op deze pagina steunen op de volgende keuzes.

  • Bron van de koersen. Dagkoersen geleverd door Yahoo Finance.
  • Samenstelling van de Nasdaq-100. Gereconstrueerd op elke scandatum uit de 211 gedateerde wijzigingen die op de Wikipedia-pagina “Historical components of the Nasdaq-100” zijn gepubliceerd, teruggewerkt tot 2005.
  • Energie-universum. De lijst van de energiesector van de S&P 500 van 2022, vast over de volledige periode.
  • Van de beurs gehaalde aandelen. 57 van de 123 aandelen van november 2005 zijn bij de leverancier niet meer beschikbaar en ontbreken in de simulatie.
  • Periode en kapitaal. Van december 2005 tot november 2025, met 100.000 USD bij de start.
  • Uitvoering. Het signaal wordt gelezen op de slotkoers en de order wordt uitgevoerd bij de opening van de volgende dag.
  • Kosten. 0,1 % per uitvoering, de helft commissie en de helft slippage.
  • Look-ahead bias. Een geautomatiseerde test vermenigvuldigt alle koersen na een afkapdatum met factoren van 10 tot 50 en eist dat de beslissingen vóór die datum identiek blijven. Hij maakt deel uit van de geautomatiseerde tests die bij elke wijziging van het programma opnieuw worden uitgevoerd.

Productie: elke avond een e-mail

Een gevalideerde strategie is alleen iets waard als ze elke avond wordt toegepast, zonder uitzondering. De productie neemt de beslissing niet weg van de klant: de regel blijft de zijne en hij kan ze veranderen wanneer hij wil. Wat automatisering toevoegt, is een betrouwbare toepassing elke avond, een voortdurende bewaking en een spoor van elk verdict.

Het geheel steunt op een server, een geplande taak en een programma. Na sluiting van New York haalt het programma de koersen van de dag op, herstart de simulatie vanaf de eerste dag, doorloopt een reeks controles en stuurt dan een e-mail met een van de drie verdicten: KOPEN, VERKOPEN of NIETS TE DOEN. De klant programmeert zijn orders de volgende ochtend, vóór de opening.

Niets wordt met de hand ingevoerd, niets wordt met de hand beslist. Bij identieke koersen levert het programma dezelfde order, of de week nu goed of slecht was.

Het plaatsen van de orders blijft hier in handen van de klant: dat is zijn keuze, hij wil dat laatste gebaar behouden. Ook dat kan geautomatiseerd worden, met orders die rechtstreeks naar de broker vertrekken, zodra die een interface aanbiedt om ze te ontvangen.

Het verloop van elke avond

Het systeem berust op een server, een geplande taak en een programma dat een algoritme volgt. Geen enkel gegeven wordt met de hand ingevoerd.

  1. 22.00 uur, ParijsNew York sluit.
  2. 23.15 uurDe geplande taak start het programma, van maandag tot vrijdag.
  3. KoersenHet programma haalt de slotkoersen van de dag op van de vijf aandelen, van de QQQ, de SPY en de EUR/USD, en zet ze vervolgens in cache.
  4. MotorHet programma herstart de simulatie vanaf 1 dec. 2025 met de echte producten: A24-signalen, aan- en verkopen bij de volgende opening, waardering tegen de bid, knock-outs. De referenties (Buy & Hold, A24 op aandelen, motor op synthetische turbo's) worden herberekend op dezelfde koersen.
  5. ControlesHet programma controleert of de gegevens van de dag aanwezig zijn, of de koersbalken zijn afgestemd, of de uitvoeringsdata overeenstemmen met die van de motor en of de ISIN's geldig zijn. Het leest ook de fiche van elk product bij zijn uitgever: lopende notering, reële bid en ask, overeenstemmende barrière.
  6. E-mail en paginaDe e-mail vertrekt met de orders van vandaag bovenaan. Deze pagina wordt op hetzelfde moment opnieuw gegenereerd. Een mislukte controle blokkeert nooit de verzending: ze verschijnt in de e-mail met de te volgen instructie.
  7. De ochtendDe orders worden gelezen in de e-mail en geprogrammeerd bij de broker vóór de opening van New York om 15.30 uur.

De momenteel gevolgde producten, één per aandeel, werden gekozen voor een barrière rond twee derde van de instapkoers en een uitgiftedatum vóór de start:

AandeelEmittentProductCodeISINUitgegeven opBarrière (USD)
IDXXSociété GénéraleBEST Turbo Call open end IDEXX LaboratoriesSX3S88DE000SX3S88324 apr. 2025462,62
BIIBUniCreditHVB Turbo Bull open end BiogenUG5EG8DE000UG5EG8622 apr. 2025124,85
AMGNHSBCTurbo Call open end AmgenTT1RUTDE000TT1RUT531 mrt. 2020237,02
MARSociété GénéraleBEST Turbo Call open end Marriott InternationalSX7Q8XDE000SX7Q8X811 apr. 2025230,77
GOOGLSociété GénéraleBEST Turbo Call open end Alphabet AFC0P2PDE000FC0P2P612 sep. 2025226,75

Als een product wordt uitgeknockt, wacht het compartiment vijf handelsdagen en herbelegt het vervolgens in het volgende voor het aandeel opgegeven product. Is er geen, dan meldt de e-mail « product te kiezen ».

Beperkingen

  • De cijfers op deze pagina komen uit simulaties over twintig jaar, niet uit een historiek van werkelijk geplaatste orders.
  • Een signaal wordt uitgevoerd met een vertraging van één dag, bij de volgende opening. Een ongunstig openingsverschil werkt door in het resultaat.
  • Met hefboom 3 heeft zich al een terugval van bijna −80 % voorgedaan en kan die zich opnieuw voordoen. Bij een knock-out gaat het volledige betrokken compartiment verloren.
  • Resultaten uit het verleden, zelfs na correctie van de survivorship bias voor zover de beschikbare historische gegevens dat toelaten, bieden geen enkele garantie voor toekomstige resultaten.
  • De koersleverancier verspreidt de historiek van bedrijven die van de beurs zijn gehaald niet meer: 57 van de 123 aandelen uit het universum van november 2005 zijn onvindbaar. De faillissementen en overnames daaronder ontbreken dus in de simulatie, en hun netto-effect op het resultaat is onbekend.
  • De energielijst van de S&P 500 is die van 2022, toegepast op de volledige periode: dat is een tweede, kleinere, retrospectieve selectiebias.
  • Transtorm ontwerpt geen beleggingsstrategieën en beveelt er geen aan: wij formaliseren, testen en automatiseren de regels die de klant ons aanlevert.

De aanpak buiten dit project

Wat automatisering hier oplevert, geldt ver buiten deze strategie: het programma past de regel toe zoals ze geschreven is, elke dag, zonder zich af te vragen of het moment goed gekozen is. De drie fasen gelden zodra een beslissing regelmatig terugkeert en steunt op regels die je kent maar niet altijd volgt. De kadering vertaalt de methode naar uitvoerbare regels, de optimalisatie toont welke daarvan standhouden over een lange periode, de productie past ze elke avond toe, bewaakt ze en houdt er een spoor van bij, zonder de regel uit handen van de klant te nemen.

De code, de gegevens en de resultaten blijven eigendom van de klant. Daarom staan de exacte drempels voor selectie en RSI niet op deze pagina.

Hebt u een methode om te automatiseren?

Transtorm kadert de methode, meet ze en brengt ze in productie. Van het eerste gesprek tot de eerste automatische e-mail verliep dit project in drie fasen; het uwe zal er wellicht evenveel nodig hebben.

Wij publiceren deze casestudy met toestemming van de klant. De selectie- en RSI-drempels worden niet meegedeeld; de getoonde cijfers zijn die van de simulaties.

Praten over uw projectLees het artikel achter de schermen