Průvodce začátečníka' kvantitativním obchodováním

V tomto článku vás seznámím s některými základními pojmy, které provázejí komplexní kvantitativní obchodní systém. Tento příspěvek snad poslouží dvěma okruhům čtenářů. Prvním budou jednotlivci, kteří se snaží získat práci ve fondu jako kvantitativní obchodník. Druhým budou jednotlivci, kteří se chtějí pokusit založit vlastní „maloobchodní“ algoritmické obchodování.

Kvantitativní obchodování je mimořádně sofistikovaná oblast kvantitativních financí. Získání znalostí potřebných k absolvování pohovoru nebo sestavení vlastních obchodních strategií může zabrat značné množství času. A nejen to, vyžaduje rozsáhlé znalosti programování, přinejmenším v jazycích, jako je MATLAB, R nebo Python. Nicméně s rostoucí frekvencí obchodování strategie se technologické aspekty stávají mnohem důležitějšími. Znalost jazyka C/C++ tak bude mít zásadní význam.

Kvantitativní obchodní systém se skládá ze čtyř hlavních složek:

  • Identifikace strategie – Nalezení strategie, využití výhody a rozhodnutí o frekvenci obchodování
  • Zpětné testování strategie – Získání dat, analýza výkonnosti strategie a odstranění zkreslení
  • Exekuční systém – Propojení s brokerem, automatizace obchodování a minimalizace transakčních nákladů
  • Řízení rizik – Optimální alokace kapitálu, „velikost sázky“/Kellyho kritérium a psychologie obchodování

Začneme tím, že se podíváme na to, jak určit obchodní strategii.

Identifikace strategie

Všechny kvantitativní obchodní procesy začínají počátečním obdobím výzkumu. Tento výzkumný proces zahrnuje nalezení strategie, zjištění, zda strategie zapadá do portfolia jiných strategií, které případně provozujete, získání veškerých dat potřebných k testování strategie a snahu optimalizovat strategii pro dosažení vyšších výnosů a/nebo nižšího rizika. Pokud strategii provozujete jako „retailový“ obchodník, budete muset zohlednit své vlastní kapitálové požadavky a to, jak strategii ovlivní případné transakční náklady.

Na rozdíl od všeobecného přesvědčení je ve skutečnosti poměrně jednoduché najít ziskové strategie prostřednictvím různých veřejných zdrojů. Akademici pravidelně zveřejňují teoretické výsledky obchodování (i když většinou bez transakčních nákladů). Blogy o kvantitativních financích se strategiemi podrobně zabývají. Obchodní časopisy nastíní některé strategie používané fondy.

Můžete se ptát, proč jednotlivci a firmy rádi diskutují o svých ziskových strategiích, zejména když vědí, že ostatní „přeplnění obchodu“ může zabránit tomu, aby strategie dlouhodobě fungovala. Důvod spočívá v tom, že často nebudou hovořit o přesných parametrech a metodách ladění, které provedli. Tyto optimalizace jsou klíčem k přeměně relativně průměrné strategie na vysoce ziskovou. Ve skutečnosti je jedním z nejlepších způsobů, jak vytvořit vlastní jedinečné strategie, nalezení podobných metod a následné provedení vlastního postupu optimalizace.

Zde je malý seznam míst, kde můžete začít hledat nápady na strategie:

  • Social Science Research Network – www.ssrn.com
  • arXiv Quantitative Finance – arxiv.org/archive/q-fin
  • Seeking Alpha – www.seekingalpha.com
  • Elite Trader – www.elitetrader.com
  • Nuclear Phynance – www.nuclearphynance.com
  • Quantivity – quantivity.wordpress.com

