Walk-forwardanalyse herhaalt parameterkeuze op eerdere data en beoordeling op een later blok. Je onderzoekt een bijwerkprocedure, niet uitsluitend de laatste parameters. Leg kalender en keuzeregels vast vóór de beoordelingsuitkomsten. Gedeelde training en marktverband maken vensters niet automatisch onafhankelijk; achteraf een gunstige splitsing kiezen kan de procedure alsnog overfitten.

Leg de bijwerkprocedure vooraf vast

Definieer trainingsduur, beoordelingsduur, update-interval, kandidaatparameters, selectiecriterium, regel bij gelijke scores en actie als niets kwalificeert. Winst maximaliseren is een gekozen criterium, geen neutrale standaard. Verwerk kosten, blootstelling en steekproefomvang consequent. Meer alternatieven kunnen historische ruis selecteren, maar meer dan 75% winrate in tweehonderd trades of profit factor boven 3,5 bewijst op zichzelf geen curve-fitting.

Controleer data, kosten en volledige selectiegeschiedenis met Een strategie backtesten: data, kosten en tijdvolgorde controleren. Noteer ook mislukte pogingen en kalenderwijzigingen. Een later blok is alleen ongebruikt zolang de uitkomst de keuze niet beïnvloedt. De term out-of-sample is geen vrijstelling van gegevenscontrole.

Een tussenruimte helpt niet als het label in de test reikt

Controleer het einde van het labelRegelmatige perioden, label t vraagt complete slotkoersen t+1 en t+2. Fitting na slot 9 vóór periode 10.REKENVOORBEELDGap 1Laatste sample 8Gap 2Laatste sample 7Andere horizonOpnieuw controleren
Controleer het einde van het label. Regelmatige perioden, label t vraagt complete slotkoersen t+1 en t+2. Fitting na slot 9 vóór periode 10.

Index vóór de test is onvoldoende; de laatste benodigde labelinformatie moet al beschikbaar zijn.

Gap 1
Laatste sample 8 – Label vraagt slot 9 en 10: 10 nog onbekend.
Gap 2
Laatste sample 7 – Label vraagt slot 8 en 9: beide bekend.
Andere horizon
Opnieuw controleren – Geen universeel correct aantal tussenperioden.

In dit fictieve model gebruikt label t de complete slotkoersen van t+1 en t+2. Het eerste testtijdvak is 10. Train na sluiting 9 maar vóór begin 10. Met gap 1 is laatste trainingssample 8: het label vraagt slot 9 én 10. Slot 10 is nog onbekend en veroorzaakt toekomstinformatie.

Met gap 2 eindigt training bij sample 7; het label gebruikt slot 8 en 9, nu bekend. Controleer dus per behouden sample het laatste benodigde datatijdstip. Dit resultaat geldt alleen voor deze horizon, regelmatige perioden en fittingtijd. Een andere labelconstructie vraagt een nieuwe controle, geen blind vaste gap 2.

Een verschuivend venster uitvoeren

Kies vensters vóór tuning. Train bijvoorbeeld op 2018–2021 en beoordeel de bevroren keuze op 2022. Train daarna op 2019–2022 en beoordeel op 2023. Eerdere OOS-data mogen later historische training worden zonder dat de eerdere chronologie verandert. Pas eerdere resultaten achteraf niet aan.

Voeg OOS-trades chronologisch samen, beoordeel onzekerheid en reserveer een laatste onaangeraakt blok als eerdere evaluaties ontwerpkeuzes informeerden. Overlappende trainingsjaren en aangrenzende testjaren leveren geen automatische statistische onafhankelijkheid. Ook een nultradeperiode hoort in de rapportage.

Rolling of een vaste start met groei?

Rolling behoudt een vaste trainingslengte: 2018–2021, 2019–2022 en 2020–2023. Anchored of expanding behoudt de start: 2018–2021, 2018–2022 en 2018–2023. Korter geheugen verwijdert oudere condities maar verkleint de steekproef; langer geheugen houdt meer mogelijk afwijkende omstandigheden vast. Geen variant garandeert snellere aanpassing of stabiele parameters. Trendvolgen versus mean reversion beslist dit niet universeel.

Leer normalisatie, featureselectie en imputatie alleen uit toegestane training, niet uit alle historie. Een sample-index vóór de test bewijst geen tijdig beschikbaar label. TimeSeriesSplit verwijdert met gap laatste trainingssamples, maar ontdekt niet elke lekroute. Gelijk verdeelde waarnemingen maken vensterduren vergelijkbaar; onregelmatige gebeurtenissen vragen extra kalendercontrole.

