V tomto článku
Po přečtení dokážete…
- Oddělit vylosované výsledky od kroků skutečně provedených před zastavením.
- Spočítat propad včetně počáteční equity a zvolit správný ocas kvantilů.
- Rozlišit numerický šum simulace od nejistoty a neúplnosti samotného modelu.
Vysvětlení pojmů přímo v článku
Backtest: historický test pravidel Drawdown: pokles od předchozího vrcholu Obchodní plán Expectancy: očekávaný výsledek Výpočet velikosti poziceBacktest 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
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
- 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.
- 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.
- 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.
- 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.
Ověřte si, co jste se naučili
Přibližně 2 minut procvičování.
Zobrazit odpověď a vysvětlení
Po 1 000−150=850 se podmínka vyhodnotí a další dva výsledky se nepřičítají.
Další otázky
Co simulace obchodní strategie znamená?
Opakovaně vybírá z definovaného modelu. Promíchání všech pevných peněžních výsledků zachová součet; výběr s vracením může změnit i součet. V uvedeném 200 obchodovém modelu p=.55, výhra 100EUR a ztráta 80EUR dávají očekávání 19EUR na obchod a přesný 5.kvantil zisku 1 640EUR podle vymezené binomické konvence. Není to pozorovaný běh nebo důkaz budoucí distribuce.
Jak ji sestavit v Excelu?
Řádek 1 ponechte jako počáteční stav C1=$A$4,D1=C1,E1=0. Parametry A1=.55,A2=100,A3=−80,A4=10 000. Použijte uvedené vzorce B2:E2 a kopírujte do 201 pro 200 obchodů. MAX(E1:E201) dává maximum propadu. Pro další cestu kopírujte celý blok a uchovejte vzorky před přepočtem. Názvy funkcí a oddělovače závisejí na jazyku aplikace.
Jak ji implementovat v Pythonu?
Nejdříve data a model. Neprázdnou peněžní historii lze vybírat rng.choice(history,size=200,replace=True), k cestě přidejte počáteční kapitál před výpočtem vrcholů. Samostatné výběry ruší původní pořadí a nezachovají shluky ztrát ani nepozorované extrémy. Uložte seed, verzi, jednotky, poplatky a zastavení; nejprve projděte deterministický příklad.
Jaké jsou podstatné meze?
Výsledek je podmíněn daty i modelem. Jednoduchý nezávislý bootstrap nemá závislosti a neumí vytvořit chybějící šok. Monte Carlo může použít i závislé nebo proměnlivé modely, jejichž předpoklady je nutné ověřit. Kvantil není garantovaný živý strop ani spodní hranice propadu a sizing podle něj nezaručuje přežití skutečné ztráty.
Zdroje a ověření
- Python — Promíchání posloupnosti
Čerstvě přečten relevantní oddíl random.shuffle 109–115: mění pořadí existující posloupnosti. Podmínka zastavení je naše vlastní modelová část, nikoli chování funkce. Ne celá 523 řádková dokumentace.
- NumPy — Výběr s vracením
Čerstvě přečteny relevantní parametry 112–131 a upozornění na různé samplery. replace=True dovoluje opakování hodnot. Náhodná NumPy simulace zde nebyla spuštěna; nezávislý přesný binomický součet je oddělený důkaz.
- Microsoft — Kvantil a interpolace Excelu
Čerstvě přečten relevantní krátký popis PERCENTILE.INC a interpolace. Nejde o aplikovaný test sešitu; uvedená diskrétní binomická konvence je jiná explicitní definice než interpolované empirické kvantily.
- Microsoft — Přepočet RAND
Čerstvě přečten popis rozsahu 0≤U<1 a nového výsledku při přepočtu listu. Neznamená to záruku opakování celé historie bez uložení hodnot.
- NIST — Binomický model
Relevantní předpoklady již čteny v tomto auditu. Model 200 nezávislých pokusů s p=.55 je hypotetický; přesné kumulativní součty byly přepočteny samostatným Decimal 60 skriptem, nikoli převzaty jako pozorované tržní frekvence.
Výpočty používají výslovně uvedené předpoklady. Nenahrazují aktuální tržní údaje ani podmínky poskytovatele.
