Backtest zachycuje jednu simulovanou historickou cestu. Monte Carlo zkoumá cesty vzniklé opakovaným náhodným výběrem z výslovného modelu. Pořadí výsledků, převzorkování a pravidlo objemu mohou změnit propady. Výstup je podmíněn předpoklady, nikoli ověřená pravděpodobnost zániku neurčeného živého účtu.

Co se v simulaci skutečně losuje

Promíchání pevného seznamu peněžních výsledků mění cestu, ale při provedení všech položek zachová součet. Výběr s vracením může měnit obojí. Parametrický model s přidělenými pravděpodobnostmi a pevnými výhrami či ztrátami je další možnost. Popište postup, náklady a případnou změnu objemu podle equity.

Nejdříve spočítejte ruční příklad. Z počátečních 1 000 jednotek vede+200,−100,−100 přes 1 200 a 1 100 zpět na 1 000. Maximální propad je 200/1 200=16,67%. Pořadí−100,−100,+200 vede přes 900 a 800 také na 1 000, ale s propadem 20%. Počáteční kapitál musí patřit mezi možné vrcholy; jeho vynechání druhý propad zmenší.

Podmínka zastavení změní i konečný součet

Stejný seznam, jiný výsledek po zastaveníFiktivní čisté USD výsledky, počátek 1 000, kontrola hranice≤850 po každém celém kroku. Bez toků a reinvestování.MODELOVÝ VÝPOČETA:+300,−150,−1501 000→1 300→1 150→1 000B:−150,−150,+3001 000→850 a konecZbývající položkyBNeprovedeny
Stejný seznam, jiný výsledek po zastavení. Fiktivní čisté USD výsledky, počátek 1 000, kontrola hranice≤850 po každém celém kroku. Bez toků a reinvestování.

Pravidlo zastavení patří do modelu. Dvě deterministické cesty samy neudávají pravděpodobnosti.

A:+300,−150,−150
1 000→1 300→1 150→1 000 – Provedeny 3 výsledky.
B:−150,−150,+300
1 000→850 a konec – Proveden 1 výsledek.
Zbývající položkyB
Neprovedeny – Nejsou dvěma nulovými obchody.

Další samostatný model začne 1 000USD, po každém celém výsledku zkontroluje hranici 850USD a při stavu≤850 skončí. A provede+300,−150,−150 a vrátí se přes 1 300 a 1 150 na 1 000. B s pořadím−150,−150,+300 provede jen první ztrátu, dosáhne 850 a zbývající dva výsledky neprovede. Šedé pokračování ukončeného pokusu není dvojice nulových obchodů.

Jde o tři fiktivní čisté USD výsledky bez reinvestování a peněžních toků. Hranice je cvičné pravidlo, ne doporučení. Dvě cesty nepopisují pravděpodobnosti. Oddělte vylosovaný seznam od skutečně provedeného; zastavení, kapitálové omezení nebo měnící se objem nelze nahradit součtem všech historických položek.

Jakou otázku může model zodpovědět

Lze hodnotit koncové stavy, překročení předem dané hranice a maximální propad. Nejdříve spočítejte maximum propadu každé úplné cesty a potom kvantil těchto maxim. Pásmo bodových kvantilů equity není jedna uskutečněná cesta. Uveďte definici kvantilu; interpolace a diskrétní rozdělení ovlivňují podíl hodnot pod hranicí. Nejde o garantovanou budoucí ztrátu.

Původní hypotetický model má 200 nezávislých obchodů s pravděpodobností výhry 0,55, pevným čistým ziskem 100EUR a ztrátou 80EUR. Očekávání 0,55×100−0,45×80=19EUR na obchod, celkem 3 800EUR. Při K výhrách je koncový zisk 180K−16 000EUR. Pro nejmenší K s kumulativní pravděpodobností alespoň daného kvantilu vychází 1%=920EUR,5%=1 640EUR,50%=3 800EUR a 95%=5 960EUR.

Tyto hodnoty jsme nezávisle překontrolovali konečným binomickým součtem, nikoli prohlásili za náhodný experiment. Odpovídající K jsou 94,98,110,122. Konečná náhodná simulace se kolem modelových hodnot může lišit. Pravděpodobnost 0,55 není naměřena u konkrétní strategie a 200 obchodů nemusí být jeden kalendářní rok.

Sestavení jedné cesty v Excelu

Následující zdrojový zápis používá anglickou syntaxi Excelu. A1=0.55, A2=100, A3=−80, A4=10,000 představují parametry, pevné čisté výsledky a počáteční kapitál. Do C1 vložte =$A$4, do D1 =C1, E1 je 0. První řádek tedy není obchod, ale počáteční stav.

B2: =IF(RAND()<$A$1,$A$2,$A$3)
C2: =C1+B2
D2: =MAX(D1,C2)
E2: =(D2-C2)/D2
Maximum propadu: =MAX(E1:E201)
Příklad kvantilu: =PERCENTILE.INC(range,0.95)

