Jestli vás nalákal náhledový obrázek k článku v domnění, že dnes odhalím strategii, která vám zhodnotí účet v roce 2021 o 90 %, asi vás zklamu. Přesto však půjde o neméně zajímavé téma, které se bude věnovat systematickému přístupu obchodování akcií, který měl historicky kolem 90 % ziskových obchodů a donedávna velmi zajímavou výkonnost.
Od značného počtu zdejších čtenářů jsem po dobu existence blogu dostal několik dotazů ohledně automatické obchodní strategie s příznačným názvem “devadesátka”, zkráceně 90ka. Původní strategii před více jak deseti lety vymyslel známý obchodník Larry Connors primárně na americké indexy. Název devadesátka pochází od obchodníka a investora Petra, stojící za dnes již mrtvým blogem winpes.cz, který tuhle strategii modifikoval tak, že ji obchodoval jako portfolio složené z jednotlivých akcií z koše S&P 100, díky čemuž by se mělo dosáhnout vyšší frekvence obchodů a potažmo i lepší výkonnosti. A protože winpes není žádný žgrt, o svoji strategii se podělil se čtenáři svého blogu. Sám jsem ji obchodoval déle jak rok a rád bych se v dnešním článku zaměřil na výhody, nevýhody a rizika podobných přístupů.
Pro ty z vás, kdo strategii neznají. Jde o tzv. mean-reversion styl, kdy se nakupují “podhodnocené” akcie dle indikátoru Wilder’s RSI, které se drží od pár dnů po maximálně pár týdnů. Jakmile se cena navrátí k “normálu”, akcie se prodá a tak pořád dokola. Tento přístup historicky dosahoval míry vítězných obchodů (win rate) kolem 90 %, proto ten název. Strategie je mimo jiné zajímavá tím, že se agresivně škáluje do již otevřených pozic. Vypůjčím si úryvek textu z blogu popisující konkrétní pravidla devadesátky…
Systém s 90% pravděpodobností úspěchu – statistiky později – má následující pravidla hry:
Zdroj: https://www.winpes.cz
- Obchodují se pouze akcie z koše S&P 100.
- Obchoduje se pouze 1 x denně v závěru seance (tedy za Market-On-Close).
- Systém je long-only.
- Kupují se pouze akcie, u nichž je cena nad 200-denním průměrem.
- Kupují se pouze akcie, u nichž RSI(2) < 10.
- Pozice se škálují. První den se koupí pouze 10% z celkového kapitálu vyhrazeného na danou akcii. Pokud je v některém z dalších dnů v závěru seance cena nižší než původní cena, za níž se koupilo 10%, koupí se za tuto nižší cenu dalších 20%. Analogicky v některém z dalších dnů se dokoupí 30% v případě, kdy je cena ještě níže a konečně pokud je počtvrté cena ještě níže, dokoupí se posledních 40%.
- Každý den je otevřena maximálně jedna pozice. V případě, že je možné otevřít více pozic, otevře se ta s nejnižším RSI(2). V případě, kdy je možné jak otevřít novou pozici, tak (u jiné akcie) dokoupit do existující pozice, rozhoduje o tom, která akce má přednost rovněž RSI(2).
- Žádné STOP-LOSSY.
- Výstup na EOD nastává v momentě, kdy cena akcie je větší než pětidenní klouzavý průměr. Je přitom jedno, zda bylo koupeno 10%, 10%+20%, 10%+20%+30% nebo 10%+20%+30%+40%.
Devadesátku nelze obchodovat ručně, protože se jednotlivé pozice otevírají co nejblíže close trhům ve 22:00 českého času, navíc se často otevírá více různých titulů s proměnlivou velikostí pozice, takže není v lidských silách to zvládat manuálně. Je potřeba si vše naprogramovat, propojit přes API na brokerskou platformu a nechat exekuovat automaticky.
Dost bylo teorie, pojďme na výsledky! Abych vás nenudil nudnými statistikami, rozhodl jsem se, že článek trošku zdramatizuji tím, že rozdělím výkonnost devadesátky na dvě období, nejdříve ale nutné technikálie…
- Všechny datové řady jsou nominální, tedy nejsou očištěny o vliv inflace.
- Data nejsou upraveny o dividendy (dividend adjusted). Dividendy přičítám k celkové equity v den jejich výplaty (ex-dividend day) a daním je sazbou 15 %.
- Poplatky za jeden obchod počítám jako $0,0035 za 1 akcii, minimálně však $0,35 za otevření pozice. Za uzavření to stejné (odpovídá Interactive Brokers).
- Skluzy v plnění (tzv. slippage) nejsou započítány.
- Vstupní i výstupní ceny jsou za denní uzavírací ceny (close).
- Pro S&P 100 je použita survivorship bias databáze.
- V rámci backtestů nezohledňuji každoroční danění zisků z obchodování.
- Strategie pracuje s pákou 2:1, v případě buy&hold indexu pracuji s pákou 1:1. Veškerý zisk je dále reinvestovaný, stejně tak dividendy.
- Startovní kapitál 100.000 USD.
Období první: 2000 až 2017
No není tohle nádhera? Trošku se equity podobá Bitcoinu nebo Tesle v poslední době, ale v mnohem stabilnější formě :-D Bohužel není v mých silách zobrazit průběh v logaritmickém měřítku, proto jsem pod grafem nechal také vývoj drawdownu v čase.
Všimněte si prosím červené svislé linky, která zhruba označuje datum (23.5.2013), kdy byla strategie zveřejněna pro veřejnost. Následující roky lze brát jako obrovský vzorek out-of-sample dat a velmi slušné potvrzení funkčnosti systému.
Tabulka níže znázorňuje souhrnné statistiky ve sledovaném období. Za povšimnutí stojí skutečnost, že strategie v rámci backtestových podmínek dosahovala win rate téměř 86 %!
Výsledky jsou neuvěřitelné, ještě když vezmete v potaz, že strategii autor obchodoval (nebo možná stále obchoduje) více jak šest let. Samozřejmě je potřeba brát s rezervou neustálé reinvestování zisků v rámci backtestu, takto to v reálu předpokládám nikdo neobchoduje.
Ze souhrnných statistik bych rád vypíchnul pár zajímavých čísel. Průměrné roční zhodnocení 38,55 % při expozici kapitálu pouhých 24,75 % a maximálním drawdownu -33,05 %! Pozorný čtenář může namítnout, že strategie ale využívá páku 2:1, nicméně dle nízkého ukazatele exposure je jasné, že je systém málokdy zainvestovaný ze 100 %.
Ještě si dovolím srovnání s relevantním benchmarkem, tedy indexem S&P 100 v podobě ETFka $OEF.
Přestože strategie obchoduje s pákou 2:1, při pohledu na srovnání je vidět, že historicky dosahovala mnohem nižšího drawdownu než klasické buy&hold indexu. Tím určitě nechci tvrdit, že je méně riziková, to ale předbíhám…
Graf níže znázorňuje průběh equity včetně drawdownu strategie nakup a drž indexu S&P 100. Za normálních okolností bych equity obou systémů srovnával v jednom grafu, ale kvůli výraznému exponenciálnímu růstu 90ky to nemá smysl.
Období druhé: 2018 až 2020
Nebudu chodit kolem horké kaše, tady je výkonnost strategie za poslední tři roky.
Poslední tři roky neměla devadesátka vůbec jednoduché. Po několika měsíční stagnaci v roce 2018 se strategie dostala během pár dnů v prosinci do výrazného drawdownu kolem 40 % a ani po následujících dvou letech nepřekonala svoje high.
Nejsložitější období a zatěžkávací zkouška AOS obchodníků nastala v roce 2019, kdy index S&P 100 prorazil svoje nejvyšší high už 1.5.2019 s ročním zhodnocením přes 30 %, zatímco výkonnost devadesátky šla do strany (CAR 2,7 %), navíc celou dobu v drawdownu mezi 30 až 35 %. Kdo si to na vlastní kůži nezažije, ten nemůže pochopit, jak psychicky náročné je tohle obchodovat delší dobu.
Já osobně jsem devadesátku přestal obchodovat na začátku dubna 2019. Strategii jsem nasadil na live účet začátkem roku 2018, takže jsem skončil s výsledkem cca -10 % za celou dobu jejího obchodování. Měl jsem pro ni přiřazenou menší část účtu, takže jsem výkyvy zvládal psychicky v pohodě, ale vím, že hodně traderů, co ji obchodovali, měli nervy na dranc.
Z tabulky výše je krásně vidět, že ze 100 % platí to, co se v AOS komunitě traduje:
Ještě větší drawdown každou strategii teprve čeká.
Po celých 17 let strategie nevytvořila vyšší drawdown než 33 %, aby během následujícího roku spadla za pár dnů do ještě většího drawdownu, ve kterém se bohužel plácá dodnes. Nelze se v žádném případě spoléhat na to, že se jakýkoliv AOS bude chovat v mezích backtestových výsledků, ať jsou prováděné na jakkoliv dlouhé historii dat a při sebepečlivějším přístupu.
Problémem však není samotný drawdown, nýbrž srovnání s benchmarkem, v našem případě indexem S&P 100.
Níže ještě grafické porovnání obou přístupů za poslední tři roky…
Takhle vypadá hororový scénář každého AOS obchodníka. V rámci systematického obchodování je obvykle kýženým cílem dosáhnout buď:
- vyššího zhodnocení,
- nižší volatility,
- nebo (ideálně) obojího.
V případě devadesátky se bohužel nepodařilo v posledních třech letech ani jedno.
Můj pohled na věc
Prozatím to vypadá, že strategii pouze kritizuji. Snad se winpes neurazí, že jsem ji tady takto rozpitval. Aby byl můj pohled co nejvíce objektivní, rád bych nastínil možné plusy a mínusy tohoto přístupu.
Plusy
Nižší korelace s benchmarkem
Pro celou datovou řadu (od 2000 po 2020) vychází korelace přístupů buy & hold indexu S&P 100 a obchodování devadesátky kolem +45 %. Půlroční korelace se pohybuje v mezích +20 % až +75 %.
Nižší expozice kapitálu a volatilita
V rámci devadesátky vychází dlouhodobě expozice kapitálu pod 25 %, s čímž bude přímo souviset nižší volatilita strategie oproti buy & hold přístupu, který má expozici kapitálu 100 %. Anualizovaná volatilita, počítaná pomocí standardní odchylky z denních procentuálních změn kapitálu, vychází u 90ky na 19,57 %, zatímco u buy & hold je to 26,19 %. Přestože strategie obchoduje na páku 2:1, ale dostupný kapitál většinou nevyužívá ze 100 %, dosahuje výrazně nižší kolísavosti.
Mínusy
Vysoká koncentrace portfolia
Tohle je z mého pohledu jeden ze zásadních mínusů devadesátky. Vysokou koncentrací mám na mysli to, že strategie většinou bývá zainvestovaná pouze v pár titulech a pokud se zrovna trefí do problematických akcií, může způsobit ztráty, i když celý trh roste.
Agresivní škálování do pozice
Pokud byl předchozí bod zásadní mínus, tak tento bod vidím jako naprosto kritický z hlediska řízení rizika. Škálování do pozice je fajn věc v případě, že trhy “spolupracují”. Konkrétně u devadesátky dochází ke škálování tímto stylem: První den se koupí 10 % z celkového kapitálu vyhrazeného na danou akcii. Pokud je v některém z dalších dnů v závěru seance cena nižší než původní cena, za níž se koupilo 10 %, koupí se za tuto nižší cenu dalších 20 %. Analogicky se v některém z dalších dnů dokoupí 30 % v případě, kdy je cena ještě níže a konečně pokud je počtvrté cena ještě níže, dokoupí se posledních 40 %. Tohle škálování probíhá u všech již otevřených pozic do té doby, dokud není veškerý kapitál plně zainvestovaný (maximum 200 % vlastního kapitálu). Jenže takhle agresivní přidávání do pozic může vést k tomu, že je obchodník během pouhých čtyř obchodních seancí naplno zainvestovaný, a to ještě nemuselo dojít k výraznějším poklesům.
Hypoteticky dokonce může nastat situace, kdy obchodník skončí s plně naškálovanou pozicí pouze ve dvou akciích (100 % kapitálu v jedné akcii, 100 % v druhé akcii), čímž se zpátky vracím k prvnímu problému – vysoká koncentrace portfolia. Historicky taková situace během posledních 20 let nestala, to ale neznamená, že jednou nepřijde.
Funkčnost pouze na indexu S&P 100
Jedním ze základních požadavků k tomu, abych vůbec přemýšlel o obchodování jakéhokoliv obchodního systému, je alespoň částečně podobná výkonnost na ostatních indexech. Graf níže znázorňuje výkonnost 90ky obchodující akcie z širšího indexu S&P 500.
Uznejte sami, že pokud byste ve svých backtestech dosáhli podobného průběhu equity a drawdownu, pravděpodobně byste takový systém okamžitě a bez váhání zavrhli. Průměrné roční zhodnocení 25,37 % při maximálním drawdownu -81,78 % je příliš velké sousto i pro nejodolnější kusy. A domněnka, že podobný drawdown nemůže nastat u akcií z indexu S&P 100, je naivní.
Charakteristika trhu
Devadesátka spadá do skupiny mean-reversion strategií, tudíž aby si zachovala svoji nadstandardní výkonnost, musí se ve správném rytmu vlnit také celý trh – mělčí propady střídané rychlými nárůsty. V případě obchodování AOS je nezbytné alokovat část kapitálu do strategií typu momentum / trend-following, aby se vykrývala obvykle slabší výkonnost mean-reversion systémů v období silného růstu trhů, kterého jsme svědky v posledních letech.
Daně a zase daně
Pokud obchodujete jakýmkoliv stylem, kdy kapitálové zisky neprojdou časovým testem tři roky (na Slovensku pouze rok), potom musíte počítat s tím, že kladný rozdíl budete muset každý rok danit 15% sazbou. V případě devadesátky, kdy se jednotlivé pozice drží maximálně pár týdnů, je to jasná věc. S tím je třeba počítat a ve finále všechny zisky ještě o 15 % znehodnotit.
To be continued…
Především kvůli vysoké koncentraci portfolia a agresivnímu škálování bych osobně devadesátku v původním nastavení naživo neobchodoval, nebo alespoň ne s většími penězi. Abyste však neřekli, že umím jenom kritizovat, v některém z příštích článků ukážu, jak strategii vylepšit tak, aby zůstala zachována její nadstandardní výkonnost, ale výrazně se nezhoršil její risk profil.
Zde je malá ukázka / teaser:
období: 1.1.2000 až 31.12.2020 (včetně korona krize)
prům. roční zhodnocení: +21,57 %
maximální drawdown: -28,55 %
vítězných obchodů: 83,74 %
profit factor: 1,7
Stay tuned!
90tka bol prvy system, ktory nasmeroval moj zaujem k Algo. Citim skoro az nostalgiu :)
Pls, ked to nie je vyrobne tajomnstvo, mohol by si nasharovat kod, alebo aspon jeho cast kde sa riesi scaling do pozicie? Sam som si scaling pripravil a backtestoval ale nedokazal som bez CBT prist na variantu, ktora by fungovala spravne s nastavenim “backtestRegularRaw”.
Za standardních okolností bych se o kód pro Amibroker podělil, ale v tomto případě to neudělám. Důvod je ten, že jsem jej programoval (jestli se to tak dá vůbec nazvat) před několika lety, kdy jsem se s Amibrokerem ještě učil a je to strašný balast, byť funkční. Takže promiň, kódy pro ostatní zde zveřejněné strategie pravděpodobně k dispozici dávat budu, v případě devadesátky ale udělám výjimku.
Btw. všechny backtesty 90ky mám rovněž pomocí custom backtesteru…
Diky za zajimavy pohled na 90ku, co si pomatuju z winpes, tak v komentarich tam dost resili pouziti SL, pouziti jineho indexu, ale jenom to zakladni nastaveni, jak bylo prezentovano, fungovalo nejlepe. Byla tam i nejaka snaha o opcni 90ku.
SL nemá v případě devadesátky z mého pohledu smysl. Různé použití různých indexů jsem všelijak testoval, ale nic nevedlo k lepším výsledkům, navíc už se jedná podle mě o přeoptimalizaci optimalizovaného. Opce na devadesátku vůbec…
Jak zmínil Libor – opční 90 jedu doposud.
Ale prostě jsem ji upravil k obrazu svému a ne že slepě kopíruji.
Jelikož neumím a nechci umět AOS – dělám ji ručně.
Další změny:
A hlavně se nesmím z poklesu posr…. naopak se těším na situaci (březen 2020)
Je pravda, že jsem se trápil, než jsem ji vyladil.
Díky za postřehy. To, jak svoji strategii popisuješ, nemá skoro nic společného s originální 90kou. Obchoduješ to hodně diskréčně / pocitově, takže nelze mluvit ani o systematickém přístupu založeném na pevných pravidlech. OK, držím palce!
Když si pročítám různé příspěvky na sociálních sítích, blozích nebo diskuzích, došel jsem k závěru, že jsem asi jediný, kdo se na krize netěší… nic ve zlém ;-)
Jasně že ne. Využil jsem pouze myšlenku a graf RSI + klouzavý průměr.
A krize myšlena – teoreticky –
pokles = nákup za levno. Základní pravidlo Buffeta aj… ;-)
Přeju, ať ti tvůj přístup funguje i do budoucna.
Ahoj, muzes alespon prozradit, jak si ta tvoje opcni verze v vedla posledni 3 roky v porovnanim s originalni 90kou, ktera je defacto stale v minusu?
To by mě taky zajímalo.
Jedu ji přes 2-3 roky. Pravidelně ale až od loňska, než jsem vychytal jak postupovat při dokupování. Nevedu přesnou statistiku, musel bych projet výpis z IB.
Ale úspěšnost odpovídá 90% a jelikož nemám oddělené ostatní obchody, musel bych rovněž projet výpis.
Letošek bych mohl zapisovat, mám více času a pak to sem za rok hodit.
Kdyby byl zájem. Já vidím problém v tom, že ale nebude nikdo mít stejné obchody jako já.
Musel bych dát kopii výpisu.
K tomu “Nevedu přesnou statistiku, musel bych projet výpis z IB.” lze rict jen jedno: “You Don’t Manage What You Don’t Measure”Jak muzes rict “Jedu ji přes 2-3 roky.” a nevedet, jaky to ma vysledek?
Honza
Ahoj, diky za info. Spis nez ta vysledna uspesnost me ale zajimalo zhodnoceni napriklad vuci S&P, proste jestli se ti s tim modifikovanym pristupem podarilo treba prekonat index, coz se te originalni 90ce za posledni 3 roky nepovedlo.
Tak na pokracovani o optimalizaci se tesim. Ja jsem si naprogramoval 90ku a spoustil ji v nejhorsi mozny moment a to byl rijen 2019. Bezela mi asi 10 mesicu a skoncila ve ztrate asi 30 %. Zkousel jsem pouzivat ruzne stop lossy. Statisticky mi vychazelo, ze dokazou zabranit nejhorsim propadum, ale take nejlepsim otocenim trendu, takze drawdown je mensi, ale celkovy zisk mensi…
Tak to pozor, modifikovaná 90ka není výsledkem optimalizace nebo data minigu. Dokonce má více jak dva roky out-of-sample dat, protože jsem strategii lehce přepracoval někdy na podzim roku 2018 😎
No i tak by me to zajimalo, automatizovane strategie jsem zatim zcela nezavrhl a zajimalo by me, jak to lze delat lepe.
Ahoj,
jak to prosim vypada s pokracovanim clanku v devadesatce?:o)
Ahoj, prosím o trpělivost. Pracuji teď na migraci blogu, což mně bere hodně času. Pokračování o devadesátce vyjde nejpozději do dvou týdnů.
Pokud se nepletu, tak to je dnes. :)
Take se primlouvam za pokracovani (neb jsem pomerne zvedavy na vylepsovaky).
Pokud se nepletu, tak pokračování jsem dnes kolem desáté na blogu zveřejnil: https://www.finhacker.cz/tuning-automatickeho-obchodniho-systemu-90ka-by-finhacker/