Mnoho strategií, které budete zkoumat, bude spadat do kategorií mean-reversion a trend-following/momentum. Strategie mean-reverting je strategie, která se snaží využít skutečnosti, že existuje dlouhodobý průměr „cenové řady“ (například rozpětí mezi dvěma korelovanými aktivy) a že krátkodobé odchylky od tohoto průměru se nakonec vrátí zpět. Momentová strategie se pokouší využít jak psychologie investorů, tak struktury velkých fondů tím, že se „sveze“ na tržním trendu, který může nabrat hybnost jedním směrem, a sleduje tento trend, dokud se neobrátí.

Dalším nesmírně důležitým aspektem kvantitativního obchodování je frekvence obchodní strategie. Obchodování s nízkou frekvencí (LFT) obecně označuje jakoukoli strategii, která drží aktiva déle než jeden obchodní den. Odpovídajícím způsobem se vysokofrekvenční obchodování (HFT) obecně vztahuje na strategii, která drží aktiva během obchodního dne. Obchodování s velmi vysokou frekvencí (UHFT) označuje strategie, které drží aktiva v řádu sekund a milisekund. Jako retailový praktik jsou HFT a UHFT jistě možné, ale pouze s detailní znalostí obchodního „technologického zásobníku“ a dynamiky knihy příkazů. Těmito aspekty se v tomto úvodním článku nebudeme ve větší míře zabývat.

Po určení strategie nebo souboru strategií je nyní třeba otestovat jejich ziskovost na historických datech. To je doménou backtestingu.

Backtesting strategií

Cílem backtestingu je poskytnout důkaz, že strategie identifikovaná výše uvedeným postupem je zisková při aplikaci na historická data i data mimo vzorek. Tím se stanoví očekávání, jak bude strategie fungovat v „reálném světě“. Zpětné testování však z různých důvodů NENÍ zárukou úspěchu. Je to snad nejsubtilnější oblast kvantitativního obchodování, protože s sebou nese řadu zkreslení, která je třeba pečlivě zvážit a co nejvíce eliminovat. Probereme běžné typy zkreslení včetně zkreslení při pohledu dopředu (look-ahead bias), zkreslení při přežití (survivorship bias) a zkreslení při optimalizaci (známé také jako „data-snooping“ bias). Mezi další důležité oblasti v rámci backtestingu patří dostupnost a čistota historických dat, zohlednění reálných transakčních nákladů a rozhodnutí o robustní platformě pro backtesting. O transakčních nákladech budeme dále hovořit níže v části Prováděcí systémy.

Po určení strategie je nutné získat historická data, jejichž prostřednictvím se provede testování a případně i zdokonalení. Existuje značný počet dodavatelů dat napříč všemi třídami aktiv. Jejich náklady se obecně stupňují s kvalitou, hloubkou a aktuálností dat. Tradičním výchozím bodem pro začínající kvantové obchodníky (alespoň na maloobchodní úrovni) je použití bezplatné sady dat od Yahoo Finance. Nebudu se zde příliš zabývat poskytovateli, spíše bych se chtěl soustředit na obecné problémy při práci se sadami historických dat.

Mezi hlavní problémy s historickými daty patří přesnost/čistota, zkreslení přežitím a úprava o podnikové akce, jako jsou dividendy a rozdělení akcií:

  • Přesnost se týká celkové kvality dat – zda neobsahují nějaké chyby. Chyby lze někdy snadno identifikovat, například pomocí filtru hrotů, který v datech časových řad vybere nesprávné „hroty“ a opraví je. Jindy může být velmi obtížné je odhalit. Často je nutné mít dva nebo více poskytovatelů a pak všechna jejich data vzájemně zkontrolovat.
  • Zkreslení přežití je často „vlastností“ bezplatných nebo levných datových souborů. Datová sada se zkreslením přežití znamená, že neobsahuje aktiva, se kterými se již neobchoduje. V případě akcií to znamená vyřazené/bankrotované akcie. Toto zkreslení znamená, že jakákoli strategie obchodování s akciemi testovaná na takovém souboru dat bude pravděpodobně dosahovat lepších výsledků než v „reálném světě“, protože historičtí „vítězové“ již byli předem vybráni.
  • Korporátní akce zahrnují „logistické“ činnosti prováděné společností, které obvykle způsobují skokovou změnu surové ceny, která by neměla být zahrnuta do výpočtu výnosů ceny. Obvyklými viníky jsou úpravy o dividendy a rozdělení akcií. Při každé z těchto akcí je třeba provést proces známý jako zpětná úprava. Je třeba dávat velký pozor, aby nedošlo k záměně rozdělení akcií se skutečnou úpravou výnosů. Nejeden obchodník byl při podnikové akci nachytán!“

