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í
  • 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í:

    Portfolio analýza systémů z 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:

    Portfolio volatilita vs. benchmark

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

    Distribuce zisků a ztrát - živé obchodování vs. backtest

    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.

    28.6.2020

    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

    Trading Room – popis a nastavení portfolia

    Na Finančníkovi se snažím ostatní co nejvíce inspirovat pomocí vlastní praxe. Poslední měsíce vše zašlo tak daleko, že několik desítek obchodníků má zde v rámci služby Trading Room dopředu přístup k mým plánovaným obchodům, obchodním nástrojům typu automatizovaný finwin trader a pochopitelně výstupům z obchodní platformy zobrazující plnění, komise atd. Ve skupině obchoduji portfolio, jehož komentované nastavení může být přínosné pro všechny obchodníky, kteří jdou podobným směrem a přemýšlejí, jak si systematicky profitabilní trading poskládat.
    V rámci Trading Roomu obchoduji tři systémy:
    Krátkodobý mean reversion systém MR3000 držící pozice maximálně 5 dnů. Systém obchoduje long i short a vstupuje proti výraznějším denním pohybům v akciích indexu Russell 3000. Systém podrobněji popisuji zde. Intradenní mean reversion systém Finwin držící pozice pouze v průběhu denní seance. Systém obchoduje long i short. Otevřené pozice jsou ukončovány vždy na konci obchodního dne. Systém obchoduje akcie indexu Russell 3000 a kontroluji, aby nebyly obchodovány stejné pozice jako v rámci MR3000. Systém jsem velmi podrobně popsal na finwin.cz. Aktuální výsledky jsem samostatně naposledy komentoval zde. Trendfollowing systém MicroBreakout držící méně likvidní akcie. Vybírány jsou libovolné akcie obchodované na amerických burzách. Systém vstupuje do akcií tvořících nová high a drží je, dokud je v trhu rostoucí momentum. Může tak být v pozicích týdny nebo i několik měsíců. Popis systému můžete najít přes tento článek. Strategie mají historicky poměrně nízkou korelaci a jejich obchodování v rámci portfolia vedlo historicky ke snižování celkového drawdownu. Na této stránce je prezentován backtest, který sám používám pro finální obchodování. Samotný backtest má několik specifik a limitů, kterým je potřeba porozumět před zkoumáním samotných čísel:
    Zobrazen je backtest od 1.1.2015 do 15.8.2021.  Mám k dispozici i delší testy, nicméně výsledky zejména intradenní strategie Finwin jsou až příliš optimistické (dříve bylo intradenní obchodování snazší). Proto sám pracuji s více aktuálním obdobím. Zejména short strategie nemusí mít backtest zcela věrohodný. V softwaru nelze simulovat dostupnost akcií pro short, takže v reálu by některé obchody nebylo možné uskutečnit. Intradenní strategie testuji s využitím pouze denních dat. Na nich nelze poznat, které signály by byly vyplněny jako první (u Finwinu sleduji až 50 signálů, ale zobchoduji pouze prvních 5 na long a 5 na short). V rámci backtestu proto používám náhodné pořadí u plnění – každý backtest bude trochu jiný. Ovšem ve finále se liší jen detaily equity křivek, díky množství obchodů jsou finální výsledky velmi podobné. Výsledky strategie MicroBreakout v portfoliu testu nepochází z Amibrokeru a equity křivka se od té z Amibrokeru (jehož signály používám v Trading Roomu) nepatrně liší. Je to způsobeno tím, že každý software počítá trochu jinak indikátory, nepatrně jinak například zaokrouhlí některé výpočty atd. Výsledky testu jsou s komisemi (vyššími než sám platím – v testu počítám minimálně 1 dolar/pozici, případně 5 centů/akcii, pokud je částka vyšší než 1 dolar). Výsledky testů jsou bez reinvestování kapitálu – po celou dobu testu se pracuje pouze s počátečním stavem účtu. V praxi průběžně kapitál reinvestuji. U limitních příkazů je v testu vyžadováno, aby cena prošla limitní cenou o hodnotě 0.001 * Close trhu. Nestačí tedy, aby se limit ceny jen dotkl. V praxi se tak občas dostanu do profitabilního obchodu, který backtest nezachytí. Zejména short obchody nejsou v testu tříděné na fundamentální filtry, které v praxi používám. Hlavně poslední dobou filtry hodně pomáhají v obchodování shortů. Osobně tak backtest považuji za solidně věrohodný, byť jako vždy – v praxi očekávám horší výsledky zhodnocení a vyšší risk (vyšší drawdown).
    Backtest s výše uvedenými podmínkami vypadá pro celé portfolio následovně:

    Pro porovnání je zobrazen i výsledek držení trhu SPY (ten pracuje s reinvestováním, kdy pozice je měněna po dividendách). Výsledky držení SPY pochopitelně nejsou zahrnuty do výsledků portfolia zobrazených ve sloupci „Combined“.
    Použité váhy pro jednotlivé systémy jsou:
    33,3 % MR3000
    33,3 % Finwin
    33,3 % Microbreakout
    V testu byl použit počáteční kapitál 60 000 USD, což je částka, se kterou jsem začínal účet v rámci Trading Roomu. Každý systém tak vytváří pozice z částky 20 000 USD, což odpovídá i tomu, jak generuji v rámci Trading Roomu signály (kromě strategie MicroBreakout, která v Trading Roomu pracuje s reinvestováním). Systémy MR3000  a Finwin používají pro výpočet signálů dvojnásobnou páku. Velikost pozice MR3000L, kde obchodujeme max. 5 obchodů na long stranu, tak vychází z kapitálu 20 000 dolarů děleno 5 pozicemi – v Trading Roomu otevírám pozice o velikosti 4 000 dolarů na akcii.

    Hledáte cestu, jak se dostat ke konzistentním profitům?
    Rádi byste i v aktuálním kontextu obchodovali stabilně a bez emocí?
    Určitě si přečtěte novou knihu Od myšlenky k reálným obchodům
    Implementujte již od samotného začátku své praxe důležité systematické procesy a správné myšlení, které výrazně zvyšuje šance na stabilně profitabilní obchodování.
    Inspirujte se, jak trading dělat jinak a lépe. 1/3 kapitálu pro jednotlivé strategie se mi jeví jako reálně optimální nastavení portfolia. Z výsledků je patrné, že nejvíce risku je pojeno se strategií MR3000S (drawdown až 50 %), ovšem v rámci celku jsem ochotný s takovým výsledkem fungovat.
    Základní parametry testu celého portfolia – průměrné roční zhodnocení 37 % při maximálním drawdownu 10,75 %. Toto by měla být jedna z nejdůležitějších lekcí každého tradera. Spojováním nekorelujících strategií získáváme mnohem stabilnější obchodní výsledky. Podle mého názoru by každý měl obchodovat portfolio alespoň o několika strategiích – nejlépe tak různorodých, jako je to ukázáno v rámci Trading Room portfolia. Současně to znamená, že z portfolia není vhodné si vybírat „jen něco“, ale je potřeba jej obchodovat jako celek.
    Podrobnější pohled na risk portfolia
    Při pohledu na měsíční zisky/ztráty je zřejmé, že není nic neobvyklého, pokud má portfolio dva po sobě jdoucí ztrátové měsíce:

    Jako při jakémkoliv tradingu je proto potřeba toto přijmout jako fakt a není možné pochybovat například po dvou, třech týdnech, kdy systémy negenerují nové high. V praxi jen těžko budete ale hledat přístupy, které fungují každý měsíc/týden. Z mé zkušenosti je proto lepší přijmout realitu a naučit se s ní fungovat.
    Samotný drawdown portfolia osciluje mezi 5 až 10 %:

    Nyní je strategie v drawdownu, nicméně díky dodatečným fundamentálním filtrům používaných při živém obchodování mám živé portfolio na cca 60 % zobrazené hodnoty drawdownu. V každém případě sám používám období drawdownu pro navyšování kapitálu. Obecně je určitě lepší spouštět strategie, když jsou v drawdownu, než když se obchodují na novém high.
    Je ale třeba se připravit na to, že drawdowny nemusí být hned překonány. Zde je zobrazeno období (svislá osa zobrazuje počet dnů v drawdownu), které na úrovní portfolia trvá pro překonání drawdownu:

    Běžně je to cca měsíc, nicméně např. na začátku roku 2019 trval drawdown cca 4 měsíce. V případě „smůly“ se tak může reálně stát, že podobné portfolio spustím na novém účtu a 4 měsíce budu ve ztrátě. Opět naprostá realita obchodování.
    A to jde o výsledky pouze z jediného backtestu. V praxi používám k odhadu risku Monte carlo analýzy, které indikují, že za sledované období lze realisticky očekávat drawdown až cca 15 %.
    Ovšem celkově se Monte carlo výsledky jeví u Trading Room portfolia dost stabilně. Zde je 5 nejlepších a 5 nejhorších portfolio equity křivek:

    Důležité pro mě je, že jednotlivé systémy mají v případě drawdownů nízkou korelaci:

    Pokud jeden systém prodělává, je velmi pravděpodobné, že jiný alespoň trochu vydělá. Což mně osobně velmi pomáhá psychicky a v rámci portfolia se snažím systémy stavět právě i tak, abych měl výsledky co možná nejstabilnější.
    V každém případě je ale podstatné vždy obchodovat jen s takovými částkami, se kterými dokážete drawdown ustát.
    Sám kromě účtu v rámci Trading Roomu (dnes cca 70 000 dolarů, kde exekuce sdílím v rámci skupiny) obchoduji i podstatně vyšší účty v rámci svého fondu, u kterého používám podobné strategie. Ovšem ke zvládnutí drawdownů s vyšším kapitálem jsem se musel propracovat praxí. Dnes vnímám, že každé překonání trochu většího drawdownu (5-10 %) mi pomáhá v navýšení kapitálu a získání další důvěry v to, co dělám. Jsme tak opět u toho, že v tradingu je nejdůležitější praxe – obchodovat, obchodovat a obchodovat.
    Do začátku bych tak určitě začal obchodovat s nižším kapitálem – například 10 000 dolarů a soustředil se především na systematičnost a překonávání drawdownů. 15% drawdown v případě účtu 10 000 dolarů je 1 500 dolarů, což je něco, co by měl zvládnout překonat i začínající trader.
    Samozřejmě v případě nižšího kapitálu budou výsledky obchodování jakéhokoliv portfolia horší proto, že některé pozice není možné otevřít (akcie jsou příliš drahé) a především komise již ukrojí příliš velký podíl na zisku. Ale pokud přepočítám portfolio v rámci Trading Roomu na kapitál 10 000 dolarů, stejně je vidět, že i s tak nízkou částkou lze operovat, učit se a posouvat se kupředu.
    Portfolio obchodované s kapitálem 10 000 dolarů:

    A jakmile si psychika jen trochu zvykne, lze navýšit kapitál například na 20 000 dolarů, kde jsou výsledky již podstatně lepší:

    31 % průměrného zhodnocení při 11% drawdownu s počátečním kapitálem 20 000 dolarů už se příliš neliší od výsledků, které backtest indikuje u podstatně vyššího kapitálu.
    Shrnutí
    Historické backtesty rozhodně nezaručující budoucí zisky, nicméně demonstrují určité hranice, ve kterých můžeme očekávat risk a zisk.
    Živá výkonnost reportovaná v Trading Roomu velmi podobně kopíruje výsledky pro rok 2021 zobrazené v druhé tabulce. Samozřejmě s faktem, že Finwin jsme pomocí autotraderu začali ve skupině obchodovat až od začátku srpna.
    Osobně mám tak k obchodovanému portfoliu solidní důvěru. Pokud však následujete moji práci, je potřeba:
    Přizpůsobit risk vlastní psychice. Vnímat „investiční horizont“ stejně jako já – tedy na úrovni měsíců, kdy by portfolio mělo překonat i případné hlubší drawdowny.  

    Jak dnes živě obchoduji na svých účtech? [video]

    V každé praxi se člověk posouvá a hledá cesty, jak dělat věci lépe a efektivněji. V tomto videu ukáži jak obchoduji dnes a shrnu, kam jsem se za poslední roky posunul.

    Ve videu používám jeden ze svých obchodních účtů u Interactive Brokers.
    Postupně ukazuji, jak dnes analyzuji obchody a sleduji je jak přímo v obchodní platformě, tak pomocí indikátorů, které jsou pro mě důležité hlavně z pohledu řízení celkového risku.
    Ve videu ukazuji hned několik obchodovaných systémů, se kterými pracuji plně mechanicky. Tedy následuji dlouhodobě otestované pravděpodobnosti.
    Pokud hledáte inspiraci jak na podobné systémy, tak právě pro vás jsem připravil na 25.9.2020 webinář, kde budu předávat popis 7 mých obchodních systémů. Na bezplatné vysílání se můžete registrovat na této adrese (obsah bude dostupný pouze pro registrované).

    Portfolia coby cesta k vyšší pravděpodobnosti úspěchu

    Silným tématem posledního Trading Fora bylo obchodování (a také pronajímání) portfolií obchodních systémů. To je totiž jedna z nejsnazších cest, jak dosahovat v obchodování stabilních profitů. Zde je konkrétní ukázka, jak obchodování více systémů výrazně ovlivňuje celkový výsledek našeho úsilí.
    Problém většiny nevydělávajících obchodníků je v tom, že se snaží najít „svatý grál“. Jediný přístup, s jehož pomocí budou konzistentně vydělávat. Potíž je ale v tom, že se v trzích nedá nic „s jistotou“ předvídat. Vše funguje jen na dlouhodobých pravděpodobnostech. To ale také znamená, že z krátkodobého pohledu (což může být v trzích doba i několika měsíců, u pomalejších systémů třeba i několik let) můžeme obchodovat systém, který je funkční, ale zrovna prodělává. Toto se stává zcela běžně. Krásný příklad jsem dokumentoval na Finančníkovi letos. Viz ztrátový průběh breakout strategie popsané na začátku roku a následný pohled na nová high, která jsem ukazoval ve screenshotu zde (poslední screenshot na stránce).
    Toto úskalí bohužel mnoho traderů nedokáže překonat. Znovu a znovu se po prvních drawdownech pouští do obchodování nových přístupů a staré zahazují. Doufají, že tentokrát jim vše vyjde lépe. Třeba proto, že při vývoji nového systému získali krásnou historickou equity křivku, která ale díky přeoptimalizaci nemá šanci nabídnout stejnou charakteristiku do budoucna.
    Řešení je přitom snadné. Obchodovat více systémů najednou. Ideálně takových, které spolu příliš nekorelují. A je jedno, jestli je obchodujete ručně nebo automatizovaně. Toto platí univerzálně.
    Na Trading Foru jsem ukazoval jednu z cest, jak systémy vyvíjím pomocí automatizovaného workflow s využitím GSB. V rámci přednášky jsem pak demonstroval OOS průběhy několika takto vytvořených systémů. Zde nebudu duplikovat výklad (ten si účastníci mohou přehrát v archivu ) – z dnešního pohledu jde čistě jen o výklad principu obchodování portfolia (konkrétní zobrazované systémy sám neobchoduji).
    Všechny systémy mají krásné historické equity křivky (byly vytvořeny automatizovaně). Mají ale rozdílné vývoje křivek po jejich vytvoření (tedy řekněme v živém obchodování). Jde o systémy obchodované na různých trzích, což většinou vede alespoň k částečné diverzifikaci.
    Systému obchodujícímu trh e-mini S&P 500 se dařilo velmi dobře. Takový vývoj si pochopitelně každý přál u všech systémů:

    V případě trhu e-mini Nasdaq zažil systém krásný start následovaný poměrně velkým propadem. Zisk nakonec byl, ale pokud by se trader zaměřoval jen na tento jediný systém, tak by bylo jeho následování náročné:

    V plynu (Natural Gas) systém vydělal, nicméně hlavně na několika málo obchodech v momentech, kdy se v trhu zvýšila volatilita (systém obchoduje breakouty):

    První systém obchodovaný na ropě měl krásný historický backtest, nicméně v živých trzích šel spíše do strany:

    Druhý systém na ropě prošel dokonce velkým drawdownem:

    Poslední z diskutovaných systémů v soje šel prakticky jen do strany:

    Výše jsou ukázky typických průběhů obchodních systémů po nasazení. Někdy vyděláváme krásně, jindy to skřípe a jindy systém generuje ztráty. Bohužel dopředu nikdy nevíme, jak bude budoucnost konkrétně vypadat. Pokud bychom obchodovali výše uvedené portfolio šesti systémů, možná si řeknete, že bychom mohli zůstat jen u obchodování systému na ES, kterému se v poslední době dařilo nejlépe. Ale garantuji vám, že například v příštím roce tento může jít do drawdownu (po silné ziskové sérii to tak i bývá) a vystřelí jiný systém, který jsme vyřadili.
    Řešení? V rozumné míře obchodovat více přístupů najednou. Tedy portfolio.
    Podívejte se, jak by vypadala výkonnost jednoduchého portfolia vytvořeného z výše uvedených šesti systémů za poslední diskutovaný rok (kde bychom v každém systému obchodovali 1 kontrakt):


    Rázem bychom získali „meta systém“ generující profity větší polovinu měsíců v roce. Roční zhodnocení kapitálu činí 42 % při 21% drawdownu z vloženého kapitálu. To jsou velmi dobré výsledky na to, jak hrozně vypadaly jednotlivé equity křivky. Započítány jsou přitom všechny poplatky i očekávané skluzy v plnění (2 ticky v trhu na každý obchod).
    Toto je skutečně velmi důležitá lekce.
    Svatý grál v tradingu člověk nikdy nenajde v jednotlivostech. Je potřeba se přenést přes to, že ne vše dokážeme v obchodování předvídat a ovlivnit. A že systémy mají dobré a horší období. A že je třeba vše řídit na „vyšší úrovni“ – tedy na úrovni portfolia kombinujícího více výhod dohromady. Pochopitelně není třeba využívat hned futures vyžadující vyšší kapitál. Portfolia lze dělat i v levnějších trzích, třeba typu ETF nebo akcie. Volba trhů není tak důležitá. Podstatný je posun v myšlení, kdy se nezaměřujeme na jednotlivosti, ale na řízení, obchodování a rozvoj celku.
×
×
  • Vytvořit...

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.