Zkopírujte B2:E2 až do řádku 201, tedy přesně 200 obchodů; konečný kapitál je C201. Pro další cestu kopírujte celý blok B:E včetně počátečního řádku a zachovejte absolutní odkazy $A$. České názvy funkcí a oddělovače závisejí na nastavení aplikace; neměňte bez kontroly význam desetinné tečky v ukázce.

U kladně zapsaných velikostí propadu vybírá 0.95 horní nepříznivý ocas. U koncového kapitálu hledáte nepříznivou dolní část například 0.05 nebo 0.01. PERCENTILE.INC může interpolovat. RAND se při přepočtu mění, proto uchovejte vylosované hodnoty a parametry. Peněžní model potřebuje před praktickým použitím zvláštní pravidla zastavení, marže a nedostatečného kapitálu; samotný list je neobsahuje.

Python, bootstrap a společná náhodná čísla

Bootstrap vybírá z historie zaznamenaných výsledků, ne pouze z přidělené pevné výhry a ztráty. Vhodné vzorce umí historický výběr i v Excelu. Pro definovanou neprázdnou historii čistých peněžních výsledků může NumPy použít tyto zdrojové příkazy:

new_sequence = rng.choice(history,size=200,replace=True)
equity = np.concatenate(([initial_capital], initial_capital + np.cumsum(new_sequence)))

Nejdříve pro každou cestu určete průběžné vrcholy a propady, potom agregujte maxima. Uložte data, seed, verzi knihovny, horizont, měnu, náklady, sizing a podmínky zastavení. Více cest omezuje numerický šum, nevytváří nová pozorování trhu.

Kontrolované porovnání může sdílet stejné rovnoměrné U. Výsledek je+1 při U pod prahem, jinak−1; fiktivní A má práh 0,55 a B0,60. Očekávání jsou 0,10 a 0,20, rozdíl 0,10. Při společném U je B−A rovno+2 jen pro 0,55≤U<0,60, jinak 0: rozptyl 4×0,05−0,10²=0,19. S nezávislými losováními se sčítají rozptyly 0,99+0,96=1,95. Menší šum tohoto porovnání neověřuje pravděpodobnosti trhu a metoda nemusí pomoci libovolným dvěma strategiím.

Jednotlivé losování s vracením zachová možné historické hodnoty, nikoli jejich pořadí a shluky ztrát. Zvažte bloky nebo samostatné stresové scénáře, jsou-li závislosti významné. Pevné peněžní výsledky nejsou tentýž experiment jako riziko pokaždé přepočtené z nové equity.

Co simulace nemůže dodat

Nový samostatný CZK test rozsahu modelu: fiktivní historie čistých výsledků obsahuje+100,+100,−50Kč. Při deseti výběrech s vracením, pevné velikosti a počátku 10 000Kč je nejnižší možný konec 9 500Kč: desetkrát−50. Ani miliarda cest z těchto tří hodnot nevytvoří jednu ztrátu−1 000Kč. Samostatný stres−1 000Kč by vedl na 9 000Kč; není to další bootstrapový odhad a nepřidělujeme mu pravděpodobnost. Nula překročení hranice 9 000 v omezeném modelu neprokazuje nulové živé riziko.

Jednoduchý nezávislý model předpokládá stálé rozdělení, ale Monte Carlo obecně může zahrnovat závislosti a změny režimů; ty je nutné samostatně vymezit a prověřit. Omezená historie nemusí obsahovat budoucí šok. Zkoumejte i souběžné expozice, náklady, nevyplněné pokyny a mezery.

Walk-forward organizuje postupná vývojová a evaluační období, automaticky neodhalí zánik výhody a již prohlédnutá data nezmění na čerstvý test. Modelový kvantil není zaručený strop ani prokázaná dolní hranice živého propadu. V ideálním modelu přesné 5% ztráty z aktuálního kapitálu při každém neúspěchu zůstává kapitál po konečném n roven počátku×0,95ⁿ, tedy kladný. Praktický limit marže, zastavení nebo větší ztráta model mění.

Čtyři kroky před interpretací výsledku

  1. Vymezte historii, náklady, riziko a pokrytí. Malý vzorek zvyšuje nejistotu, ale nemáme univerzální hranici 100 obchodů; neobchodujte jen kvůli počtu.
  2. Ručními třemi kroky ověřte konce i propady, poté uložte jeden náhodný vzorek. Hodina práce ani 1 000 běhů není důkaz přiměřenosti modelu.
  3. U kladného propadu vyšetřujte 95.kvantil, zahrňte počáteční equity a sizing. Menší riziko může modelový propad snížit, ale konkrétní změnu znovu přepočítejte; nezaručujte přímou úměru.
  4. Před srovnáním staré a nové historie zaznamenejte změnu jednotek, pokrytí a nákladů. Nižší medián sám neurčuje příčinu změny živé výhody. Navazuje jednotná statistika a řízení rizika.