Pro provedení postupu zpětného testování je nutné použít softwarovou platformu. Máte na výběr mezi specializovaným softwarem pro backtest, jako je Tradestation, numerickou platformou, jako je Excel nebo MATLAB, nebo plně vlastní implementací v programovacím jazyce, jako je Python nebo C++. Nebudu se příliš zabývat Tradestation (nebo podobnými programy), Excelem nebo MATLABem, protože věřím ve vytvoření kompletního vlastního technologického stacku (z důvodů uvedených níže). Jednou z výhod takového postupu je, že software pro zpětné testování a exekuční systém mohou být úzce integrovány, a to i v případě extrémně pokročilých statistických strategií. Zejména u strategií HFT je nezbytné použít vlastní implementaci.

Při backtestování systému je třeba být schopen kvantifikovat, jak dobře funguje. „Standardními“ metrikami pro kvantitativní strategie jsou maximální drawdown a Sharpeho poměr. Maximální drawdown charakterizuje největší pokles equity křivky účtu od vrcholu k vrcholu za určité časové období (obvykle roční). Nejčastěji se uvádí v procentech. Strategie LFT budou mít tendenci mít větší drawdown než strategie HFT, což je způsobeno řadou statistických faktorů. Historický backtest ukáže minulé maximální drawdown, které je dobrým vodítkem pro budoucí výkonnost strategie v oblasti drawdown. Druhým měřením je Sharpův poměr, který je heuristicky definován jako průměr nadměrných výnosů dělený směrodatnou odchylkou těchto nadměrných výnosů. Zde se nadměrnými výnosy rozumí výnosy strategie nad předem stanoveným benchmarkem, jako je S&P500 nebo tříměsíční státní pokladniční poukázka. Všimněte si, že roční výnos není obvykle používanou mírou, protože nezohledňuje volatilitu strategie (na rozdíl od Sharpeho poměru).

Pokud byla strategie zpětně otestována a je považována za nezkreslenou (v míře, v jaké je to možné!), s dobrým Sharpe a minimalizovaným drawdownem, je čas vytvořit exekuční systém.

Exekuční systémy

Exekuční systém je prostředek, kterým broker odesílá a provádí seznam obchodů vygenerovaných strategií. Přestože generování obchodů může být částečně nebo dokonce plně automatizované, mechanismus provádění může být manuální, částečně manuální (tj. „jedním kliknutím“) nebo plně automatizovaný. U strategií LFT jsou běžné manuální a polomanuální techniky. U strategií HFT je nutné vytvořit plně automatizovaný prováděcí mechanismus, který bude často úzce propojen s generátorem obchodů (kvůli vzájemné závislosti strategie a technologie).

Klíčovými hledisky při vytváření prováděcího systému jsou rozhraní s brokerem, minimalizace transakčních nákladů (včetně provizí, skluzu a spreadu) a odchylka výkonnosti živého systému od zpětně testované výkonnosti.

