Een backtest toont één historisch resultaatpad. Monte Carlo onderzoekt herhaald getrokken paden onder opgegeven aannames. Volgorde, herbemonstering, hoeveelheid en stopregels kunnen het dalingspad veranderen. Een modelpercentiel is geen geverifieerde kans op overleving van een niet-gespecificeerde live rekening.

Benoem wat er werkelijk wordt getrokken

Een vaste lijst geldresultaten herschikken verandert de volgorde maar behoudt de som als alles uitgevoerd wordt. Met teruglegging trekken kan zowel volgorde als som veranderen. Een parametrisch model met onafhankelijke winst/verlieskansen beschrijft weer een andere verdeling. Noteer ook of hoeveelheid gelijk blijft of equity volgt.

Begin met de hand: start 1.000 eenheden, resultaten+200,−100,−100 geven 1.000→1.200→1.100→1.000. Grootste daling 200/1200 is 16,67%. Volgorde−100,−100,+200 geeft 1.000→900→800→1.000, grootste daling 20%. Eindbedrag is beide keren 1.000. Neem beginvermogen als mogelijke piek mee, anders verdwijnt de eerste verliesdaling.

Een stopgrens verandert welke resultaten meetellen

Dezelfde lijst, een andere uitgevoerde proefFictieve nettolijst USD+300,−150,−150. Start 1000; stop na complete stap bij≤850. Geen herinvestering/stromen; geen kansschatting.REKENVOORBEELDA, eerste stap1000→1300A, tweede en derde1300→1150→1000B, eerste stap1000→850B, restNiet uitgevoerd
Dezelfde lijst, een andere uitgevoerde proef. Fictieve nettolijst USD+300,−150,−150. Start 1000; stop na complete stap bij≤850. Geen herinvestering/stromen; geen kansschatting.

Rapporteer de uitgevoerde reeks apart van de getrokken lijst. Een kapitaalstop kan ook de eindsom veranderen.

A, eerste stap
1000→1300 – +300 uitgevoerd.
A, tweede en derde
1300→1150→1000 – Blijft boven grens; alle drie uitgevoerd.
B, eerste stap
1000→850 – −150 raakt de stopgrens.
B, rest
Niet uitgevoerd – Geen twee nieuwe nultrades invullen.

Het aparte USD-bronmodel start 1.000 met lijst+300,−150,−150, zonder herinvestering of geldstromen. Controleer na ieder volledig resultaat: bij vermogen≤850 stopt de proef. A voert+300,−150,−150 uit en eindigt 1.000. B begint−150, bereikt 850 en voert de overige twee niet uit.

Een grijze doorlopende eindlijn is dan geen reeks nieuwe nultrades. Scheid getrokken lijst van werkelijk uitgevoerde stappen. Python shuffle herschikt een lijst; onze stopvoorwaarde is extra modellogica. Twee voorbeelden bepalen geen kansen. Een kapitaalgrens, margeregel of veranderend volume vraagt meer dan alle historische bedragen opnieuw optellen.

Welke vraag en welk percentiel?

Een verklaard model kan terminale bedragen, grensoverschrijding en maximale drawdown per pad onderzoeken. Bereken eerst ieder compleet pad en zijn grootste daling, daarna een percentiel van die maxima. Een puntgewijze equitypercentielband is geen zelf uitgevoerd pad.

Leg kwantielconventie vast. Interpolatie en discrete uitkomsten beïnvloeden hoeveel waarnemingen onder een grens liggen. Bij positieve drawdowngrootten onderzoekt het 95 e percentiel de hoge dalingstaart; bij terminale kapitalen geven 5% of 1% de lage staart. Een ondergrens voor kapitaal en een bovengrens voor drawdown zijn andere statistieken, geen gegarandeerde live grenzen.

Het hypothetische bronmodel heeft 200 onafhankelijke trades, winstkans 0,55, vaste nettowinst EUR 100 en verlies EUR 80. Gemiddelde per trade is 0,55×100−0,45×80 = EUR 19; totaalverwachting EUR 3.800. Met K winnaars is totale winst 180K−16.000. Volgens de discrete conventie “kleinste K met cumulatieve kans minstens het doel” zijn winstkwantielen EUR 920 bij 1%, EUR 1.640 bij 5%, EUR 3.800 bij 50% en EUR 5.960 bij 95%.

Dit zijn berekende waarden van de aangenomen binomiale verdeling, geen geobserveerde simulatie of echt tradingrecord. Een eindige willekeurige simulatie varieert eromheen. De kansen, onafhankelijkheid en vaste bedragen zijn niet uit een werkelijke markt vastgesteld.

Een gecontroleerde Excel-oefening

De technische formules behouden de Engelse functienamen, argumentkomma’s en decimale punt uit de bron. Nederlandse Excel-instellingen kunnen andere syntaxis vragen. Zet A1=0.55, A2=100, A3=−80 en A4=10,000 als getallen voor kans, twee vaste netto-uitkomsten en beginvermogen. Gebruik C1==$A$4, D1==C1 en E1=0: dit is de toestand vóór de eerste trade.

B2: =IF(RAND()<$A$1,$A$2,$A$3)
C2: =C1+B2
D2: =MAX(D1,C2)
E2: =(D2-C2)/D2

