Automatické obchodní systémy: životnost a risk-management (2/3)
V minulém díle jsme si vysvětlili, že každý obchodník automatického obchodního systému (AOS) čelí výraznému riziku omezené životnosti drtivé většiny AOS a zároveň jsme si stanovili soubor pravidel, která nám mohou pomoci takové riziko lépe řídit. V dnešním díle si řekneme něco více o tom, jak že je také třeba co nejoptimálnější stanovit workflow stavby AOS, neboť díky jejich krátké životnosti musí každý AOS trader prakticky nepřetržitě pracovat na nových nápadech.
Pojďme si definovat ono "workflow". Pod workflow si představuji takové stanovení procesů, abychom nemuseli vývojem nových a nových AOS trávit každý den 10-12 hodin. Většina AOS obchodníků buduje své systémy právě proto, aby měli více časové flexibility, takže něco takového by bylo proti původním záměrům. Je tedy maximálně důležité připravit si práci tak, abychom nemuseli s vývojem nových AOS trávit ani o kousek více času, než ne nezbytně nutné. Workflow vývoje AOS je tedy také o kvalitní organizovanosti celkové práce, ale mimo jiné i o nových technologiích - jak si ještě ukážeme v druhé polovině článku.
Pojďme tedy k tomu, jak si můžeme workflow co nejlépe předpřipravit a ulehčit.
V prvé řadě dle mého názoru potřebuje každý vývojář AOS solidní databází předdefinovaných kódů a nástrojů, aby mohl své nápady spíše jen zkoušet skládat z již předpřipravených cihliček a ztrácet co nejméně drahocenného času zbytečným programováním. Obzvláště si zvlášť připravte ty nástroje/atributy, které používáte nejraději a nejčastěji a mějte je vždy po ruce. Já například s oblibou používám určitý druh volatility výstupu, který jsem si nadefinoval dle svých potřeb a na základě pozorování trhů - podobné nástroje, které často používám, mám v knihovně pojmenované tak, abych je měl vždy v abecedním seznamu vždy zcela nahoře - po ruce. Je to samozřejmě maličkost, ale řada podobných maličkostí pak celkově urychluje práci exponenciální řadou.
Dalším určitým zjednodušením workflow a výrazným zrychlením je, pokud již disponujeme obecným konceptem našeho zájmu - a tudíž jen tak "netěkáme" od experimentu k experimentu. Mám vypozorováno, že úspěšní AOS obchodníci disponují již určitým vlastním konceptem, který jim obecně sedí a se kterým staví stále nové a nové systémy. Někdo se zaměřuje na konkrétní styl obchodování a tak se věnuje převážně tomu, co již dobře zná a v čem se cítí silný. Pokud máme nějaký vlastní "svůj" koncept přístupu k trhům, vše může být mnohem jednodušší a rychlejší. Vždy je nejrychlejší pracovat na něčem, v čem se cítíme silní - než věnovat čas něčemu, co možná dělá úspěšně někdo jiný, ale čemu vůbec nerozumíme a čím bychom museli trávit extrémně mnoho drahocenného času.
Urychlit nápady ohledně nových AOS systémů rozhodně může pouhé pozorování trhů, resp. projíždění historických grafů. Řada systémů vzniká nejprve pozorováním trhů a grafů a následně testování podmínek na základě pozorování. To je dle mého názoru progresivnější způsob, než jen slepě zkoušet co nás zrovna napadne. Pokud nějakou dobu pozorujeme (např. sérii historických dat a chování trhů v historii), pak dříve či později vždy dostaneme sérii nápadů. Nápady z pozorování už jsou konkrétní myšlenky, které následně konkrétně formulujeme na papír. Když už jsou na papíře, dostanou ještě konkrétnější podobu - pak teprve je čas sednout k počítači a psát kódy. Nepodceňujte sílu obyčejného papíru a tužky! K formulaci myšlenky na papír si můžete například sednout do kavárny, nebo lehnout k bazénu - nemusíte u toho sedět u počítače, doma. To vše se počítá - workflow by mělo být takové, abyste měli co nejvíce "příjemného" času a co nejméně potřeby trávit čas v pracovně, což je vyloženě "pracovní" místo. Navíc ze zkušenosti vím, že co jednou popíšu a promyslím na papíře, to dokážu již velmi rychle naprogramovat. Čas u počítače se tak výrazně zkracuje a čas strávený na příjemnějších místech prodlužuje. A o to v tradingu jde.
Toto vše jsou tedy nápady, jak si práci zjednodušit a udělat příjemnější. Skutečné vylepšení ale, jak jsem již zmínil, může přijít s moderními technologiemi. Co mám konkrétně na mysli (a s čím se již také začínám pomalu učit efektivně pracovat), jsou genetické algoritmy, které dokážou efektivně testovat miliardy kombinací čehokoliv a doslova tak automaticky samy navrhovat stovky a tisíce nejrůznějších obchodních systémů.
Příkladem může být například skvělý program Adaptradebuilder. Samozřejmě, podobných řešení už existuje daleko více, sám jsem zakoupil jedno velmi kvalitní a velmi sofistikované, které však již není na trhu, protože bylo koupeno jistou velkou společností.
Co tedy program s pomocí genetických algoritmů dokáže? Jednoduše takovému programu nadefinujete základní stavební kameny svého konceptu (jste-li například hlavně trend-following obchodníci, pak nadefinujete několik break-out nástrojů/indikátorů, několik druhů výstupů, několik variant position-sizingu, několik různých timeframe, atd.) a genetický algoritmus už sám hledá na základě dalších kritérií kombinace, které vytvoří "hotový" systém. Kombinací může existovat doslova miliardy - genetický algoritmus však dokáže pracovat velmi efektivně a co by klasickými vyhledávacími metodami (exhoustive) trvalo desetiletí, zvládne GA za pár hodin.
Toto může být výrazná úspora času, pokud víte, co děláte. Pak skutečně stačí pustit počítač, a nechat několik dnů bez vaší přítomnosti automaticky hledat a stavět AOS - čímž máte k dispozici mnoho volného času, který nemusíte trávit u počítače. Pokud tedy problematice trochu více rozumíte a víte, jak vše správně nastavit a využít, vaše workflow může začít být velmi efektivní: na základě pozorování si v klidu promyslíte s tužkou a papírem pár konceptů, které následně necháte zpracovávat nástroj pro stavbu strategií s použitím GA. Samozřejmě ale není toto možné brát jako samozřejmost - nic nefunguje tak jednoduše (byť GA je skutečně velmi výrazné zjednodušení a urychlení).
Problém ale je, že i takto sofistikovaný a automatizovaný přístup vyžaduje jednak již nějaké zkušenosti s trhy, jednak trochu "zaběhnutou" metodu evaluace a výběru finálních systémů a hlavně důkladné testování robustnosti všech navržených AOS, které z GA nástroje dostaneme.
V počátku je tedy jednak je třeba vědět, jak přesně vyhledávání nastavit, mít představu o obecném konceptu, který hledáme. Následně musíme vědět, jak následně počítačem navrhované systémy evaluovat a forward-testovat, abychom se co nejvíce ubezpečily, že máme systém robustní a potenciálně zajímavý. Právě forwar-testing, testování na více trzích a testování s různými periodami je poslední krok v celkovém workflow, které je možné nechat dělat počítač pouze částečně - asistence tradera je nutná. O této problematice případně napíši ještě nějaký článek v budoucnu - momentálně je ale třeba počítat s tím, že ani GA nástroje nejsou všemocné a je třeba se naučit k nim přistupovat správně a zodpovědně.
Nic méně, je skutečně velikou výhodou, že podobné nástroje dnes existují a každý AOS trader by tedy již od začátku měl uvažovat, jak poskládat celé workflow tak, aby měl co nejméně práce a mohl si co nejvíce užívat volného času - což je přesně to, proč trading děláme. GA jsou rozhodně jednou z cest.
Já osobně kladu na workflow poměrně značný důraz - nechci trávit celé dny u počítače. Momentálně například pracuji na dalším zjednodušování a zefektivňování svého workflow pro hledání vhodných párů pro mou strategii statistických arbitráží, neboť s páry je to podobné jako s AOS - není možné počítat, že aktuálně obchodované páry zde budou "na věky" a je třeba neustále hledat nové možnosti. Optimálně však tak, aby to zabralo co nejméně našeho času a vše šlo co nejvíce zautomatizovat (říkám tomu CAT - Computer Asisted Trading).
Tomáš Nesnídal