Existuje mnoho způsobů, jak vytvořit rozhraní s brokerem. Sahají od telefonického zavolání brokerovi až po plně automatizované vysoce výkonné rozhraní pro programování aplikací (API). V ideálním případě chcete provádění svých obchodů co nejvíce automatizovat. To vám uvolní ruce, abyste se mohli soustředit na další výzkum, a také vám umožní provozovat více strategií nebo dokonce strategie s vyšší frekvencí (ve skutečnosti je HFT bez automatizovaného provádění v podstatě nemožné). Výše uvedený běžný software pro backtesting, jako je MATLAB, Excel a Tradestation, je vhodný pro jednodušší strategie s nižší frekvencí. Pro skutečný HFT však bude nutné vytvořit vlastní exekuční systém napsaný ve vysoce výkonném jazyce, jako je C++. Jako anekdotu uvádím, že ve fondu, kde jsem kdysi pracoval, jsme měli desetiminutovou „obchodní smyčku“, kdy jsme každých 10 minut stahovali nová tržní data a pak na základě těchto informací prováděli obchody ve stejném časovém rámci. K tomu jsme používali optimalizovaný skript v jazyce Python. Domnívám se, že pro cokoli, co se blíží minutové nebo sekundové frekvenci dat, by byl ideálnější jazyk C/C++.

Ve větším fondu často není optimalizace provádění obchodů doménou kvantového obchodníka. V menších obchodech nebo HFT firmách však obchodníci JSOU vykonavateli, a proto je často žádoucí mnohem širší soubor dovedností. Mějte to na paměti, pokud se chcete nechat zaměstnat ve fondu. Vaše programátorské dovednosti budou stejně důležité, ne-li důležitější než váš talent v oblasti statistiky a ekonometrie!“

Další významnou otázkou, která spadá pod exekuci, je minimalizace transakčních nákladů. Transakční náklady mají obecně tři složky: Provize (nebo daň), což jsou poplatky účtované makléřskou společností, burzou a Komisí pro cenné papíry a burzy (nebo podobným vládním regulačním orgánem); skluz, což je rozdíl mezi tím, za co jste zamýšleli příkaz vyplnit, a tím, za co byl skutečně vyplněn; spread, což je rozdíl mezi nákupní a prodejní cenou obchodovaného cenného papíru. Všimněte si, že spread NENÍ konstantní a závisí na aktuální likviditě (tj. dostupnosti nákupních/prodejních příkazů) na trhu.

Transakční náklady mohou znamenat rozdíl mezi extrémně ziskovou strategií s dobrým Sharpeho poměrem a extrémně ztrátovou strategií s hrozným Sharpeho poměrem. Správně předpovědět transakční náklady ze zpětného testu může být problém. V závislosti na frekvenci strategie budete potřebovat přístup k historickým burzovním datům, která budou zahrnovat ticková data pro nákupní a prodejní ceny. Z těchto důvodů se optimalizaci exekucí ve větších fondech věnují celé týmy kvantifikátorů. Vezměme si scénář, kdy fond potřebuje odložit značné množství obchodů (důvodů k tomu je mnoho a jsou různorodé!). „Vypuštěním“ takového množství akcií na trh rychle sníží cenu a nemusí dosáhnout optimálního provedení. Proto existují algoritmy, které „dodávají“ příkazy na trh, i když pak fond riskuje skluz. Dále se na těchto nutnostech „přiživují“ jiné strategie, které mohou neefektivity využít. To je doménou arbitráže ve struktuře fondu.

Poslední hlavní problém exekučních systémů se týká odchylky výkonnosti strategie od zpětně testované výkonnosti. K tomu může dojít z řady důvodů. O zkreslení při pohledu dopředu (look-ahead bias) a zkreslení při optimalizaci jsme již podrobně hovořili, když jsme uvažovali o backtestech. Některé strategie však neumožňují snadné testování těchto zkreslení před nasazením. K tomu dochází nejčastěji u HFT. V systému provádění i v samotné obchodní strategii mohou být chyby, které se při backtestu neprojeví, ale projeví se při reálném obchodování. Na trhu mohlo dojít ke změně režimu po nasazení vaší strategie. Nové regulační prostředí, měnící se nálada investorů a makroekonomické jevy mohou vést k odchylkám v chování trhu, a tím i v ziskovosti vaší strategie.

Řízení rizik

