Ga naar inhoud

Van backtest naar werkelijkheid

Een backtest laat zien hoe een strategie zich historisch zou hebben gedragen. Een live-systeem laat zien hoe het zich gedraagt. Die twee zijn nooit hetzelfde, en de kloof ertussen is waar veel systematische strategieën op stuklopen.

Belangrijk om te beseffen: een backtest is niets anders dan de gesimuleerde uitvoering van signalen die het systeem genereert. De signaal-logica is identiek tussen backtest en live. Het verschil zit in de executie bij de broker.

Die signaal-logica werkt zowel in backtest als live op dezelfde Norgate-dataset met OHLC-prijzen. Dat werkt omdat aandelen op centrale beurzen handelen, niet buiten de beurs om zoals valutahandel (OTC). Of het nu gaat om Euronext Amsterdam (AEX), de London Stock Exchange (LSE), de NYSE of de NASDAQ — het zijn allemaal exchange-based markten waar OHLC-data voor iedere marktpartij hetzelfde is, en achteraf niet bij te stellen.

Deze pagina beschrijft hoe Helios dat executie-verschil meet, welke aannames in de backtest verwerkt zitten en wat de eerste uitvoeringen laten zien. De meetmethodiek draait op dit moment op een IBKR-paperaccount — zelfde markt, zelfde orders, alleen zonder echt kapitaal. Wanneer Helios overschakelt op live-kapitaal blijft de methodiek ongewijzigd.

Zie Auditrapportages voor de kwantitatieve toets op het model zelf en Het Bewijs voor de samenvatting van 30 jaar resultaten.


1. De backtest — methodiek en vermeden valkuilen

Een backtest is alleen zo goed als de aannames eronder. Dit zijn de klassieke fouten in backtesting, en hoe Helios die vermijdt.

ValkuilHoe Helios het vermijdt
Survivorship biasNorgate PIT-data (1996-2025) inclusief uitgenoteerde aandelen. Audit toont een bias van -188 bps: de backtest onderschat het werkelijke historische rendement
Look-ahead biasIndexconstituenten en splitratio’s zijn point-in-time. Signalen draaien alleen op data die vóór executie beschikbaar was
Overfitting op parametersSensitiviteitsanalyse (±20% op 5 parameters), Monte Carlo met 10.000 resamples, walk-forward-efficiëntie van 99% — de strategie behield 99% van zijn backtest-rendement in ongeziene out-of-sample data
Cherry-picking van sub-periodesZes sub-periodes uitgesplitst (1999-2025), allemaal winstgevend
Data-snooping (Sharpe-inflatie)Deflated Sharpe-ratio gerapporteerd (0,74). Factor-regressie alpha is statistisch significant (p=0,003)
Onrealistische slippageSquare-root market impact-model plus ADV-gebaseerde dynamische caps — zie sectie 4

Geen van deze vangnetten is perfect. Samen vormen ze een strenge test. Het volledige auditrapport met 25 criteria staat op Auditrapportages.


2. Van backtest naar live: de reconciliatiegedachte

De kernvraag: hoe weet je of wat de backtest zegt, ook klopt als er echt kapitaal aan hangt?

Het antwoord zit in een simpele methode: bij elke handelssessie genereert het backtest-systeem een signaal — koop X, verkoop Y, tegen welke prijs — en elke keer wordt er een echte order geplaatst via IBKR. Die order wordt uitgevoerd tegen een echte fill-prijs, in een echte markt, op een echt moment.

Het verschil tussen signaalprijs en fill-prijs is de reconciliatie-fout per trade. Over vele trades ontstaat daaruit een verdeling: gemiddelde, standaarddeviatie, extremen. Die verdeling is de maat voor hoe betrouwbaar de backtest is als voorspelling van live-gedrag.

Wat we precies bijhouden:

  • Per trade: signaalprijs, fill-prijs, slippage in basispunten, marktconditie
  • Per week: gemiddelde afwijking tussen backtest-rendement en werkelijk uitgevoerd rendement
  • Cumulatief: tracking error over alle weken

