Pracujeme s MSA - Monte Carlo simulace
Equity křivka našeho konkrétního obchodního systému vyjadřující historické výsledky má nespornou vypovídající schopnost, ale současně i své limity. Především reflektuje jednu jedinou konkrétní historickou posloupnost obchodů. Je zřejmé, že určité parametry našeho obchodního systému mohou být v delším časovém horizontu relativně konstantní (např. pravděpodobnost ziskového obchodu, průměrná ztráta, průměrný zisk atd.). Co se však jednoznačně v budoucnu při dalším obchodování systému změní, je posloupnost, s jakou budou jednotlivé zisky a ztráty přicházet. Je víceméně jisté, že tato posloupnost bude v budoucnu odlišná od té, kterou náš systém realizoval v minulosti a přitom posloupnost realizovaných zisků a ztrát může mít ohromný vliv na průběh equity křivky - zejména pokud na ni aplikujeme position sizing (obchodování s více kontrakty).
Robustní systém pak musí být obchodovatelný při libovolné změně pořadí inkasovaných zisků a ztrát. K analýze takové robustnosti můžeme opět použít postupně recenzovaný program Market System Analyzer.
Základní představu o problematice si můžete udělat z následujících screenshotů. Jde o výsledky stále stejné obchodní strategie (popisované v minulém díle seriálu), avšak zobrazené v různé posloupnosti (v programu MSA stačí kliknout na tlačítko Randomize, které způsobí "zamíchání" výsledků obchodů; chcete-li dostat původní sekvenci obchodů, stiskněte tlačítko Restore). Na screenshotech jsou zobrazeny výsledky systému při obchodování jednoho kontraktu - proto je výsledný zisk stále stejný, avšak změna pořadí inkasovaných ztrát a zisků může výrazně ovlivnit celkovou charakteristiku systému:
Původní výsledky tak, jak byly vygenerovány v trhu.
První simulace náhodného zpřeházení výsledků systému.
Druhá simulace náhodného zpřeházení výsledků systému.
Na pravé liště jednotlivých screenshotů si můžete všimnout, že pouhé zpřeházení výsledků obchodního systému výrazně ovlivňuje důležité parametry systému jako je drawdown či délka série ztrátových obchodů. A to stále obchodujeme pouze s jedním kontraktem.
Naštěstí existuje způsob, jak s určitou pravděpodobností analyzovat, jakých nejhorších výsledků systém dosahuje i v případě, že naprosto zpřeházíme posloupnost obchodů. Metoda se jmenuje Monte Carlo simulace a její princip je velmi jednoduchý - počítač v rámci Monte Carlo simulace propočte obrovské množství kombinací různých posloupností daného obchodního systému a zobrazí nám úroveň spolehlivosti dané strategie při jednotlivých zobrazených parametrech.
V tuto chvíli je patrně potřeba zdůraznit, že Monte Carlo simulace není vynález programu MSA ani obchodníků s komoditami. Jde o standardní statistický algoritmus pro simulaci nejrůznějších fyzikálních a matematických systémů a jako takový má samozřejmě své podrobné matematicko-statistické principy a zákonitosti. Těm se však na Finančníkovi věnovat nebudeme, jelikož pro trading je podstatná především aplikace samotného systému. Pokud vás podrobnosti o Monte Carlo simulaci zajímají, pak mohu doporučit jako startovní bod studia např. wikipedii: http://en.wikipedia.org/wiki/Monte_Carlo_Simulation
Parametry Monte Carlo simulace se nastavují v programu MSA pomocí menu Analysis > Setup> záložka Options. Políčko Analysis samples určuje počet kombinací, které program simuluje (čím vyšší číslo tím je výsledek přesnější, ale o to déle výpočet trvá), confidence level for reporting specifikuje úroveň spolehlivosti, pro kterou se zobrazí podrobné výsledky.
Screenshot zobrazuje výsledek Monte Carlo analýzy našeho obchodního systému. V horní části screenshotu jsou rekapitulovány parametry nastavení systému a Monte Carlo analýzy, zásadní informace jsou zobrazeny v prostřední části.
Zde vidíme nejhorší výsledky systému pro konkrétní úrovně spolehlivosti. Zobrazená tabulka nám např. říká, že v 50 % testů byl nejhorší drawdown 13,57 % hodnoty účtu, v 90 % testů byl nejhorší drawdown 20,44 % hodnoty účtu, v 99 % testů byl nejhorší drawdown 28,82% atd. Výsledky zobrazené na screenshotu mají konstantní parametr rate of return (míra výnosnosti), protože v tuto chvíli analyzujeme systém pracující pouze s jedním kontraktem a tak výsledný zisk systému není ovlivněn změnou pořadí jednotlivých obchodů.
Většina obchodníků posuzuje výsledky Monte Carlo analýzy s ohledem na 95% úroveň spolehlivosti. Z tohoto pohledu bychom mohli říci, že přestože náš původní systém dosáhl drawdown 11,75% kapitálu, s 95% pravděpodobností tento drawdown při pokračující charakteristice systému nebude horší než 21,76%, což je stále velmi slušné.
Významnost testů typu Monte Carlo se projeví zejména při analýze systémů s position sizingem. Jak již na Finančníkovi mnohokrát zaznělo, představuje tento matematický model, určující pravidla podle kterých přidávat jednotlivé kontrakty, alfu-omegu úspěšného tradingu. Bez position-sizingu se v tradingu nevydělávají skoro žádné peníze, příliš agresivní formule pro přidávání kontraktů může být pro obchodní účet velmi nebezpečná. Proto nás v případě testování systémů s aplikovaným position sizigem zajímají nejen aktuální výsledky jednoho nastavení, ale také výsledky Monte Carlo analýzy - neboli, jaké nejhorší výsledky můžeme očekávat, pokud v systému zpřeházíme posloupnost jednotlivých obchodů.
Pomocí programů typu MSA můžeme simulovat nejrůznější aplikace money-management vzorců. Řada velmi agresivních přístupů (na screenshotu výsledky vzorce "Kelly Formula") může dosahovat sice hvězdných výsledků, ale jak je vidět na výsledcích Monte Carlo analýzy - s 95% pravděpodobností můžeme očekávat např. drawdown až 82% kapitálu, což je charakteristika, kterou lze jen těžko v trzích obchodovat. Mimochodem - jednotlivým formulím MM se budeme věnovat v dalším díle seriálu, pokud s nimi budete experimentovat již nyní, nezapomeňte si v programu nastavit slippage a komisi, které jsou v případě money-managementu aplikovány na každý otevřený kontrakt a mohou dělat ohromný rozdíl ve výsledcích (nastavení viz minulý díl seriálu). Samozřejmě, že konzervativnější metody position sizingu, které se běžně obchodují, jsou "někde uprostřed" - nedosahují tak hvězdných úspěchů, ale zase mají přiměřený a obchodovatelný drawdown.
Závěr
Monte Carlo analýza má řadu podob a využití. V tomto článku jsme si ukázali princip, který je možné dále rozvíjet. Programy typu MSA umí výsledky obchodních systémů např. nejen analyzovat, ale i vyhledávat optimální parametry zaručující ještě dostatečnou stabilitu systému právě např. s použitím Monte Carlo analýzy. Ale jako všechny přístupy, také Monte Carlo analýza není nějakým jednoznačným všelékem - je třeba ji brát pouze jako určitý statistický nástroj, aplikovat ji především na relevantní vzorek dat a výsledky zkoumat v celkovém kontextu. Někde jsem četl, že money-management je ten nejkvalitnější obchodní systém, který je na světě k dispozici, a jednoznačně se pod toto mohu podepsat. Je zřejmé, že mnoho nováčků má ještě hodně daleko k tomu, aby svůj systém obchodovali s použitím position sizingu, ale rád bych zde ještě jednou zdůraznil, že by to nikomu nemělo bránit money-management studovat a zkoušet jej aplikovat na své dosavadní výsledky. Tento přístup může pomoci překonat klasické a pro mnoho obchodníků velmi zrádné období hledání "svátého grálu", kdy má každý tendenci hledat co nejzaručenější systém, který vydělává s jedním kontraktem miliony dolarů. Monte Carlo analýza pak může být jednoduchou pomůckou pro základní analýzu získaných výsledků.
Petr Podhajský
Fulltime obchodník věnující se tradingu více než 20 let. Specializace na systematické strategie obchodované na futures a akciích. Oblíbený styl obchodování: stavba automatizovaných portfolio systémů, které využívá i při správě většího externího kapitálu.