Závěrečným dílem skládačky kvantitativního obchodování je proces řízení rizik. „Riziko“ zahrnuje všechna předchozí zkreslení, o kterých jsme hovořili. Zahrnuje technologické riziko, jako je například náhlá porucha pevného disku serverů umístěných společně na burze. Zahrnuje brokerské riziko, jako je například bankrot brokera (vzhledem k nedávnému strachu s MF Global to nezní tak šíleně!). Zkrátka zahrnuje téměř vše, co by mohlo narušit realizaci obchodování, jehož zdrojů je mnoho. Řízení rizik kvantitativních strategií jsou věnovány celé knihy, takže se zde nebudu pokoušet objasnit všechny možné zdroje rizik.

Řízení rizik zahrnuje také tzv. optimální alokaci kapitálu, což je odvětví teorie portfolia. Jedná se o způsob, jakým je kapitál alokován do souboru různých strategií a do obchodů v rámci těchto strategií. Jedná se o složitou oblast, která se opírá o netriviální matematiku. Odvětvový standard, podle kterého se řídí optimální alokace kapitálu a pákový efekt strategií, se nazývá Kellyho kritérium. Protože se jedná o úvodní článek, nebudu se jeho výpočtem zabývat. Kellyho kritérium obsahuje některé předpoklady o statistické povaze výnosů, které na finančních trzích často neplatí, takže obchodníci jsou při jeho implementaci často konzervativní.

Další klíčová složka řízení rizik spočívá v řešení vlastního psychologického profilu. Do obchodování se může vplížit mnoho kognitivních zkreslení. I když u algoritmického obchodování je to, pravda, méně problematické, pokud je strategie ponechána na pokoji! Častým zkreslením je averze ke ztrátě, kdy ztrátová pozice nebude uzavřena kvůli bolesti z nutnosti realizovat ztrátu. Stejně tak může dojít k předčasnému výběru zisku, protože strach ze ztráty již dosaženého zisku může být příliš velký. Další častá předpojatost je známá jako předpojatost z doby minulé. Ta se projevuje tehdy, když obchodníci kladou příliš velký důraz na nedávné události a ne na dlouhodobější období. Pak je tu samozřejmě klasická dvojice emočních zkreslení – strach a chamtivost. Ty mohou často vést k podhodnocení nebo nadhodnocení, což může způsobit výbuch (tj. směřování vlastního kapitálu účtu k nule nebo ještě hůře!) nebo snížení zisku.

Shrnutí

Jak je vidět, kvantitativní obchodování je mimořádně složitá, i když velmi zajímavá oblast kvantitativních financí. V tomto článku jsem doslova poškrábal povrch tohoto tématu a už začíná být poměrně dlouhý! O problematice, které jsem se věnoval pouze jednou či dvěma větami, byly napsány celé knihy a články. Z tohoto důvodu je před podáním žádosti o práci v oblasti kvantitativního obchodování s fondy nutné provést značné množství základního studia. Přinejmenším budete potřebovat rozsáhlé znalosti statistiky a ekonometrie s bohatými zkušenostmi s implementací prostřednictvím programovacího jazyka, jako je MATLAB, Python nebo R. U sofistikovanějších strategií na úrovni vyšších frekvencí bude váš soubor dovedností pravděpodobně zahrnovat modifikaci linuxového jádra, C/C++, programování v assembleru a optimalizaci latence sítě.

Pokud máte zájem pokusit se vytvořit vlastní algoritmické obchodní strategie, mým prvním návrhem by bylo, abyste se dobře naučili programovat. Dávám přednost tomu, abyste si co nejvíce datových grabberů, backtesterů strategií a exekučních systémů vytvořili sami. Pokud je v sázce váš vlastní kapitál, nebude se vám v noci lépe spát s vědomím, že jste svůj systém plně otestovali a jste si vědomi jeho úskalí a konkrétních problémů? Svěření této činnosti dodavateli sice může krátkodobě ušetřit čas, ale z dlouhodobého hlediska by mohlo být velmi nákladné.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.