Dit is dezelfde discipline die elke serieuze fondsmanager toepast ten opzichte van zijn benchmark. Alleen zit in dit geval de benchmark in het backtest-systeem zelf.


3. De statistische uitspraak die we willen kunnen doen

Het doel is concreet. Na voldoende forward-test-data moeten we kunnen zeggen:

Over N weken forward-testen is de gemiddelde afwijking tussen backtest-rendement en werkelijk rendement X basispunten per week met een standaarddeviatie van Y. Met 95% betrouwbaarheid blijft het jaarlijkse live-rendement binnen Z procentpunt van het backtest-rendement.

Zo’n uitspraak is pas zinvol als er genoeg data achter zit. Indicatief:

PeriodeWat je ermee kunt zeggen
4-8 wekenVoorlopige indicatie of het systeem zonder grote afwijkingen functioneert
20+ wekenEerste redelijke schatting van de reconciliatiefout, met een breed betrouwbaarheidsinterval
52+ wekenEen solide jaarlijkse uitspraak, inclusief alle seizoenspatronen en regime-wisselingen

Zonder meting blijft de backtest een hypothese; met meting wordt het een geijkt instrument. Dat onderscheid is groot.

Ons streven: de live-afwijking blijft binnen 200 bps per jaar van de backtest, met 95% betrouwbaarheid.

Frequentie: wekelijks rapport, maandelijks samengevat in de Helios-brief aan participanten. Elke trade vergelijkt signaal- met fill-prijs; elke week wordt de cumulatieve tracking error bijgewerkt.


4. Slippage — hoe Helios modelleert

Slippage is het verschil tussen de beoogde handelsprijs en de werkelijke uitvoeringsprijs. In een backtest moet je het modelleren; in de praktijk meet je het. De twee moeten op elkaar aansluiten.

Het model dat Helios gebruikt:

Slippage = Spread/2 + K × σ × √(Q/V)

Dit is de square-root market impact-formule uit de werken van Kyle en Almgren. De termen:

  • Spread/2 — de helft van de bid-ask-spread, vaste component
  • K — impact-coëfficiënt, standaard tussen 0,5 en 1,0
  • σ — dagvolatiliteit van het aandeel
  • Q — ordergrootte in aandelen
  • V — gemiddeld dagvolume (ADV)

Boven op het model komen ADV-gebaseerde caps (in dollarvolume, niet aantallen aandelen):

MarktkapitalisatieADV (dagvolume)Maximum slippage
Mega-cap> USD 500 miljoen/dag10 bps
Large-capUSD 50 - 500 miljoen25 bps
Mid-capUSD 5 - 50 miljoen50 bps
Small-cap< USD 5 miljoen100 bps

Helios belegt primair in de S&P 500. De gemiddelde constituent heeft een ADV ver boven USD 500 miljoen per dag — Apple zit op tientallen miljarden, de mediane constituent op enkele honderden miljoenen. Daarmee valt het merendeel van de trades in de 10-25 bps categorie.

De totale kostenimpact over 30 jaar, 11.402 trades: USD 354.398 aan slippage plus USD 84.189 aan commissies. Samen drukken ze het bruto rendement met 1,21%, al verwerkt in de gerapporteerde CAGR.


5. Liquiditeit — waarom S&P 500 dit oplost

De tweede killer naast slippage is liquiditeit. Een order die groot is ten opzichte van het dagvolume beweegt de prijs tegen je — bij een koop drijf je de prijs omhoog, bij een verkoop druk je hem omlaag. Bij kleine fondsen op kleine aandelen kan dit 50-200 bps per trade kosten.

Concrete getallen voor Helios op S&P 500-schaal:

AUMGemiddelde positiegrootteAls % van gemiddelde ADV
EUR 100.000EUR 5.000 - EUR 10.0000,001% - 0,002%
EUR 1 miljoenEUR 50.000 - EUR 100.0000,01% - 0,02%
EUR 10 miljoenEUR 500.000 - EUR 1 miljoen0,1% - 0,2%
EUR 100 miljoenEUR 5 - 10 miljoen1% - 2%

De drempel waar market impact significant wordt, ligt grofweg rond de 5% van de ADV. Op S&P 500-schaal kan Helios daarom ordes van grootte groeien zonder dat liquiditeit een bottleneck wordt. Pas ver boven EUR 250 miljoen AUM begint per-trade impact een rol te spelen, en dan nog alleen bij de kleinste constituenten van de index. De rekensom daarachter: bij EUR 250 miljoen AUM is een gemiddelde positie circa EUR 12,5 tot 25 miljoen, oftewel 2,5 tot 5% van de dagelijkse handelsvolume bij een mediane S&P 500-constituent (USD 500 miljoen per dag) — dicht tegen de 5%-drempel waar marktimpact meetbaar wordt.

Dit is geen toeval — het is waarom de keuze is gevallen op large-cap US equity en niet op small-cap of EM. De strategie schaalt niet omdat die uitzonderlijk slim is bij schaalgroei, maar omdat het universum dat toelaat.


6. Wat de eerste uitvoeringen al laten zien

Het paper-account voor het Groeimodel loopt sinds februari 2026. Het Bear Market Model (Systeem 2) werd op 20 maart 2026 geactiveerd toen de markt een dip maakte. In deze sectie staat wat die uitvoeringen tot nu toe laten zien over de werkelijke uitvoeringskwaliteit.

Eerst een disclosure over de meetmethode:

We meten slippage als fill_price − entry_day_open, niet als fill_price − prior_close. Het verschil: de backtest executeert op de open van de executiedag; het verschil tussen prior-close en open is overnight-gap, geen slippage. Door overnight-gap en slippage te scheiden meten we wat we willen meten — de kwaliteit van onze uitvoering, niet de grilligheid van de nacht. Onder de oude (prior-close) methode leken onze slippage-cijfers ongeveer zes keer zo hoog; dat verschil was ruis, geen kosten.

Systeem 1 — wekelijkse momentum (69 uitvoeringen geanalyseerd):

  • Gemiddelde pure slippage: 34,80 bps
  • Mediane slippage: 38,11 bps
  • Netto-impact over de 69 fills: USD -44 (vrijwel neutraal)

De gemeten 34,80 bps is consistent met wat je zou verwachten voor S&P 500-namen aan de open: market-order-spread plus een kleine markt-impact. Dat het netto-dollarbedrag dicht bij nul uitkomt suggereert dat onze fills evenwichtig rond de entry-day open liggen — soms iets erboven, soms iets eronder, zonder systematische bias.

Waarom de gemiddelde 34,80 bps boven de ADV-caps voor mega- en large-cap ligt (10 en 25 bps): de caps gelden per-trade binnen hun eigen tier, niet als gemiddelde over het hele portefeuilleuniversum. Small- en mid-cap trades met hogere caps (50 en 100 bps) trekken het portefeuillegemiddelde omhoog. Individueel blijft elke trade binnen zijn eigen ADV-tier.

Systeem 2 — daily short (7 uitvoeringen geanalyseerd):

  • Gemiddelde pure slippage: -29,37 bps (negatief = fills landen licht bínnen de entry-day open)
  • Netto-impact over de 7 fills: USD -302
  • Disclaimer: de steekproef is klein (n=7) — informatief, maar nog niet statistisch conclusief.

Onder de oude meting was Systeem 2 gemiddeld +94,05 bps. De oude formule boekte de dag-na-entry-beweging ten onrechte als uitvoeringskost. Onder de correcte meting blijkt dat onze fills gemiddeld gunstig uitpakken ten opzichte van de entry-day open.

Pending:

Vijf Systeem 1-trades van 15 april 2026 wachten op een Norgate-data-refresh voor backfill; de open-prijzen voor die dag zijn nog niet beschikbaar in onze lokale dataset. Zodra die binnen zijn, updaten we de cijfers.

Bij ongeveer honderd uitvoeringen per systeem volgt een eerste formele reconciliatie-rapport. Tot dan: elke week een update.


7. Wat als het tegenvalt

We meten, maar wat doen we als de meting structureel uit de pas loopt? Onze drempel: bij meer dan 300 basispunten cumulatieve afwijking ten opzichte van de backtest over een rollend venster van 52 weken pauzeren we nieuwe inleg en herzien we het model. Geen zachte formulering, geen “we houden het in de gaten” — een harde regel die we vóóraf vastleggen.

Dat werkt twee kanten op. Loopt de afwijking structureel in ons voordeel, dan gaan we het slippage-model herkalibreren — niet om mooiere cijfers te tonen, maar om te voorkomen dat de backtest zelf stelselmatig een verkeerd beeld geeft. Loopt het tegen ons, dan stopt de instroom en kijken we naar de oorzaak: model, executie, regime, of alle drie.


8. Schaal-overgang: wat er verandert als AUM groeit

De huidige aanpak — market-on-open-orders direct via IBKR — werkt zonder aanpassingen tot ongeveer EUR 5 miljoen aan beheerd vermogen. Daarboven wordt de executie-strategie gefaseerd zwaarder.

Fase A — tot EUR 5 miljoen AUM: MOO-orders (market-on-open). Directe uitvoering via de IBKR-gateway. Slippage blijft gemiddeld onder 25 bps. Dat is waar Helios nu staat en waar het in de Friends & Family-fase blijft.

Fase B — EUR 5 tot 100 miljoen AUM: overstap naar VWAP-orders (Volume-Weighted Average Price), gespreid over de eerste 30 tot 60 minuten van de handelsdag. VWAP minimaliseert impact door de executie af te stemmen op de intraday-liquiditeit in plaats van alles op de opening te proppen.

Fase C — boven EUR 100 miljoen AUM: multi-broker executie, iceberg-orders die grote posities in zichtbare en verborgen delen splitsen, en voor de grootste posities order-splitting over meerdere handelsdagen. Daarnaast schakelt de valuta-afdekking over van IBKR Spot naar CME-termijncontracten (CME Futures) — dat traject staat al beschreven in Valuta-afdekking.

Geen van deze fasen is nu nodig. Ze zijn ontworpen voor de schaal waar Whitefield straks naartoe groeit, niet voor de schaal waar het nu staat. Dat is geen performance-trucje, dat is vooruit denken.


De rode draad

Een backtest is een hypothese die klopt op historische data. Een live-systeem is de toets of die hypothese ook in de echte wereld overeind blijft. Whitefield maakt van de afstand tussen die twee geen marketingverhaal, maar een meetprobleem.

De drie hoofdredenen waarom dat verschil meestal tegenvalt — slippage, liquiditeit en ongemodelleerde frictie — zijn elk afzonderlijk geadresseerd. Slippage zit gemodelleerd in de backtest en wordt per live-trade gemeten, met een meetmethode die overnight-gap en uitvoerings-slippage netjes scheidt. Liquiditeit is via de keuze voor S&P 500-schaal op voorhand beheerst. Ongemodelleerde frictie wordt zichtbaar in de wekelijkse reconciliatie-metingen.

De eerste uitvoeringen — 69 voor Systeem 1, 7 voor Systeem 2 — bieden nog geen bewijs, maar wel een eerste indicatie dat de uitvoering dicht bij het model zit en dat de oude meetmethode de kosten systematisch overschatte. Over de komende maanden moet dat uitkristalliseren tot een harde, meetbare uitspraak over de betrouwbaarheid van de historische resultaten als voorspeller van live-performance.

Tot dat moment staat er één ding vast: er wordt gemeten. Elk signaal, elke fill, elke week.