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í
  • Má přednáška na QuantExpo

    Pražské QuantExpo bude především o zahraničních osobnostech a jsem moc rád, že se do Prahy podařilo pozvat velmi zajímavé tradery s praktickými tématy. Jedním ze dvou česky prezentovaných témat (vše ostatní bude samozřejmě do češtiny tlumočeno) bude má přednáška. Co jsem si připravil a proč si myslím, že je dobré se na téma trochu připravit?

     

       quantexpo-prednaska.png >

     

    Systematické a algoritmické obchodování představuje mix několika základních dovedností – nápadů, datových analýz a programování. Myšlenek a prezentovaných obchodních přístupů je dnes k dispozici prakticky neomezené množství a každým dnem jsou publikovány nové. Málokterý obchodník je přitom zkušený trader a současně dobrý programátor v jedné osobě. A tak vzniká u mnoha traderů otázka – jak efektivně dostupné myšlenky ověřovat a adaptovat? Jak smysluplně vypadající modely rychle otestovat coby obchodní systém a najít takové, které stojí zato předat k robustnějšímu naprogramování?

    Více než kdy jindy přichází ke slovu potřeba prototypování. To znamená velmi rychlého otestování obchodní myšlenky bez toho, aniž bychom museli dobře ovládat programování, složitě vytvářet dlouhé programovací kódy, ladit je a kompilovat. Ideálně s možností zcela volného využívání všech informací bez omezení ze strany používané platformy. Tedy například s využitím libovolných přístupů a dat (kdy osobně vidím velký prostor ve využívání a kombinování různých alternativních dat), bez nutnosti data složitě připravovat a čistit a s naprostou flexibilitou kombinování všeho, co kombinovat chceme (různé systémy do portfolií atd.). A bohužel tradiční dostupné softwary na toto stavěné nejsou.

    Na QuantExpo tak chci ve své přednášce ukázat, jak snadno lze pro prototypování použít Python. Jeden z hlavních bezplatných nástrojů, který se dnes ve finančním světě pro tyto účely používá čím dál více. Pochopitelně nepůjde o „kurz používání Pythonu“, spíše plánuji prezentovat, že s hotovými moduly, které jsou pro Python dnes bezplatně k dispozici, jde prototypovat systémy opravdu velmi jednoduše. Vše budu ukazovat na konkrétním příkladu prototypování myšlenky obchodního systému statistické arbitráže, což je z mého pohledu mj. i zajímavý diverzifikační přístup do portfolií zejména v době vyšší volatility. Krok za krokem uvidíte, jak se až překvapivě rychle můžeme dostat od základní myšlenky k finální equity křivce i s tím, že pro výpočet hodnoty hedge pozice použijeme pokročilejší statistickou funkci.

    Celý komentovaný kód pak budu poskytovat ve formátu jupyter notebook, ve kterém je velmi snadné jej upravovat, zkoušet a rozvíjet. Z mého pohledu tak jde o ideální start pro seznamování se s Pythonem, kdy trader nezačíná studiem nudných principů programovacího jazyka (byť jednoduchého), ale řeší konkrétní, pro něj zajímavou situaci. A teprve ta ho „donutí“ k tomu, aby se naučil i potřebné základy jazyka. Sám jsem s Pythonem začínal touto cestou a jsem za ní nesmírně rád, protože mi v důsledku v tradingu velmi rozšířila mé možnosti a schopnosti.

    Pokud vás téma prototypování obchodních přístupů s Pythonem zajímá a chcete naplno využít informace, které budu na QuantExpo předávat, doporučuji zkusit si Python nainstalovat a začít jeho prostředí zkoumat (hlavně si najděte tutoriály na spuštění jupyter notebooku). Pokud nejste programátoři a nechcete řešit postupné doinstalování různých knihoven, tak bych začal stažením balíku Anaconda – určitě použijte instalátor s Pythonem 3.6. Po přednášce budete tak moci ve studiu hned pokračovat s pomocí mého dodaného Notebooku. A samozřejmě v rámci QuantExpo můžeme hned osobně probrat otázky, na které jste při zkoumání prostředí Pythonu z pohledu tradera narazili.

    A mimochodem – minimálně Robert Carver má ke své přednášce o optimalizaci portfolií také k dispozici Python kódy. A co jsem viděl, tak ve stejném jazyce publikoval kód svého systému akciového portfolia i Andreas Clenow. S postupně získávanými znalostmi tak budete schopni hned prototypovat i jeho myšlenky (s přímo dodaným kódem), a rychle tak zapracovávat know-how do vlastních workflow.

    Se všemi se těším na setkání 4.11.2017 v Praze na QuantExpo nejen na mé přednášce.

    1.10.2017

    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

    Shrnutí mých aktuálních poznatků s párovým obchodováním akcií

    Hledáte-li stabilitu ve svém obchodování, patrně jste již také přišli na to, že jen těžko se dá dobře diverzifikovat „podobnými systémy“. Chce to pracovat nejlépe s různými logikami a zcela odlišnými „edge“. Jeden z takových je párové obchodování akcií, které letos znovu přidávám do svého portfolia. V dnešním článku shrnuji, proč je tato oblast pro mne zajímavá.
    Stručný popis párového obchodování
    V párovém obchodování (kterému se říká občas i statistická arbitráž) obchodujeme relativní změnu ceny dvou akcií. Nejčastěji takových, které mají hlubší fundamentální vztah. Ceny takových akcií se pohybují podobně. V obchodování pak můžeme spekulovat na situace, kdy se ceny sledovaných trhů příliš „rozejdou“. Velmi často se totiž poměr cen obou trhů po čase zase srovná, a celá situace tak může představovat zajímavou obchodní příležitost.
    Příkladem může být například pár KIM-WRI, který patřil k mým oblíbeným již před více než 10 lety, kdy jsme na téma párového obchodování měli na Finančníkovi i kurz (na kterém jsem tento pár ukazoval ve svém portfoliu). Jde o akcie dvou realitních investičních společností Kimco Realty a Weingarten Realty. Obě společnosti se pohybují na stejném segmentu trhu a působí na ně velmi podobné fundamentální vlivy. Poměr cen obou společností by se tak s vysokou pravděpodobností mohl udržovat v určitém poměrně konzistentním vztahu.
    Pár (vytvořený podílem cen KIM/WRI) si můžeme zobrazovat graficky:

    Černá linka je samotná close cena páru (podíl KIM/WRI násobím ještě 100, abych nemusel pracovat s příliš malými čísly). Následně jsem do grafu doplnil i další nástroje, se kterými pracuji. Červené obálky představují indikátor Bollinger bands (s periodou 20,2). Zelená linka pak jednoduchý klouzavý průměr také s periodou 20.
    Obchodování páru je pak velmi jednoduché. V okamžiku, kdy se cena vychýlí mimo druhou standardní odchylku (obchoduje se mimo Bollinger bands pásma), pár shortujeme (pokud se vychýlil nad pásmo) nebo nakupujeme (pokud se vychýlil pod pásmo). Obchod ukončuji v momentě, kdy se pár vrátí ke klouzavému průměru.
    Existují i další různé způsoby, jak cenu páru počítat a sofistikovaněji stavět logiku obchodního systému. Ale upřímně - toto již zásadní rozdíly ve výsledcích nedělá. Pointa párového obchodování je jinde (a dostanu se k ní níže).
    Na první pohled tak vidíte, že párové obchodování je z principu opravu jednoduché. Pokud zbacktestuji výše zformulovanou logiku na páru KIM-WRI, dostanu následující equity křivku:

    Ta sama o sobě není nějak závratná, ale demonstruje, že obchodování daného principu má edge i v dlouhodobém OOS. Metoda generuje peníze.
    Přitom stačí už jen velmi málo, aby věci začaly být opravdu zajímavé. Dané „kouzlo“, jak asi tušíte, spočívá v diverzifikaci – obchodování více párů najednou.
    Takto pro ilustraci vypadá hrubý backtest mého aktuálně obchodového portfolia, kde pracuji současně s 10 páry.

    Na portfolio páru aplikuji úplně stejný kód, který je popsán výše. Systém tak obchoduje na dlouhou i krátkou stranu a obchody jsou na obě strany velmi pěkně vyrovnány:

    Výsledná equity křivka vytváří větší množství velmi stabilních výsledků (systém obchoduje s vysokou úspěšností 76 % a RRR blízko 1:1). Není divu, že velmi zajímavě vypadá risk i z pohledu monte carlo analýzy:

    Šance, že systém bude vydělávat peníze i nadále, jsou zde opravdu vysoké.
    Pokud párové obchodování shrnu, tak základní charakteristiky, které mi na daném stylu přijdou velmi atraktivní jsou následující:
    Samotný obchodní princip (plně popsaný výše), je velmi jednoduchý a srozumitelný. Obchodní logiku jakkoliv neoptimalizuji. Na všechny páry je aplikována stejně. Strategie neobchoduje „predikce časových řad“, ale vztahy mezi dvěma akciemi, které lze předpovídat s mnohem vyšší pravděpodobností a robustností. Strategie je tzv. market neutrální. Ve svém přístupu neaplikuji žádné globální filtry na býčí či medvědí trhy. Vztahy mezi jednotlivými akciemi fungují stále stejně (maximálně jsou pohyby volatilnější). Z uvedených principů mi párové obchody vždy přišly zajímavé. Jak už jsem i zmínil – řada z vás pamatuje informace, které jsme na Finančníkovi sdíleli před 10 lety.
    Přesto jsem sám nikdy nealokoval v portfoliu párům více kapitálu, což letos plánuji změnit.
    Proč jsem se párům nevěnoval v posledních letech více? Aneb, kde je reálná „pointa“ párového obchodování?
    Největším důvodem jsou náročnější exekuce, pokud je děláme ručně. Přeci jen pokud člověk obchoduje 10 párů, je to 20 akcií. Obchodů je poměrně hodně a skoro každý den se tak „něco děje“. Páry je také nejlepší obchodovat na konci dne, např. pomocí MOC příkazů, kdy se dostávají nejlepší plnění v rámci uzavíracích aukcí. To už je při ručním obchodování poměrně otročina a v evropský večer již u počítače sedět nechci. A tak jsem pozornost věnoval v tradingu více jiným směrům.
    Poslední roky se ale naplno věnuji nejrůznějším automatizacím, a tak automatizované exekuce párů již pro mě nejsou problém. Ostatně i řada absolventů swingového workshopu dnes na Finančníkovi zadává denně automatizovaně více příkazů, než je potřeba u párového portfolia, jen u systému Mopull limit a jistě by mi potvrdila, že to technologicky problém není (a vzhledem k automatizaci není třeba s tímto trávit žádný čas). Tím, že jsem se sám posunul v oblasti automatizací exekucí, se pro mě najednou stávají vysoce atraktivní přístupy, které jsem dříve právě pro tento důvod neupřednostňoval.
    A také druhý hlavní důvod se točí kolem technologií a skriptování. Součástí systému párového obchodování je i výběr párů, které budeme obchodovat. Toto, jednoduše řečeno, představuje testování různých vazeb mezi akciemi, zkoumání korelací a kointegrací. A výběru párů, které mají historicky tendenci „vracet se k průměrné hodnotě“. Tedy zásadně se nerozcházet. A jak už to bohužel bývá, běžné retailové programy určené pro trading nejsou na podobné sofistikovanější operace vůbec dělané. Před lety jsem to řešil vlastním systémem, který mi pomohl dát dohromady programátor používající tradiční, spíše webové technologie (PHP atd.). Systém do určité míry fungoval, ale nebyl jsem příliš schopen jej rozšiřovat o nové nápady a taktiky. Ohromný zlom pro mě přišel až se studiem Pythonu (viz například můj tři roky článek Petrovy postřehy z cesty k algoritmickým strategiím). U něj jsem pochopil, že vše, co v tradingu potřebuji, lze často v Pythonu vytvořit pomocí pár řádků kódu. U párů toto není výjimkou – ostatně viz základní workflow v Pythonu, které má řada z vás k dispozici z mé přednášky na QuantExpu. V té době jsem se začal k párům vracet vyzbrojen především potřebnými technickými znalostmi.
    Shrnutí
    Dnešním článkem jsem chtěl především poukázat na zajímavý směr, který stojí za zkoumání pro všechny, kteří hledají další způsoby diverzifikace. Na výše uvedených příkladech můžete sami vidět základní charakteristiky tohoto stylu obchodování. Otestovat si jeden pár typu KIM-WRI pak není problém ani v běžných obchodních platformách. Sami pak můžete zkoušet testovat další páry a posouvat se v této oblasti vpřed.
    Pokud hledáte technickou inspiraci, „jak konkrétně na to“, tak jsem pro všechny účastníky uzavřené skupiny TechLabu připravil videotutoriál Párové obchody v Amibrokeru obsahující všechny potřebné kódy a popisující, jak se v Amibrokeru dostat od samotné akcie k backtestu párového portfolia.

    Zkušenosti začínajícího tradera se začátky živého obchodování statistických arbitráží

    V souvislosti s našim kurzem párového obchodování dostáváme s Tomášem dotazy, týkají se základních charakteristik tohoto stylu obchodování - výnosnosti strategie, minimálního možného kapitálu, časové náročnosti, výsledků při aktuální volatilitě a podobně. Jelikož na podobné dotazy není možné v tradingu odpovídat univerzálně, neboť výsledky se liší trader od tradera, připravil jsem odpovědi ve formě popisu konkrétních živých výsledků a zkušeností začínajícího tradera. Ten začal s párovým obchodováním podle mých instrukcí jako se svoji první obchodní strategií na malém účtu začátkem roku 2011 a při zaměstnání ji dnes obchoduje živě přes půl roku.
    Jelikož jsem se s traderem dohodl na možnosti publikovat všechny detaily jeho výkonnosti – včetně stavu účtu – nebudu zde uvádět jeho identitu. Jde o člověka, který se o obchodování zajímá cca 2 roky, ovšem díky intenzivnímu zaměstnání neměl fakticky čas s tradingem reálně začít. Obchodník se kdysi zúčastnil našeho kurzu intradenního obchodování, intenzivněji jsme spolu začali komunikovat na podzim roku 2010, kdy mi pomáhal programovat některé dílčí drobnosti pro mé párové obchodování. Při spolupráci jsme začali komunikovat o tradingu a o stylech obchodování, kterým se aktuálně věnuji. Díky jeho pracovnímu vytížení a dobrým programátorským schopnostem, jsem mu poradil, aby zkusil svoji pozornost věnovat právě statistickým arbitrážím, které lze poměrně dobře zautomatizovat a nevyžadují tak mnoho pozornosti při samotných exekucích a hlavně – jsou poměrně snadné na pochopení. Obchodníkovi, dnes již kamarádovi, se myšlenka líbila a společně jsme začali rozvíjet mé obchodní myšlenky směrem k pokročilé automatizaci. Při tom si trader se statistickými arbitrážemi seznámil podrobněji a na konci roku 2010 začal párové obchodování paper tradovat.
    Na počátku roku 2011 se rozhodl pro otevření obchodního účtu u Interactive Brokers, které díky možnosti API, používáme pro automatické exekuce. Stejně jako většina začínajících obchodníků chtěl nejprve začít s co nejmenším účtem, konkrétně si otevřel účet s 15 000 USD. To je přibližné minimum, které si myslím, že je pro podobné strategie vhodné. Párové obchodování je postaveno na obchodování dvou silně korelujících akcií proti sobě a nepracuje se proto s vysokým pákovým efektem jako při obchodování komodit. Strategie proto obecně vyžaduje vyšší kapitál, než například u intradenního obchodování futures. Ovšem díky nižšímu pákovému efektu jsou na druhou stranu výsledky méně volatilnější. Navíc se při statistických arbitrážích (jiné označení pro párové obchodování) hodně využívání diverzifikace – obchodování více párů najednou. Diverzifikace opět vede k nižší volatilitě portfolia, ale pochopitelně čím nižší kapitál, tím menší možnosti diverzifikace. Např. s kapitálem 5 000 USD by šlo obchodovat rozumně jeden akciový pár (tj. dvě akcie proti sobě) ovšem s vyšší volatilitou na účtu protože by se obchodník nemohl vůbec diverzifikovat. Minimální kapitál pro živé obchodování párů tak vnímám okolo 10 000 USD, s 15 000 USD už lze začít vydělávat tak, aby poplatky tvořily přijatelnou část nákladů vůči výnosům (u akcií existují určité minimální poplatky, kvůli kterým se nevyplatí obchodovat s velmi malým množstvím akcií) a současně obchodník mohl začít aplikovat diverzifikaci.

    Výsledky první fáze živého obchodování mého kamaráda vidíte na screenshotu. Jde o obchodování za období od 15.2.2011 do konce května 2011. Obchodník si otevřel účet s 15 000 dolary a obchodoval maximálně 5 párů současně s tím, že každý pár otevíral s kapitálem 3 000 USD (Interactive Brokers poskytuje na poziční obchody 50% margin. Pro otevření páru skládajícího se ze dvou akcií v hodnotě 3 000 USD je potřeba použít kapitál nikoliv 6 000, ale 3 000 USD). Uvedená equity je již po odečtení slippage a komisí. Právě ty představují u menších účtů největší „zátěž“. Na výše uvedeném účtu bylo provedeno 55 obchodů s celkovým čistým profitem 1 464 USD. Poplatky tvořily 232 USD – tedy skoro 16% zisku. Zhodnocení 1 464 USD za 3,5 měsíce je solidní a pochopitelně odpovídá velikosti účtu. S pozičními strategiemi obecně nelze očekávat profity v řádech stovek procent ročně. Osobně mířím u párové obchodování na zhodnocení 15-25% ročně (strategie obchoduje plně automatizovaně) a zhodnocení 1 464 USD z účtu 15 000 USD spadá do této hranice.
    Na uvedené equity je vidět výraznější pokles způsobený větší ztrátou u cca 42 obchodu. Ztráty jsou pochopitelně součástí párového obchodování a zejména na menších účtech s možností menší diverzifikací je třeba hodnotit výsledky z dlouhodobější perspektivy (jako u kteréhokoliv jiného pozičního obchodování) neboť je větší šance, že obchodník alokuje kapitál do páru, který například prochází některým zásadním fundamentem, což je situace, která dokáže pár „rozhodit“. Je třeba také pamatovat na to, že uvedený graf reflektuje první výsledky živého obchodování po pár měsících seznamování se strategií.
    Co se menších účtů týče, dovolím si shrnutí:
    * Párové obchodování lze živě provozovat s kapitálem od cca 10 000 USD. Hranice 15 000 USD již umožňuje strategii obchodovat i s částečnou diverzifikací a tak, aby komise představovaly přiměřenou část profitů (do 20%).
    * S menším kapitálem (do 25 000 USD) je třeba si dát pozor na to, že podle americké legislativy se nesmí akcie na malém účtu do 25 000 USD obchodovat intradenně – tj. v průběhu dne otevřít 2x stejnou akcii. To u párů nehrozí, pokud je budete obchodovat jednou na konci dne. Pokud však budete páry obchodovat intradenně (tj. vstupovat a vystupovat kdykoliv v průběhu dne), můžete na tento limit narazit. (Pozn. na našem kurzu párového obchodování doporučujeme začít obchodovat páry pouze EOD, tedy jednou v průběhu celé obchodní seance a toto omezení tak nemůže obchodníka jakkoliv limitovat).
    * Zhodnocení zejména s menším účtem je třeba očekávat realistické – v jednotkách desítek procent ročně. Ovšem jak je vidět na tomto konkrétním příkladů, začít lze i s menšími účty.

    Druhou fázi obchodování párů zahájil obchodník začátkem června, kdy navýšil účet na 36 000 USD (tj. neobchodoval jen pár dnů, co probíhal transfer peněz na jeho obchodní účet). Obchodník se rozhodl kapitál příliš netříštit na větší diverzifikaci a tak v této fázi obchodoval stále současně maximálně 5 párů s alokovaným kapitálem 7 000 USD na pár (tedy více než 2x tolik co v první fázi). Výsledky jsou zobrazeny v grafu a odpovídají času od začátku června, do začátku tohoto týdne, tj. de facto do konce srpna (opět necelé 3 měsíce obchodování). Equity má velmi podobný průběh jako u první fáze obchodování, ovšem ziskové obchody jsou podstatně vyšší (a dokáží tak rychleji vyrovnat i větší ztráty) – je to zejména proto, že při vyšším účtu nezatěžují obchody tolik komise (které jsou citelné hlavně na straně zisků, neboť strategie obecně pracuje s vysokou úspěšností). V druhé fázi obchodování vygenerovala strategie párového obchodování čistý profit 4172 USD, komise nutné k dosažení tohoto výsledku představovaly 277 USD (tedy jen 6,6%). To je podstatné snížení nákladů, byť v druhé fázi obchodování byl také nepatrně nižší počet obchodů (44 vs 55 v první fázi).
    Shrnutí
    * Akciové statistické arbitráže lze obchodovat i s menším kapitálem. Při použití kapitálu cca 35 000 USD a výše už začínají být zajímavé i celkové roční dolarové výnosy ze strategie.
    *Párové obchodování je časově velmi nenáročné. Nejvyšší časovou náročnost představuje nalezení vhodných párů pro obchodování – těch měl popisovaný obchodník na začátku vybraných 12. Z těchto párů dodnes obchoduje stále stejných 10 párů (2 vyřadil, žádné nové nepřidal) a připravuje se po půl roce na další „výzkum“ – tj. nalezení vhodných párů k dalšímu obchodování (to je i důvod, proč s kapitálem 40 000 USD nediverzifikoval kapitál mezi více párů – v tuto chvíli nemá čas se věnovat jejich zkoumání).
    * Samotná exekuce se dá plně zautomatizovat - v tuto chvíli se strategii věnuje obchodník skutečně minimálně a nechává ji běžet i přes své dovolené, kdy vůbec není u svého počítače.
    * Na výsledcích živého obchodování pokrývající období 15. únor až konec srpna 2011 je zřejmé, že zvýšená volatilita párům spíše svědčí.
    * U vyšších účtů doporučuji jít cestou větší diverzifikace vedoucí k vyhlazení equity a menším rizikům „výraznějších“ ztrát v případě, že obchodník přehlédne vyhlašování fundamentu u akcie a podobně.
    * Uvedené výsledky jsou dosaženy se základní podobou strategie. To však neznamená, že by strategii nešlo dále zlepšovat. Vždy existuje prostor pro individuální vývoj a po půl roce živého obchodování přichází kamarád s již velmi dobrými nápady, kudy bude strategii dál zlepšovat.
    * Zkušenosti nejen s popisovaným kamarádem, ale i dalšími obchodníky mě utvrzuje, že párové obchodování je vhodné i jako první strategie pro poziční obchodování zejména pro technicky orientovanější obchodníky bez hlubších znalostí fungování trhu. Vždy je však dobré věnovat nejméně několik měsíců paper tradování strategie a poté strategii osahávat skrz menší účty.
    S ohledem na velkou specifičnost tohoto článku je možné k článku diskutovat pouze v uzavřené sekci účastníků našeho kurzu Kurz akciového párového obchodování (statistické arbitráže). Diskutujte prosím v tomto vlákně.

    Párové obchody v Amibrokeru

    V pondělí budu publikovat článek týkající se párového obchodování. Obecně jde o oblast, která ve spojení s automatizací stojí za pozornost. V TechLabu se věnujeme technickým aspektům obchodování a nebudu zde prezentovat úplně kompletní obchodní přístup. Nicméně bude jistě zajímavé podívat se, jak konkrétně v Amibrokeru lze základní párovou strategii testovat.

    V tutoriálu se zaměřuji na 3 oblasti:
    Vytvoření kompozitního tickeru spreadu. Vytvoření šablony pro zobrazování spreadu Kódu pro backtest. Výklad je tak přínosný i v případě, že chcete načerpat inspiraci, jak lze v Amibrokeru provádět podobné kroky.
    Tutoriaál naleznete zde.
×
×
  • 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.