Walk-forward efficiency met onderliggende uitkomsten lezen

Onder de beschreven TradeStation-conventie deel je geannualiseerd OOS-rendement door geannualiseerd IS-rendement, met gelijke kost-, blootstellings- en rendementsdefinities. Tien procent gedeeld door twintig procent geeft WFE 0,5 of 50%. Bij een nulnoemer is de verhouding ongedefinieerd.

Ook −5% gedeeld door −10% is 0,5, terwijl beide verliezen. Boven één bewijst niet automatisch toekomstinformatie. TradeStation noemt vijftig procent een vuistregel; het is geen algemene toestemming voor livegeld. Controleer netto uitkomsten, datadekking, gevoeligheid en Drawdown afzonderlijk. Een gunstige verhouding kan een ongunstig absoluut resultaat verbergen.

Vergelijk de werkelijk vooraf gekozen regels

Fictief geeft 12% geannualiseerd OOS tegenover 30% IS WFE 0,4; 20% tegenover 25% geeft 0,8. Dit bewijst niet welke methode een duurzaam voordeel heeft. In 2018–2023 passen met vier trainingsjaren en één testjaar twee complete beoordelingen: 2022 en 2023.

Een apart gelijkspelvoorbeeld heeft in beide kalibratiestappen A en B met gelijke score; de vooraf gekozen tie-break kiest A. Latere netto OOS-bedragen zijn A:+5 en −2, B:−1 en +6, zonder samenstelling. De vastgelegde procedure geeft +3. Na iedere uitkomst de winnaar kiezen geeft +11; B na inspectie van diens hele historie kiezen geeft +5. Dat zijn verschillende experimenten.

Bewaar de volledige gelijkspelset en gekozen ID vóór iedere evaluatie. Een beleid dat OOS-uitkomsten gebruikt krijgt een nieuwe versie en latere beoordeling. Een achteraf beter pad is geen resultaat van de oorspronkelijke regel.

Nieuw afzonderlijk EUR-tegenvoorbeeld: start met EUR 1.000 en geen stortingen. De eerste OOS-periode eindigt op 900. De tweede periode heeft netto factor 1,10 op het overgebleven vermogen: eindstand 990, totaal −1%. Reset je vóór periode twee onterecht naar 1.000, dan noteer je 1.100 en wis je de eerdere vermogensdaling. Als je alleen procentuele vensterrendementen −10% en +10% optelt, krijg je eveneens ten onrechte nul. Dit model veronderstelt volledige periodereturns zonder open posities op de grens.

Wat walk-forward niet oplost

Definieer open posities bij updates: sluiten inclusief kosten of verder beheren onder een expliciete regel. Wis geen open verliezen of balance bij de grens. Sluit kalibratiewinsten uit de gecombineerde OOS-reeks uit en los overlappende testblootstelling op in plaats van dubbel tellen. Bereken complete drawdown uit het samengevoegde equitypad; vensterdrawdowns middelen is iets anders.

Bekijk concentratie in een paar perioden en vergelijk met een vooraf gekozen niet-bijgewerkte basis onder dezelfde data, kosten en sizing. Een held-out blok, latere demo-observatie en Monte Carlo voor strategieën: bootstrap, stopgrenzen en drawdown beantwoorden andere vragen. Permutatie wijzigt volgorde van gegeven uitkomsten maar modelleert niet elk toekomstig regime of kostenpatroon.

MT5’s Forward test geselecteerde configuraties op het latere deel van een historisch interval. Dat is niet vanzelf een meerstaps walk-forward of een toekomstige demo. Geen WFE-grens, demoduur van drie tot zes maanden of gesimuleerd 95 e-percentiel met drawdown onder 25% garandeert winst. Ook een parameterverandering boven 50% diagnosticeert niet zelfstandig ruisfitten.

Een reproduceerbare kalender opstellen

  1. Kies vensters bij methode en beschikbare data. Vijf jaren geven één vier-plus-één-paar. Vijf jaarlijkse teststappen vragen negen jaren: vier begintraining plus vijf evaluaties.
  2. Bewaar voor 2018–2023 de twee beschreven stappen met kandidaten, selectiecriterium, tie-break en gekozen versie vóór OOS. Verleng de kalender expliciet voor meer stappen.
  3. Bereken WFE alleen bij interpreteerbare noemer en consistente annualisering. Bekijk onderliggende verliezen en het gecombineerde pad.
  4. Registreer ontwerpwijzigingen en beperkingen. Houd de laatste evaluatie alleen onaangeraakt zolang haar uitkomst geen selectie stuurt.