Jak na proces tvorby obchodních systémů?
Nedávno se na mě obrátil trader Roman s dotazem, který se týkal tipů při vytváření obchodních systémů, které mají šanci dlouhodobě generovat peníze. Jelikož odpověď nelze shrnout do pár vět, odpovídám formou článku, ve kterém shrnu tipy i pro ostatní.
Romanův dotaz:
Už nějakou dobu se snažím o tvorbu vlastního systému, abych se přesvědčil, že jsem schopný sestavit něco vlastního, co bude fungovat minimálně na historických datech a nebudu muset spoléhat pouze na Vámi prezentované systémy. Vybral jsem si pro toto Bollingerova pásma, aby to byl nástroj, který má v sobě nějakou smysluplnou počáteční myšlenku a neobjevoval se ve Vámi prezentovaných systémech. Šel jsem cestou tvorby přes "in sample", "out sample" na jednom indexu, a ještě si nechal data na testování před a po zvoleném testovacím období. Provedl jsem velkou spoustu testů, ale pokaždé mi ten systém zhavaroval v nějaké fázi testování.
Hodně přemýšlím o diverzifikaci, jednak díky Vašim článkům, a taky i dvěma knihám od Roberta Carvera, které jste prezentoval na Finančníkovi a které jsem si prostudoval. Proto jsem začal přemýšlet a zkoumat trochu odlišnou cestu. Vzal jsem jednoduchý systém s minimem volitelných parametrů a začal provádět backtesty v určitém rozsahu parametrů na celém vzorku dat bez rozlišení "in sample" a "out sample" a na šesti indexech (OEX, NDX, SPX, RUI, RUT, RUA). Sledoval jsem funkčnost tohoto systému jednak v rozsahu parametrů, a taky na uvedených indexech. Následně jsem z celého souboru systémů vybral určitý počet systémů na základě CAR, RAR, jejichž equity křivky vykazovaly odlišnosti a zkoumal korelace těchto systémů a na základě těchto korelací poskládat několik stejných systémů s různými parametry a na různých indexech dohromady a prozkoumal výslednou equity křivku.
K tomuto procesu jsem dospěl po předešlých nezdarech, když jsem se snažil vyvinout systém na "in sample" a "out sample" datech. Taky mě k tomu dovedla myšlenka, že by se tímto dala omezit přeoptimalizace. Co si o takovém postupu myslíte? Zkoušel jste někdy podobný postup? Vím, že jasnou odpověď dostanu pouze testováním takového systému, přesto by mě zajímal Váš názor, případně připomínky, v čem by takový postup mohl mít své slabé stránky.
Téma vytváření obchodních systémů není jednoduché, protože neexistuje nějaký jeden mustr, podle kterého postupovat. Nicméně jsou určité body, které sám považuji za absolutní základ toho, abych měl důvěru pustit systémy na živý účet.
V první řadě je potřeba nejprve opravdu kriticky přemýšlet o edge, který chceme obchodovat. Důležité je přijmout skutečnost, že 90 % informací, které jsou k dispozici na internetu ohledně tradingu nefungují a nedávají smysl. S použitím optimalizace parametrů pro vstup a výstup nalezneme při využití kteréhokoliv přístupu systémy, které generují hezké výkonnostní křivky na historických grafech, ale mívají nulovou šanci vydělávat do budoucna.
Typicky pokud se někdo rozhodne stavět například intradenní systém s využitím klasických indikátorů na pětiminutových forexových grafech, je šance na dlouhodobý pozitivní výsledek skutečně nulová. A přitom mnoho traderů touto cestou jde a snaží se najít způsob, jak takto vytvořený systém „validovat“ – poznat, jestli má šanci fungovat do budoucna. A to přitom nejde. Šanci na budoucí úspěch systému nejvíce ovlivňuje princip, na kterém systém stavíme s tím, že ostatními komponenty jako je risk management a position sizing můžeme systém zlepšit nebo zhoršit.
Opravdu se tak vyplatí nejprve co nejdetailněji studovat základní obchodovaný edge. V první fázi jen v těch nejhrubších obrysech tak, abychom zkoumání neovlivňovali dalšími prvky obchodního systému. Například u zmíněných bollingerových pásem by mě zajímalo, jestli existuje závislost vzdáleností ceny od bollingerova pásma a budoucími výnosy. Protože pokud takovou závislost nenaleznu, nemá smysl na myšlence stavět obchodní systém. Zní to logicky, ale běžně tomuto věnuje pozornost jen opravdu mizivá část traderů. Konkrétní cesta, jak závislost zkoumat, může být použití korelačních grafů. Podrobný tutoriál, jak postupovat od základních dat až po zobrazení korelačního grafu jsem minulý týden publikoval zde do TechLabu. Zkoumání základního edge podobným způsobem má i tu výhodu, že do budoucna přesně víme, na jakém principu bude náš systém vydělávat.
Korelační graf zkoumající závislost mezi krátkodobou korekcí a budoucími výnosy. Podrobněji se tématu věnuji v tomto tutoriálu TechLabu.
Pokud mám nalezený funkční základní edge, mohu jej zkusit přeměnit do obchodního systému. Osobně používám in sample/out of sample periody, ale je dobré je nepřeceňovat. Jak jsem na Finančníkovi již několikrát ukazoval, pár let vývoje systému (zejména swingového) neobsahuje dostatek dat, abychom jej mohli nějak zásadně statisticky vyhodnocovat. Tedy to, že se systému nedaří v out of sample neznamená, že se mu nemůže dařit při živém obchodování a naopak. V out of sample periodách sleduji spíše charakter výkonnosti. Zejména nechci vidět, aby se po konci in-sample výkonnostní křivka „prudce zlomila“, protože to indikuje přeoptimalizaci.
Dokáži si nicméně představit vývoj systému i na všech datech. Varoval bych ale při vývoji a vyhodnocování systému před sledováním historické equity křivky. Je lepší sledovat jen číselné ukazatele – sharpe ratio, volatilitu, frekvenci obchodů, průměrný obchod atd. A robustnost testovat pomocí monte carlo simulací. Osobně bych nevybíral systémy na základě vzhledu jejich historických equity křivek.
Obchodování variací jednoho systémů s různými parametry je z mé zkušenosti dobrá myšlenka. V praxi je ji třeba zasadit do kontextu velikosti obchodního účtu. Protože čím více systémy rozdrobíme, tím více mohou představovat zátěž komise.
V každém případě je klíčem k úspěchu následné portfolio. Pokud v něm budete obchodovat více systémů s dobrým základním edge (viz výše) a kontrolovat u nich korelaci a risk, tak s velkou pravděpodobností v budoucnu vyděláte. Pořád je třeba mít na paměti, že i kvalitní systém může mít prodělečný rok. Není tedy možné se zabývat otázkou, jak vybrat takové systémy, které budou jenom vydělávat. Je potřeba přemýšlet o tom, jak poskládat systémy využívající alespoň trochu různé obchodní logiky. Pokud vám tedy vyzkoumaný systém dává smysl z pohledu základního edge, je dobré zauvažovat o nasazení do portfolia.
Veškerá „kouzla“ se v tradingu skutečně dějí na jeho úrovni. Tady je ukázka, jak konkrétně uvažuji. Řekněme, že budu mít informace vycházející hlavně z Finančníka. Mohu si poskládat portfolio:
Kde:
Monday Buyer, vyučovaný ve swingovém workshopu, by měl vydělávat delším držením méně volatilních kvalitních akcií poté, co si projdou korekcí (určitá forma mean reversion systému).
Mopull Limit, také vyučovaný ve swingovém workshopu, spekuluje na intradenní oslabení v korekci po průrazu dlouhodobých cenových maxim (mean reversion).
Micro Breakout, popisovaný rámcově zde, vychází z následování růstového momenta u akcií s nižší likviditou (trend following).
Minimální dynamické portfolio, popisované rámcově zde, drží portfolio základních aktiv - akcie, zlato, dluhopisy (trend following).
Tedy každý systém obchoduje v akciích trochu jiný edge a osobně jsem absolutně přesvědčený, že všechny edge najednou fungovat nepřestanou. Naopak se doplňují, o čem svědčí i historická křivka celého portfolia (výsledky po komisích a bez dividend, které výkonnost ještě reálně zvyšují):
Vidím, že portfolio má historicky sharpe ratio 1.69 a nejvyšší drawdown 12,87 %. Jelikož mám současně důvěru v obchodované základní edge jednotlivých systémů, tak bych se nebál jej obchodovat živě a třeba použít u některých systémů páku pro zvýšení výkonnosti (díky nízkému drawdownu je to možné). Jako že všechny zmíněné systémy živě na svých účtech obchoduji.
OK, ale jak portfolio rozvíjet dál?
Tady přichází důležitá skutečnost. Z mé zkušenosti nemá smysl zkoušet hledat další podobné systémy. Například nějaký jiný nákup korekce v akciích, které už obchoduji v podobě Monday Buyer a Mopull Limit. I když použiji třeba jinou vstupní logiku a jiné indikátory, budou pořád obchodovat stejný edge, a tudíž nepůjde o reálnou diverzifikaci. Portfolio je dobré posouvat o strategie využívající jiné edge. I když zůstaneme jen v akciích, tak existuje stále hodně přístupů, ve kterých systémy vyvíjet – sám mám ještě systémy obchodující sezónnost, systémy inkasující prémium z vypisovaných opcí a pracuji na systémech využívajících vyhlašování ekonomických reportů.
Velmi důležité je tedy především nesnažit se při vývoji systémů hledat svatý grál. Je dobré přemýšlet o principech, které v trzích fungují dlouhodobě a systémy stavět hlavně tak, abychom řídili risk. Co nejdříve se pak dostat do fáze obchodování portfolií systémů postavených na různých edge, kde platí, že čím více systémů budeme obchodovat, tím méně nás bude trápit to, že občas vyvineme systém, který v budoucnu nebude generovat peníze tak, jak to indikoval v historickém backtestu.
Pomohl vám článek? Sdílejte prosím jeho anotaci publikovanou na této naší facebokové stránce.
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.
- 10