Jump to content
Co nového? Mé kurzy
Články a tutoriály:
Hledat v
  • Více možností...
Najít obsah, který ...
Hledat výsledky v ...
Seriály Komoditní Manuál Psychologie obchodování
  • 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:

    mc_1.gif
    Původní výsledky tak, jak byly vygenerovány v trhu.

    mc_2.gif
    První simulace náhodného zpřeházení výsledků systému.

    mc_3.gif
    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

    mc_setup.gif

    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.

    mc_vysledek.gif

    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ů.

    mc_agresivni.gif

    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ů.

    5.4.2006

    Petr Podhajský

    Fulltime obchodník věnující se tradingu více než 15 let. Specializace na systematické strategie obchodované na futures a akciích. Oblíbený styl obchodování - intradenní s využitím orderflow. Poslední roky pak stavba automatizovaných portfolio systémů.


    Mohlo by vás dále zajímat

    Nejistota a trading

    Jedna z velkých psychologických výzev obchodování vychází ze skutečnosti, že riskujeme nemalé peníze a přitom neustále čelíme velké míře nejistoty. S jistotou nevíme nic – jestli náš systém ještě funguje, jestli se něco technicky nepokazí, jestli nemáme chybu ve vstupních datech atd. Jak se na toto připravit a nejistotu zvládnout?
    Většina nových obchodníků přichází k tradingu ze světa plného jistot. Pokud se člověk nesnaží příliš vybočit, tak do určité míry bude celý jeho běžný život naplánovaný a nalinkovaný. Lidé mají práci, do které musí chodit na určitou hodinu. Mají zde jasně nastavené postupy, které následují. V určitou hodinu padla a za odvedenou práci dostanou začátkem každého měsíce jasně danou mzdu. Samozřejmě, že občas nastane pro někoho nepříjemná a nenadálá událost, která mu životem zalomcuje. Ale vesměs je běžný chod života do velké míry zajetý v jasných kolejích, kde většinu událostí lze předvídat a ovlivňovat.
    Trading takový není.
    Jistoty zde budete hledat jen velmi těžce. Spíš bych se nebál trading dnes označit jako trvalou systematickou nejistotu. Věci fungují, ale jen s určitou pravděpodobností. A bohužel to neplatí jen o obchodních systémech. Ale prakticky o všem, s čím v tradingu pracujeme.
    Například technika, data, software, brokeři. Většina retailových traderů pracuje s omezenými rozpočty a používá low-endové nástroje – byť to neznamená, že by to byla k jejich finančním možnostem vždy levná řešení. A low-endové nástroje mívají své mouchy. Data občas nemusí být přesná a budou se občas rozcházet s drahými zdroji. Software čas od času neprovede příkaz, jak by měl. Nebo prostě sami způsobíme v tradingu chybu, která jde mimo plán a stojí nás peníze.
    Pokud se budete v obchodování snažit soustředit na odchytání všech nejistot, nemáte reálně šanci vydělávat peníze.
    Nejistoty je potřeba přijmout a pracovat s nimi. Obchodování nikdy nebude proces, ve kterém budete mít vše plně pod kontrolou.
    Jak na to?
    Asi nejlepší cesta k „překonání nejistot“, kterou jsem se v trzích naučil, je zapracovat nejistoty rovnou do obchodních plánů.
    Například backtesty nevyhodnocuji z pohledu jedné dosažené equity křivky, ale z pohledu různých možných scénářů. Používám pro to monte carlo analýzu, resp. tzv. bootstrapping. Dělám-li pro sebe v tradingu jakékoliv predikce – například možné výkonnosti a rizikovost portfolia nebo obchodního systému na základě historického backtestu nebo nedávné výkonnosti – nepoužívám jednu historickou sadu výsledků. Historické výsledky nejprve nechávám pečlivě promíchat (nejčastěji 1 000x) a současně používám nástroje, které do výsledků zamíchají nahodile nepřesnosti. Například tak, že zcela náhodně některé výsledky historických obchodů vyhodí a jiné duplikují. Výsledkem takového procesu je mnoho (např. 1 000) equity křivek, které de facto reprezentují možné budoucí vývoje strategie při zapracování náhody.
    Zní vám to zvláštně? Pak první, co musíte v tradingu skutečně přijmout je fakt, že historie se nikdy nebude opakovat. Co se může opakovat, je určitá míra pravděpodobnosti inkasování určitého zisku nebo ztráty. Zkuste si například zaznamenávat různé průběhy 100 hodů kostkou. Pravděpodobnosti zobrazení určitého čísla jsou jasně dané, přesto budete často dostávat různě dlouhé, často až bizarní série, kdy se jedno číslo objevuje stále dokola a jindy se neobjeví vůbec. Budoucí výsledky vycházející z historických pravděpodobností mohou mít výrazně odlišné podoby. Zejména, pokud do nich zapracujeme ještě prvek náhody, která náš trading ovlivňuje každý den.
    Takto například může vypadat dvouletá „predikce“ výkonnosti jednoho z mých systémů:

    Graf vypadá dost nepřehledně, a to je v něm pro ilustraci zobrazeno jen 50 možných equity křivek. Křivek vycházejících z historické výkonnosti systému, do které ale počítač zanesl i určitou míru náhody – některé obchody vypustil, jiné zdvojil. S určitou mírou pravděpodobnosti mě v budoucnu u systému může potkat libovolný z uvedených scénářů.
    Pokud v budoucnu očekáváte přesnou kopii historické výkonnosti svého systému, pak vás realita s naprostou jistotou vyvede z omylu.
    Výše uvedený graf poměrně dobře vypovídá o nejistotě, které coby obchodníci čelíme. A paradoxně nám z ní může dobře pomoci ven.
    Velké množství různých variant budoucího vývoje lze vyhodnocovat. Mohli bychom se například podívat, jaký nehorší výsledek simulace přinesla. Nebo se spíše dívat na realističtější kumulovanou pravděpodobnost – u risku mě například zajímá nehorší výsledek, který byl dosažen u 95 % simulovaných průběhů. Podobně to dělám i na straně zisků v případě očekávaných výsledků. Při následném obchodování systému pak očekávám určitou míru zhodnocení při podstoupení určitého risku.
    Výsledkem celého procesu je tak například očekávání až 30% zhodnocení při 5% pravděpodobnosti až 25% drawdownu.
    A podobný pohled je z pohledu přístupu k nejistotě velmi osvobozující:
    Především vím, že jsem výsledky získal při zohlednění náhody. Pokud se v živém obchodování vyskytne nějaký problém (například mi neproběhne exekuce obchodu, vypadnou data atd.) vím, že se nic neděje. Do určité míry s danou skutečností již v systému počítám. Nefixuji se na přesná čísla historické výkonnosti, která se jen málokdy budou opakovat v budoucnosti. V očekávání již pracuji s nejistotou – vím, že výsledky budou s určitou pravděpodobností v určitém rozsahu. A samozřejmě podobný proces velmi pomáhá v testování robustnosti přístupů. Pokud přidaná „náhoda“ výsledky rozbije pod přípustnou mez, tak vím, že v daném přístupu vůbec nebudu chtít riskovat reálné peníze. Podobné analýzy lze dělat v momentě, kdy máme k dispozici dostatečnou historii obchodů. Tu můžeme získat backtesty, nebo lépe živým obchodováním. Lze je tak používat jak v systematickém, tak diskréčním obchodování.
    Pokud vás občas trápí, že nemáte v tradingu věci pod kontrolou, zkuste použít výše uvedené techniky. Ty by vás měly přesvědčit již při testování systémů o tom, že kvalitní systém s dobrým risk managementem dokáže vstřebat poměrně solidní dávku nepřeveditelné náhody a jediné, co je potřeba pro vydělávání peněz dělat, je skutečně systematicky dlouhodobě systém následovat.
    To je způsob, jak se v trzích vydělávají peníze. Byť vám to nemusí být z počátku příjemné, tak v reálném tradingu nikdy nebudete mít vše pod kontrolou a nikdy nepůjde vše podle předem připravených plánů a testů. 
×

Důležitá informace

Na tomto webu zpracováváme cookies potřebné pro jeho fungování a analytiku, v případě udělení souhlasu také cookies pro účely cílení reklamy.