Od neúspěšného systému k ziskovému portfoliu (včetně trading simulátoru)
Jeden z principů, který připomínám začínajícím traderům stále dokola je, že na jednotlivých obchodech příliš nezáleží. A jednotlivé obchody nelze "pilovat" k dokonalosti.
DůležitéTrading je business založený na dlouhodobých pravděpodobnostech a pravděpodobnosti přicházejí ve spojení s konkrétním riskem.
Vím, že mnoho začínajících obchodníků má pocit, že vztah mezi pravděpodobností a riskem mohou ovlivňovat svými schopnostmi. Tedy například, že se naučí vyhledávat jednoduché cenové patterny s vysokou úspěšností a vysokým poměrem průměrného zisku na občasné ztráty. To je ale typický příklad kognitivního zkreslení, kterým se všichni více či méně necháváme ovlivňovat. Jedním z nejznámějších kognitivních zkreslení spojených s přílišnou sebedůvěrou je "overconfidence bias" (zkreslení přehnané sebedůvěry). To vede zejména začínající obchodníky k přecenění vlastních schopností, dovedností nebo informací. V kontextu tradingu může tento jev vést k rozhodování na základě nedostatečných nebo nesprávných informací, protože obchodník si myslí, že ví víc, než ve skutečnosti ví. Například trader může přecenit svou schopnost předpovědět pohyb trhu, a může tak podstupovat zbytečná rizika. Třeba proto, že z příspěvků na sociálních sítí má pocit, že to „musí jít“.
Jednoduše řečeno – některé věci v tradingu kontrolovat můžeme, jiné nikoliv.
Jednou z oblastí, kterou v tradingu kontrolovat nemůžeme, je výrazné zvyšování výkonnosti běžných obchodních přístupů, aniž bychom nezvyšovali risk.
Sám obchoduji mnoho strategií. Mám rád například swingové mean reversion akciové strategie. Obchoduji je ale prakticky v té nejjednodušší možné podobě. Protože vím, že v reálném světě není cesta, jak zvýšit jejich výkonnost například 5x, aniž bych podstatným způsobem nezvyšoval risk (a to třeba skrytou cestou, kterou neuvidím v backtestu, protože testy vedoucí k podobné výkonnosti budou jednodušše přeoptimalizované).
Výkonnost proto vždy posuzuji ve vztahu k risku. Metrik, jak to dělat, je celá řada. Osobně používám sharpe ratio. To velmi stručně řečeno udává poměr průměrné výkonnosti k průměrnému risku a opravdu hodně volně bychom mohli říct, že strategie se sharpe ratio 1 může mít průměrnou výkonnost například 20 % při max. drawdownu také cca 20 %, nebo 10 % při max. drawdownu také 10 % (sharpe ratio v praxi nepracuje s drawdownem, ale volatilitou výnosů).
Strategie, které živě obchoduji, mají sharpe ratio někde mezi 0,5-1,5.
Začínající obchodníci často hledají strategie, které budou mít sharpe ratio „v nebesích“ – například doufají v průměrné zhodnocení 100 % při maximálním drawdownu 5 %. To je upřímně s běžně dostupnými strategiemi naprosto nereálné.
A čas v trzích vás naučí, že ani nemá smysl se pokoušet podobným směrem strategie posouvat.
Cesta, jak výkonnost zvyšovat, je diverzifikace v rámci portfolií.
Tím, že budete postupně obchodovat více nekorelujících strategií, zachováte jejich výkonnost, ale celkový risk bude klesat. Sharpe ratio se bude zvyšovat.
Velmi dobře to v krátkém videu vysvětluje Ray Dalio (americký miliardář a významný hedge fund manager):
https://www.youtube.com/watch?v=Nu4lHaSh7D4
Ray ukazuje, že to, co ovlivňuje celkový risk našeho obchodování, je počet systémů (nebo zdrojů příjmů) a jejich korelace.
To je mentální posun, který je potřeba si v tradingu osvojit. Je potřeba odpoutat pozornost od jednotlivých obchodů a začít přemýšlet o systémech pracujících v celku.
Na první pohled to nemusí vypadat složitě. Ale úplně snadné to není. Je potřeba vytvořit workflow, které zajistí, že jednotlivé systémy spolu dobře fungují, že se příkazy zadávají bez chyb, že dokážeme vše spolehlivě vyhodnocovat a podobně. Rozhodně to ale není nepřekonatelné. Podstatné je, do jaké oblasti trader zaměřuje svoji pozornost.
V pochopení důležitých a méně důležitých věcí v tradingu mohou pomoct také simulace.
Na Google Colabu s vámi sdílím svůj python simulátor náhodného obchodování.
Naleznete jej na této adrese:
https://colab.research.google.com/drive/1eLZr0-UuCx6srHLkF4QM0L_1LB5XvnzT?usp=sharing
Skript si uložte na svůj Google Drive a můžete jej spustit černou šipkou v záhlaví. Pak stačí vyplnit příslušná políčka a kliknout na „Spočítej“:
Prostředí je jednoduché. Skript generuje hypotetické systémy podle zadaných parametrů. Průměrný roční výnos 0,2 říká, že generujeme systém průměrně generující 20 % p.a. Pak je důležitá roční volatilita. Hodnota 0,2 stručně řečeno znamená, že můžeme očekávat drawdown cca 20-30 %. Dále zadáme počet let v simulaci a počet generovaných strategií.
Klikneme na Spočítej a dostaneme například podobný graf:
Je zde daný počet equity křivek, které jsou vygenerované náhodně, ale s výchozími parametry výnosnosti a risku.
Některé systémy z principu vydělávají více, jiné méně. Pod tabulkou naleznete základní pohled na výnos a risk:
CAGR mean: 21,13 %
CAGR max: 30,97 %
CAGR min: -0,69 %
Drawdown max: 40,15 %
Drawdown min: 21,95 %
Drawdown mean: 30,31 %
Hodnoty se pochopitelně liší s každým během skriptu (křivky jsou generovány náhodně), ale rámcově budou při stejných parametrech vypadat podobně. Zde vidíme, že drawdown systémů se pohyboval v rozmezí 21,95 – 40,15 %. Výnosnost od -0,69 % do 21,13 % (ano, jedna strategie ztrácela podobně, jako se nám to bude dít na živých účtech).
Všech deset systémů má průměrné zhodnocneí 21,13 % při průměrném drawdownu 30,31 %. To je relativně realistický poměr.
Pokud ale v živém obchodování budete obchodovat se systémem, který má průměrné zhodnocení 21,13 % při drawdownu 30,31 %, není skutečně způsob, jak snížit drawdown nějakými "pokročilými taktikami" třeba na polovinu.
Až na jedinou taktiku. Doslova hlavní „svatý grál“ tradingu, který se odehrává na úrovni portfolia.
Řekněme, že bychom každé strategii přiřadili 1/10 kapitálu (na ukázce pracujeme s 10 strategiemi) a obchodovali je všechny najednou. Výkonnost portfolia by pak vypadala následovně:
Max Drawdown: -4.90 %
CAGR: 23.05 %
Annual Volatility: 5.23 %
Celkové portfolio má najednou průměrné roční zhodnocení 23,05 % při maximálním drawdownu -4,90 %.
Věřím, že tento příklad hovoří za vše a maximálně doporučuji, abyste si s testerem hráli chvíli sami.
Jsem přesvědčen, že po čase každému obchodníkovi začne docházet, jak hodně záleží na kombinaci strategií do celku (portfolia) a jak minimálně jsou podstatné jednotlivé obchody.
Samozřejmě, že praktická implementace portfolií systémů má mnoho aspektů, které musíme řešit a sdílený python skript problematiku přibližuje jen ve zjednodušené a teoretické rovině. V praxi musíme systémy vytvářet, řešit rozdělování kapitálu mezi strategie, zajišťovat nízkou korelaci, systematicky obchodovat mnoho signálů atd.
Podstatné ale je, kam ve svém tradingu zaměřujete pozornost – na precizování např. vstupních situací nebo na pilování portfolia jako celku...
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.
- 8