Kopieer B2: E2 tot en met rij 201 voor precies 200 trades. Dollarverwijzingen houden parameters vast. C201 is eindvermogen; =MAX(E1:E201) is de maximale positieve drawdown van dit pad. Tweehonderd trades is geen kalenderjaar. Voeg voor praktische betekenis aparte insolventie-, marge- en handelsstopregels toe.

Kopieer voor een volgend pad het complete B: E-blok inclusief beginrij en behoud de absolute A-verwijzingen. Bewaar terminale-kapitaalpercentielen apart van percentielen van de padmaxima. =PERCENTILE.INC(range,0.95) kan interpoleren. RAND herberekent met het werkblad; sla getrokken waarden en aannames op vóór het experiment wordt beoordeeld. Hier is geen echte Excel-run uitgevoerd.

Bootstrap in Python met expliciete tijdsstructuur

Bootstrap trekt uit een omschreven historische lijst in plaats van uitsluitend twee toegewezen bedragen. Excel kan met passende formules eveneens historische waarden bemonsteren. Het softwarepakket kiest niet vanzelf de juiste afhankelijkheid, hoeveelheid, kosten of stopregels.

Voor niet-lege nettogeldhistorie kan een NumPy Generator gebruiken: new_sequence = rng.choice(history,size=200,replace=True). Neem het begin mee: equity = np.concatenate(([initial_capital], initial_capital + np.cumsum(new_sequence))). Bereken per pad lopende pieken, dalingen en maximum vóór aggregatie. Bewaar data, seed, bibliotheekversie, horizon, kosten en stopregel. Meer paden verminderen rekenruis, niet ontbrekende marktwaarnemingen.

Een gecontroleerd modelvergelijk gebruikt dezelfde uniforme trekking U. Uitkomst+1 als U onder de drempel ligt, anders−1; fictieve A-drempel 0,55 en B0,60. Verwachtingen 0,10 en 0,20 geven verschil 0,10. Bij gedeelde U is B−A alleen+2 op 0,55≤U<0,60, anders nul. Variantie 4×0,05−0,10²=0,19.

Onafhankelijke trekkingen geven varianties 0,99+0,96=1,95 voor het verschil. De gedeelde constructie verlaagt hier vergelijkingsruis, niet onzekerheid over echte marktkansen. Zij hoeft niet voor iedere willekeurige strategie te helpen. Dezelfde seed gebruiken is bovendien niet vanzelf bewijs dat twee programma’s dezelfde gebeurtenissen koppelen.

Individuele trades met teruglegging houden de mogelijke opgenomen bedragen maar breken hun oorspronkelijke volgorde en bewaren geen verliesclusters. Ze genereren geen afwezige staartschok. Onderzoek waar relevant blokbemonstering en afzonderlijke stressscenario’s, met de beperking dat ook die historie toekomstige regimes kan missen. Vaste geldbedragen en risico herberekend uit veranderende equity zijn verschillende modellen.

Nieuw afzonderlijk EUR-tegenvoorbeeld: start fictief EUR 2.000, met drie bruto-uitkomsten+400,−200,−200 en EUR 5 complete kosten per uitgevoerde trade. Stop na een stap bij vermogen≤EUR 1.798. A wordt 2.395→2.190→1.985 en voert alles uit. B begint met−200−5 en stopt op EUR 1.795.

Zonder die eerste fee zou B op 1.800 nog bóven de grens staan. Kosten veranderen hier dus welke latere resultaten uitgevoerd worden. Het verschil EUR 190 tussen eindbedragen is niet te berekenen door simpelweg drie fees van iedere getrokken lijst af te trekken: B voert maar één stap uit. De bedragen en grens zijn een rekenscenario, geen margeregime of aanbevolen verlieslimiet.

De grenzen van een simulatie eerlijk behouden

Het vastekansenvoorbeeld veronderstelt stabiliteit en onafhankelijkheid; Monte Carlo als methode kan ook afhankelijkheid of wisselende regimes modelleren. Die toevoegingen vragen eigen aannames en evaluatie. Vergelijk gedrag met historie en stressomstandigheden buiten de opgenomen waarden. Een complexer model maakt onbekende staarten niet bekend.

Walk-forward: toets de procedure, labelhorizon en vermogensreeks organiseert opeenvolgende ontwikkeling en evaluatie maar detecteert niet automatisch edgeverval en maakt bekeken data niet opnieuw onbekend. Definieer een falingsgrens vóór onderzoek en controleer fees, gaps, ontbrekende fills en stopregels apart.

In het geïdealiseerde model met ieder verlies exact 5% van huidig vermogen blijft na n eindige verliezen beginvermogen×0,95n positief. Een praktisch minimum, margegrens of groter verlies verandert dat model. Hieruit volgt geen gegarandeerde overleving van een echte rekening.

Een reproduceerbare studie beginnen

  1. Definieer historie, nettokosten, risico-eenheid, afhankelijkheid en marktdekking. Er is geen universele honderd-tradegrens; handel niet alleen om aantallen te halen.
  2. Controleer eerst de twee deterministische drie-tradepaden en de stopgrens. Bewaar daarna een getrokken steekproef. Duizend runs of één uur werk bewijzen geen modelgeschiktheid.
  3. Inspecteer de juiste staart met vastgelegde conventie en beginpiek. Lager risico kan modeldrawdown verlagen, maar herbereken in plaats van gegarandeerde evenredigheid te veronderstellen.
  4. Vergelijk herzieningen met dezelfde eenheden, kosten, coverage en sizing. Een lagere mediaan bewijst niet vanzelf een causale verandering van live edge.