Analýza portfolií pomocí open source projektu pyfolio
Sledovat výsledky obchodování optikou portfolií je krok, který každému obchodníkovi maximálně doporučuji. Pozornost se velmi záhy přesune od snahy optimalizovat vstupy a výstupy dílčích systémů k reálnému řízení risku a stabilnějším reálným výsledkům. Analýza portfolio obchodování přitom není v zásadě nijak náročná. Sám pro tyto účely nejvíce používám bezplatné pyfolio, se kterým můžete také začít hned pracovat.
Důrazu na obchodování systémů v portfoliu se na Finančníkovi věnujeme dlouhodobě. Důvod je jednoduchý – je opravdu mizivá šance, že začnete obchodovat s jedinou strategií na jednom trhu a budete dlouhodobě vydělávat bez hlubokých drawdownů. Jednoduše proto, že pokud by takový přístup existoval, velmi rychle jej objeví ostatní a svým obchodováním jej „vyruší“. Hodně začínajících obchodníků se toto snaží vyřešit optimalizací parametrů, které poskytují na historických backtestech krásně vyhlazené equity křivky, což ale samozřejmě nezaručuje pozitivní výsledky do budoucna. Spíše naopak.
Řešení? Spíše než na hledání dokonalého systému je lepší zaměřit se na obchodování jednoduchých systémů a pozornost směřovat k jejich skládání do portfolia. V tomto ohledu spočívá v obchodování jediný svatý grál, který jsem objevil. Vhodným poskládáním nízko korelujících strategií můžeme dosáhnout takového výsledného efektu, který není dlouhodobě dosažitelný s použitím jedné strategie na jediném trhu (pro inspiraci doporučuji shlédnout video zaměřené na přínos diverzifikace zmíněné v tomto článku).
Mnoho neúspěšných obchodníků od práce s portfolii odrazuje skutečnost, že běžné retailové programy nejsou tímto směrem příliš vybaveny. A je tak třeba investovat do dalších řešení, které vždy bývaly poměrně dost drahé.
Naštěstí se časy poslední roky hodně změnily. S rychlým nástupem Pythonu do finančního světa lze dnes nalézt velmi pokročilá řešení, která jsou navíc k dispozici zcela zdarma. Sám používám pyfolio.
Jde o open source řešení pro Python, které dokáže poskytovat všechny potřebné metriky a pohledy, které pro analýzy potřebuji. A co pyfolio neumí, není problém v Pythonu dotvořit.
Mé řešení portfolio analýzy pak vypadá následovně:
- Z různých analytických programů (hlavně Amibroker a TradeStation) vytvářím backtesty, které si ukládám na disk v csv formátu.
- Pyfolio spouštím v bezplatném interaktivním prostředí Jupyter Notebook.
- Následně si do Jupyter Notebooku nahraji uložené csv formáty, jednotlivé systémy spojím do portfolií (včetně možností sledování korelací, nastavení vah atd.).
- Spustím pyfolio a za chvíli mám portfolio analýzu hotovou.
Co pyfolio umí?
Samozřejmě poskytovat všechny tradiční statistiky výkonnosti, risku a metriky vizualizovat. Takto například vypadá analýza miniportfolia tří systémů vyučovaných v rámci workshopu swingového obchodování:
Velmi praktická je možnost sledovat samostatně výkonnost in-sample a živého obchodování. Navíc v porovnání se zvoleným benchmarkem (podrobněji viz článek Hledáte odpovědi? Ptejte se benchmarků).
Sám v rámci obchodování především sleduji risk a vyhodnocuji tak volatilitu portfolia vs. benchmarku:
Pokud si nebudete jisti, jestli se vaše živé obchodování vyvíjí v intencích backtestu, můžete například porovnávat rozložení distribucí obchodů:
A pochopitelně toto není zdaleka vše – viz dokumentace k pyfolio.
Za mě tak jednoznačně doporučuji pyfolio vyzkoušet a používat. Portfolio pohled patrně navždy změní způsob, jak se na trading budete dívat.
Pokud byste váhali s technickou aplikací, tak jsem pro vás do TechLabu umístil tutoriál s kompletním Jupyter Notebookem tak, jak ho sám využívám. Navíc s kompletními kódy, které mi pomáhají získávat data do pyfolia z Amibrokeru.
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 fondu, který spravuje.