In dit artikel
Na dit artikel kun je…
- Ask/Bid-uitkomsten met een middenkoersmodel reconciliëren zonder spread dubbel te rekenen.
- Intrabar-onzekerheid en te late trainingslabels herkennen.
- Hypothetische resultaatcijfers van daadwerkelijk gevalideerde prestaties onderscheiden.
Begrippen uitgelegd binnen het artikel
Bied- en laatprijs Spread Backtesting Centrale banken Commissie DrawdownEen hoog historisch winstpercentage bewijst geen handelsvoordeel. Een backtest beoordeelt expliciete regels op een afgebakende dataset onder een uitvoeringsmodel. Zelfs een zorgvuldig onderzoek garandeert geen toekomstig rendement. Je moet kunnen uitleggen welke informatie beschikbaar was, welke handeling volgde en welke kosten al in de prijzen zitten.
Wat een historische test wel kan aantonen
Een positieve historische expectancy beschrijft de geteste steekproef. Toeval, selectie en overaanpassing kunnen bijdragen. Bekijk aparte evaluatiedata, kosten en gevoeligheid voordat je de conclusie uitbreidt. Een negatieve test kan een tegenstrijdigheid in regels aantonen; een positieve test bewijst niet dat alle relevante tegenvoorbeelden ontbreken.
Regels moeten reproduceerbaar en tijdig uitvoerbaar zijn
Noteer symbool, timeframe, invoer, ordertijd, uitstap en volumeberekening. Een fictieve dagregel kan de voltooide slotkoers met de hoogste koers van de vorige bar vergelijken en pas daarna een order toestaan. Die definitieve slotkoers gebruiken om tegen de eerdere opening van dezelfde bar in te stappen gebruikt toekomstinformatie.
Leg ook bestaande posities, ontbrekende data en onvoldoende marge vast. Eén indicatorparameter beantwoordt die vragen niet en garandeert geen uitvoering. Een handelsvoordeel toetsen: kosten, onzekerheid en groepsweging behandelt de verdere evaluatie; Algoritmisch handelen: begin met één controleerbare handeling begint met kleine controlecases.
Data moeten bij product en hypothese passen
Valutafutures en OTC-spot of CFD zijn verschillende contracten. Centrale futuresdata zijn niet automatisch een goede vervanging voor een retail-spotstrategie. Er is geen universele statistische grens van honderd trades. Spreiding, afhankelijkheid, effectgrootte, selectie en onderzochte marktomstandigheden beïnvloeden benodigde onderbouwing. Rapporteer onzekerheid en effectieve steekproefomvang.
Bewaar provider, product, prijszijde, tijdzone en gaten. OHLC alleen vertelt niet of stop of doel binnen dezelfde bar eerst geraakt is. MT5 kan voor een minuutbar zonder tickhistorie ticks genereren, ook bij een real-ticktest. Controleer data en journal in plaats van alleen de modusnaam. Bewaar bij een instrumentmandje de toen beschikbare selectie en bij macrodata de toen gepubliceerde versie, geen latere herziening.
Nieuw afzonderlijk EUR-tegenvoorbeeld: een fictief lineair contract betaalt EUR 10 per prijseenheid bij één positie-eenheid. Instap 100, stop 99 en doel 102. De bar heeft open 100, high 103, low 98 en close 101. Pad open→high→low→close raakt eerst doel: bij volledige exacte modeluitvoering EUR +20. Pad open→low→high→close raakt eerst stop: EUR −10. Dezelfde OHLC ondersteunt beide paden. Zonder volgordegegevens of een expliciete conservatieve modelregel mag je niet achteraf het winstpad kiezen. Dit is geen marktprijs of stopgarantie; overige kosten ontbreken.
Reconcileer prijzen voordat je spread aftrekt
Het Ask/Bid-resultaat bevat de prijscomponent al. Extra kosten vragen een afzonderlijke post, geen herhaalde spreadaftrek.
- Ask → Bid
- 103 −102 =+1 – Werkelijk opgegeven modelprijzen.
- Midden → midden
- 104 −101 =+3 – Nog aanpassen voor prijszijden.
- Halve spreads
- +3 −1 −1 =+1 – Sluit aan op dezelfde uitvoering.
- Onjuiste volle aftrek
- +3 −2 −2 =−1 – Dit is een meetfout, geen andere fill.
Het fictieve bronmodel koopt en verkoopt één willekeurige hoeveelheidseenheid. Bij instap zijn Bid 100, Ask 102 en midden 101; bij uitstap Bid 103, Ask 105 en midden 104. Volledige exacte koop op Ask 102 en verkoop op Bid 103 geven +1 prijseenheid. Geen commissie, financiering of slippage.
De middenkoers stijgt drie. De instap ligt één boven midden, de uitstap één eronder: 3 −1 −1 = +1. Beide methodes sluiten aan. Twee volledige spreads van twee aftrekken geeft 3 −2 −2 = −1, een meetfout. Nogmaals twee van de echte Ask→Bid-uitkomst aftrekken telt eveneens dubbel. De bronvisual gebruikt een gedeeld nulpunt en lineaire schaal voor +3, +1 en de foutieve −1.
Kosten volledig opnemen zonder dubbeltelling
Ask-instap en Bid-uitstap bevatten het prijsverschil al. Voeg alleen apart berekende commissie, financiering en expliciete uitvoeringsafwijkingen toe voor zover nog niet verwerkt. Een fictieve spread van 0,8 pip is 0,4% van een doel van tweehonderd pips en 16% van vijf pips. Dat zijn aandelen van doelafstand, geen gemeten aandelen van strategievoordeel.
Een afzonderlijk bronvoorbeeld heeft vijftig gesloten trades vóór kosten: dertig winsten van PLN 40 en twintig verliezen van PLN 50. Totale winsten PLN 1.200, verliezen PLN 1.000, verschil PLN 200 en gemiddeld PLN 4. Profit factor is 1,20. Reken dezelfde complete kosten ook bij verliezers.
- PLN 0 per trade: netto PLN 200, gemiddeld PLN 4, profit factor 1,20.
- PLN 2 per trade: netto PLN 100, gemiddeld PLN 2. Winsten worden PLN 38 en verliezen PLN 52, dus profit factor 1.140/1.040, circa 1,10.
- PLN 4 per trade: netto nul, gemiddeld nul en profit factor 1,00.
Dit model verandert alleen de aangenomen kosten en beschrijft geen waargenomen strategie. Test passende kosten- en uitvoeringsscenario’s. Tweemaal gemiddelde kosten als buffer of maximaal 20% van brutowinst aan kosten zijn mogelijke eigen filters, geen universele veiligheids- of afwijsgrenzen.
Overaanpassing en uitkomsttijd voorkomen
De beste keuze uit veel parameters, instrumenten en datasplits kan toevallige kenmerken van het verleden volgen. Bewaar alle pogingen, ook buiten de optimizer. Een sterk geselecteerd resultaat bewijst niet vanzelf overfitting, maar vraagt afzonderlijke evaluatie. Maximaal twee parameters veranderen verwijdert selectie elders niet.
Leg de datasplit vóór afstemming vast; 70/30 is één mogelijk ontwerp. Een zwakker testresultaat kan ook regimeverschil of steekproefruis bevatten. Verander je de regel na het bekijken ervan, dan is die periode voortaan ontwikkeldata. Een onaangeroerde test garandeert evenmin op zichzelf alle gewenste statistische eigenschappen.
Chronologie vraagt ook wanneer een label bekend wordt. Het bronmodel labelt beslissing t op t+3. De eerste test start op t 10 en fitting moet daarvoor klaar zijn. Van t 1–t 9 mogen alleen t 1–t 6 meedoen: t 6 is bekend op t 9, t 7–t 9 pas op t 10–t 12. Eerdere prijzen kunnen nog nodig zijn voor een testindicator; dat is niet hetzelfde als een nog onbekende trainingsuitkomst gebruiken. Deze uitsluiting lost alleen de beschreven labeloverlap op, niet ieder mogelijk datalek.
Getallen lezen zonder er een prestatie bij te verzinnen
Neem fictief winstkans 0,54, gemiddelde winnaar 2,3R en verliezer 1R. Bruto expectancy is 0,54 ×2,3 −0,46 = 0,782R. Profit factor is 1,242/0,46 = 2,70. Dit bepaalt geen drawdown of totaalrendement. Een afzonderlijk toegewezen rendement van 87% over precies vijf jaar heeft een samengesteld jaarequivalent van ongeveer 13,34%; dat volgt niet uit de tradegetallen.
Beoordeel openpositie-equity, geldstromen, nettoresultaten en alle selectiepogingen. Er is geen universeel realistisch bereik voor winstpercentage, profit factor of drawdown dat iedere strategie valideert.
Een testdossier dat je kunt tegenspreken
- Schrijf één mechanische specificatie met informatietijd, handeling, volume en behandeling van onduidelijke of ontbrekende gegevens.
- Reproduceer afzonderlijke trades, inclusief verlies, geen signaal en een onduidelijke intrabarcasus. Onderzoek afwijkingen vóór de totaalcurve.
- Bepaal onderzoeksperiode en chronologische evaluatie vóór afstemming. Twee of vijf jaar is geen universele vereiste.
- Verwerk prijzen, commissie, financiering en genoemde slippage en test gevoeligheid zonder spread dubbel af te trekken.
- Noteer aantal trades, afhankelijkheid, spreiding en onzekerheid. Meer instrumenten kan de hypothese veranderen; honderd trades bewijst geen significantie.
- Vergelijk demo met het bevroren model. Ook drie maanden demo levert geen automatisch recht op winstgevende live inzet.
Werkelijke brondata met een afgebakende vraag
Het bestaande projectonderzoek over ECB EUR/USD in 2016–2025 bevat 2.560 publicaties en 49 werkdagen zonder publicatie, passend bij de vastgelegde TARGET-kalender binnen die bronkopie. Bekijk ontbrekende ECB-publicaties en de kalender voor data, grafiek, code en beperkingen. Dit is het oorspronkelijke onderzoek met bronkopie van 7 oktober 2026, geen hier nieuw uitgevoerde beschikbaarheidsmeting.
Een geplande sluitingsdag is niet automatisch een onverwacht datagat. De dagelijkse referentie geeft geen intraday-OHLC, tickvolgorde, spread of uitvoerbare brokerprijs. Haar kalendercontrole valideert dus niet de uitvoering van jouw strategie. Walk-forward: toets de procedure, labelhorizon en vermogensreeks verbindt vervolgens de test met vastgelegde versies en evaluatiemomenten.
Test wat je hebt geleerd
Ongeveer 2 minuten oefenen.
Antwoord en uitleg bekijken
103 −102 =1. Trek de spread in de gekozen prijszijden niet opnieuw af.
Andere vragen
Wat is overfitting?
Een model past kenmerken van ontwikkeldata die niet generaliseren. Een winstpercentage alleen diagnosticeert dit niet. Bekijk uitkomsten, kosten, alle selectiepogingen en aparte data. Een regel wijzigen na het zien van een test maakt die periode ontwikkeling.
Welke backtestsoftware past?
Kies een tool die de bedoelde regels, het product, de data en uitvoering kan vertegenwoordigen. MT5 ondersteunt EA s, meerdere symbolen en tickmodi. Controleer historie en instellingen. Handmatige replay of code voorkomt geen toekomstinformatie of onrealistische fills op zichzelf.
Hoeveel historie is genoeg?
Er is geen universeel aantal jaren of trades. Afhankelijkheid, spreiding, omstandigheden en aantal ideeën tellen mee. Meer symbolen kan de hypothese veranderen. Leg beperkingen vast en gebruik evaluatie waarvan uitkomsten tijdens ontwikkeling onbekend waren.
Hoe ziet een realistische goede uitkomst eruit?
Er is geen universeel winstpercentage-, profit-factor- of drawdownbereik. Sluit nettoresultaten, blootstelling, open equity, kosten en selectie aan. Het fictieve model van vijftig trades gaat van PLN 200 naar nul bij PLN 4 kosten per trade. Dat toont gevoeligheid, geen live validatie.
Bronnen en controle
- MetaTrader 5 — Echte en gegenereerde ticks
Relevante primaire uitleg gelezen van Bid/Ask-operatieprijzen, tickmodi en generatie bij ontbrekende tickhistorie. Een modenaam bewijst niet iedere waargenomen intrabarvolgorde.
- Bailey en medeauteurs — The Probability of Backtest Overfitting
Oorspronkelijke onderzoekspaper, samenvatting en relevante inleiding gelezen over herhaald testen en selectie op eindige historie. Geen volledige nieuwe statistische studie, universele samplegrens of eigen PBO-score uitgevoerd.
- MetaTrader 5 — Strategy Tester
Primaire platformdocumentatie uit eerdere broncontrole voor Expert Advisors, testinstellingen en meerdere symbolen. Een testtool bewijst geen juiste regel, data of toekomstig rendement.
De berekeningen gebruiken expliciete aannames. Ze vervangen geen actuele marktgegevens of voorwaarden van de aanbieder.
