Jump to content
Co nového? Mé kurzy
Hledat v
  • Více možností...
Najít obsah, který ...
Hledat výsledky v ...

petr

Administrators
  • Počet příspěvků

    3 988
  • Registrace

  • Poslední návštěva

  • Vítězných dnů

    44

petr naposledy vyhrál/-a dne March 14

petr měl nejvíce oceňované příspěvky!

Komunitní reputace

995 Excelentní

Více o petr

  • Hodnost
    Advanced Member

Autoři

  • Jméno autora
    Petr Podhajský

Poslední návštěvnící profilu

Seznam posledních návštěvníků profilu je vypnut a není zobrazován.

  1. Dnešní trhy vyžadují zejména na nižších timeframe průběžné zkoumání širších souvislostí toho, co v nich funguje a co už nikoliv. Což je dost práce, kterou je dobré maximálně zefektivňovat použitím různých nástrojů. Těch existuje celá řada, ale ne všechny stojí za námahu. Jednou z výjimek, která mě poslední dobou oslovila, je program GSB. Co je horší – snažit se slepě obchodovat systémy vytvořené tvrdým dataminingem, nebo mysl zabetonovat používáním starých přístupů? Těžko říci, ale z mé zkušenosti nepovede ani jedna z uvedených cest k dlouhodobým profitům. Agresivní dolování dat (datamining), kdy trader neustále prochází stejná historická data, až nalezne systém s parametry, které hledá, vede k obchodování přeoptimalizovaných systémů, které na nových datech nevydělávají. Používání starých a obecně známých přístupů sice může vést k systémům založených na smysluplných a ověřených principech, ovšem ani ty s velkou pravděpodobností nebudou zejména na nižších timeframe dnes již vydělávat. Jednoduše proto, že popisovaná tržní neefektivita z trhů vymizela tím, jak ji v průběhu času obchodovalo velké množství traderů. Je potřeba jít určitou střední cestou. Vycházet z ověřitelných a vysvětlitelných myšlenek a na nich se nebát stavět nové a inovované obchodní přístupy. Sám rád ve svém obchodování vycházím z „idea first“ přístupu, kdy systémy stavím na pro mě srozumitelné a odůvodnitelné hypotéze, proč by profitabilita daného přístupu měla v trzích vydržet. Současně si ale rád pomáhám automatizovaným prohledáváním ideálního kontextu, ve kterém základní myšlenka dnes funguje nejlépe (viz workflow Fcontext diskutované v AOS kurzu). Podobný přístup mi pomáhá objevit souvislosti, které není možné v rozumném čase otestovat ručně. Proto mě velmi potěšilo, že jsem objevil program Genetic System Builder (GSB), jehož autor, trader Peter Zwag, vyvíjí software, který se v řadě ohledech zaměřuje v trzích na řešení podobných problémů, které jsou i pro mě důležité. Řekne-li se genetická stavba obchodních systémů, patrně vás, stejně jako mě, napadne tradiční software pro „datamining“. Dnes existuje spousta programů umožňujících procházet historická data a, zjednodušeně řečeno na nich automatizovaně testovat různé kombinace indikátorů a cenových patternů za cílem získat obchodní systém. Jak jsem předeslal, jsem vůči podobným cestám poměrně skeptický. Bohužel často podobné softwary najdou to, co chce obchodník najít. Tedy systém s hezkými historickými výsledky včetně krásných ověření na OOS datech, která se prostě vyberou z tisíců a tisíců možných systémů, které systém vygeneruje. Proč se mi pak líbí GSB? Protože přes svůj název není program zaměřen jen na genetické vytváření systémů. Jeho silnou stránkou je analytické zkoumání širšího kontextu toho, co v trhu funguje a co nikoliv. A teprve do tohoto kontextu pak můžeme více či méně automatizovaně vytvořit obchodní systém. Tato filosofie hodně resonuje s tím, co při vývoji systémů sám vnímám za důležité a celkově je na programu vidět, že jej tvoří zkušený trader vycházející z vlastní praxe systematického obchodování (výsledky Petera jsou mj. ověřené například v časopise Futures Truth, kde sledují a porovnávají automaticky obchodované systematické strategie). Popsat konkrétní funkcionalitu GSB není úplně jednoduché, protože program toho umí opravdu hodně. A co především – je neustále rozšiřován (opravdu velmi aktivně). Je na něm skutečně znát, že je autorem využíván pro vlastní trading a analýzy trhu. Podrobnější představu o způsobu využití programu můžeme získat z těchto anglických videí (do fóra je nezbytná bezplatná registrace), program je pak možné vyzkoušet ve 14denní plně funkční demoverzi, kterou naleznete zde. Co tedy umí GSB ve zkratce? Jako kterýkoliv program na automatizované vytváření obchodních systémů umí GSB vzít jako vstup například 30minutová data trhu e-mini S&P 500 (ES) a zkoušet na jejich historii vytvořit obchodní systém složený z různých indikátorů a jejich parametrů. Co se mi líbí na GSB je skutečnost, že už tato část je dotažena nad rámec toho, co se nabízí jinde. Je možné pracovat s pokročilými fitness funkcemi ovlivňujícími výsledek vytvářených systémů, systémy automaticky verifikovat na vybraných dalších trzích a timeframe a následně je verifikovat pomocí WFO. Dále lze automaticky vytvářet systémy s využitím více trhů či timeframe, vybírat použité indikátory, aplikovat různé stop-lossy, výstupy atd. Řadu zmíněných funkcí nabízí i jiné podobné programy, byť si myslím, že GSB hezky integruje podstatné funkce, které v této oblasti trader potřebuje. V čem GSB z mého pohledu exceluje, je rychlost a výkon. A to je v této oblasti prakticky to nejdůležitější. Samotný GSB pracuje svižně. Můžeme jej spouštět jako klasickou desktopovou aplikaci, kde pochopitelně výkon nejvíce záleží na parametrech samotného použitého hardwaru. A ten je vždy omezený, i když zvolíme výkonnější hardware. Jako opravdu dobrý a promyšlený krok tak hodnotím skutečnost, že GSB umí pracovat coby cloudové řešení. V tomto případě nastavujeme testované analýzy v tzv. Managerech, které následně spouští Workery – instance zpracovávající výpočty. Ty mohou být na stejném počítači, na jiných našich počítačích nebo v cloudu – na cizích počítačích. Jako cloud přitom mohou sloužit i počítače ostatních uživatelů GSB (lze nastavit, jestli se do cloudu chceme zapojit či nikoliv). Toto provedení mi přijde jako opravdu dobré. Většinou se podobné programy instalují na servery, které běží nonstop (sám si řešení pronajímám, viz popis zde). Spotřeba elektřiny i odpisy hardwaru jsou v takovém případě započteny do ceny nájmu a je úplně jedno, jestli servery běží naprázdno nebo jsou plně vytíženy. V době, kdy doběhnou testy, tak dává naprostý smysl sdílet výkon s ostatními. Jakmile pak sám potřebuji skokový výkon a jsou volné servery ostatních, získávám násobně vyšší výkon, který by mne stál v pronájmu vlastních serverů opravdu hodně peněz. Samozřejmě sdílený výkon se liší v čase a nejvíce závisí na tom, jestli své servery využívá tvůrce programu Peter. Nicméně vesměs získávám s GSB běžně dvoj až trojnásobek výpočetního výkonu, než který mi poskytují vlastní servery. Což je u podobného řešení nezanedbatelná výhoda. V každém případě Peter slibuje, že uživatel vždy získá alespoň jednoho cloudového workera zdarma, což už samo o sobě může pomoci pohnout s výpočty. Ukázka prostředí GSB. Vpravo je vidět, že výpočet probíhá na celkem 30 workerech. Přitom jen 5 jich běží na mém vlastním hardwaru. Ostatní jsem v daném okamžiku využil bezplatně, což samozřejmě výrazně zvyšuje efektivitu celého výpočetního procesu. Dobré je, že Peter poskytuje k celému řešení bezplatně samostatný software Resource Manager umožňující výkon řídit – můžeme si například nastavit prioritu, se kterou se budou spouštět vlastní workery (a ostatní budou zastaveny). Sdílení výkonu pak probíhá naprosto automaticky. V Resource Manager mám nadefinované dvě skupiny – první jsou mí vlastní workeři. Ti mají přednost a běží v momentě, kdy s programem pracuji. V druhém řádku jsou potenciální workeři z cloudu, kteří se spustí v okamžiku, kdy server není vytížen. Právě zmíněná cloudová funkcionalita posouvá GSB k možnostem, které jsem jinde nenašel (v dané cenové kategorii). Vysoký dostupný výkon mi coby traderovi poskytuje analytické možnosti zmíněné na začátku článku. Efektivně dovoluje zjišťovat, co na daném trhu funguje a co ne. Tak, že vygenerujeme statisticky relevantní počet, například několik desítek tisíc systémů a vyhodnocujeme různé celkové degradace systémů v out of sample datech. Nezaměřujeme se na jeden systém, ale na statistický vzorek. Můžeme například snadno porovnat OOS degradaci 10 000 vytvořených systémů z ověřování na jiném trhu a bez tohoto ověřování. Snadno tak zjistíme, jestli daný prvek ověřování skutečně celkově pomáhá na daném timeframe vytvářet robustnější systémy či to byla jen záležitost u několika málo systémů. Jistě, spousta uvedeného lze provádět v jiných softwarech. Ostatně sám jsem některé podobné principy testoval v Amibrokeru s pomocí OLE automatizace. Ale právě s využitím cloudového výkonu je toto opravdu práce na jiné úrovni. I díky tomu, že program umožňuje některé chytré analýzy, které jsem zatím v jiných programech neviděl. Především způsob definování in-sample a out of sample dat, pomocí kterých je možné sledovat degradaci systému v rámci učení (in-sample data) a testování (out of sample data). Tradičně se dělí data trhu například v poměru 60 % IS a 40 % OOS (nebo podobně, podle osobní preference). Jenže to s sebou nese problém, že daná testovaná období trhu se mohou velmi lišit svým charakterem. Proto se mi velmi líbí myšlenka používat jako OOS data každý druhý den či každý druhý měsíc a podobně. Systémy pak učíme na celém období dat (kdy software vidí například každou druhou úsečku) a testujeme na druhé části úseček. Do vývoje systému pak zahrnujeme všechny zásadní fáze trhu a vyhodnocení na OOS bude mít více vypovídající hodnotu. V GSB lze toto přitom nastavovat velmi flexibilně. Silnou stránku GSB vnímám v jeho komplexnosti, která je využitelná v praxi právě i díky cloudovému výkonu. V řadě programů lze provádět například walk forward testování (wf) a GSB není výjimkou. Ale kdo někdy wf prováděl, jistě může potvrdit, že tyto testy vyžadují hodně výkonu a tedy času, pokud vše probíhá na jednom počítači. V GSB lze i walk forward provádět pomocí workerů (tedy v cloudu) a reálně lze propočítat vyšší stovky wf na intradenních systémech za den. Na cloudu lze nechat i automatické ověřování systémů na jiných trzích/timeframe a následně jen ve statistikách sledovat, jak si systém vedl na zvolených trzích/timeframe určených pro validaci. Výsledkem je pak podobný přehled, kde můžeme na jednom místě vidět, jak stabilní jsou výsledky. Lze sledovat stabilitu výsledku na ověřovaných jiných trzích a timeframe, ale i stabilitu výsledků z pohledu použitých parametrů. V tomto ohledu se mi moc líbí Peterův parametr stability umožňující vybírat ty systémy, jejichž parametry se v průběhu času nemění (a existuje tak vyšší šance, že v live tradingu bude systém robustnější). Generované systémy lze z GSB rovnou přenášet v hotovém kódu do TradeStation. GSB toho skutečně umí hodně, byť je to pochopitelně opět jen software – nástroj, jehož výsledky budou do velké míry záležet na jeho použití. Určitě nejde o software typu „zapni“ a po x minutách získáš systémy připravené k živému obchodování. Naopak. Jde o nástroj poskytující různé analýzy, nad kterými je třeba přemýšlet a trávit čas. A teprve následně výsledek práce použít k vytvoření obchodovaného modelu. Který by ale měl mít vyšší šance na robustní výkonnost v živých trzích. V každém případě doporučuji shlédnout Peterova videa popisující metodologii s jakou trhy testuje. A případně prozkoumat zkušební verzi programu. Už i to může přinést do vašeho vývoje strategií nové podněty a zajímavé inspirace. Té nabízí GSB dost. A byť software stojí 1 500 dolarů, jde z mého pohledu o smysluplné řešení v této silně konkurenční oblasti.
  2. Velmi zásadní otázka, kterou si pokládá každý, kdo se do obchodování jednou pustí. Pojďme si ukázat jednoduchou taktiku, kterou aplikuji na rychlé a dynamické intradenní trhy. Funkčnost zejména systematických (mechanických) intradenních strategií je časově omezena. Jen naivní obchodník si může myslet, že v trzích nalezne „perpetuum mobile“, které nasadí a bude mu vydělávat trvale peníze. Jakmile se v trzích objeví určitá neefektivita, kterou využíváme pro naše profity, je jen otázkou času, než ji obchodníci „vyčerpají“. Toto je realita tradingu, kterou je potřeba akceptovat. U diskréčního obchodování se může trader postupně adaptovat na měnící se trhy. U systematických strategií je, zejména na nízkých timeframe, potřeba framework vyhodnocování výkonnosti. Takový, který nám umožní v případě vyprchávající výkonnosti jednat – strategii například reoptimalizovat nebo nahradit. Taktik sledováni výkonnosti strategií v živém obchodování používám hned několik. Jedna z jednodušších, ale funkčních, může spočívat v porovnání základních metrik živého obchodování s těmi, které máme otestované. Přičemž platí, že bychom se vždy měli maximálně snažit porovnávat metriky živého obchodování s výsledky tzv. out-of-sample testování sytému. Jedna z metrik, kterou používám, je samotný průměrný obchod. Pokud věříme, že je náš backtest relevantní, pak s pomocí průměrného obchodu můžeme dělat určité „predikce“, jak by se systému mělo dařit v budoucnu. Při velikosti průměrného obchodu +100 USD můžeme například předpokládat, že v ideálním světě budeme mít na účtu po 100 obchodech výdělek 10 000 USD. Pochopitelně, že realita není nikdy takto jednoduchá. Velikost průměrného obchodu se bude v průběhu času měnit. Pokud je ale náš systém robustní, neměla by být realita z pohledu většího množství obchodů „úplně mimo“. Na popis rozumné odchylky si můžeme vzít na pomoc statistiku a vytvořit si pásma v oblasti první a druhé standardní odchylky, kde bychom očekávali výsledek našeho systému v závislosti na uplynulém čase. Pojďme se podívat na příklad. Toto je equity křivka systému, jehož vývoj proběhl ke konci roku 2017. Od této doby jsou výsledky generovány trhem bez jakékoliv optimalizace nebo úprav systému: Na konci equity křivky je vidět, jak se pomalu zplošťuje. A nabízí se tak otázka – funguje systém stále ještě v očekávaných parametrech? Jednu z odpovědí mi poskytuje následující graf: Modrá linka představuje lineární predikci průměrného obchodu. Jednoduše spočítám průměrný obchod za určité období v historii (většinou na cca 2 roky posledního vývoje) a zobrazím si „ideální equity křivku“. Zelené a červené obálky kolem této křivky pak představují první a druhou standardní odchylku. Vesměs se mi pak potvrzuje, že funkční systémy oscilují právě v oblasti mezi druhými standardními odchylkami predikce. Na uvedeném příkladu je pak zřejmé, že systému se stále daří velmi, velmi dobře. De facto lépe, než v backtestu a aktuální pohyb do strany je naprosto v normě. Na výsledky strategie je třeba vždy nahlížet z dostatečně dlouhodobého pohledu a z takového je vývoj naprosto perfektní. V systému jsem připraven i na drawdown, protože je zcela v pořádku, aby se equity křivka podívala i ke spodní hraně pásma vyznačeného červenými standardními odchylkami. Daný postup má mnoho praktických nuancí. Určitě je dobré okno predikce například posouvat tak, jak běží čas – tj. je třeba si definovat, na jak dlouho „predikci“ vytváříme a jak dlouhou historii používáme. Také se mi osvědčilo jej používat spíše na rychlejší intradenní systémy než pomalejší swingové strategie. Co se týče konkrétní aplikace, tak výpočty jdou jistě vytvářet například v Excelu nebo jiném tabulkovém editoru. Publikované screenshoty ale pocházejí z naší vlastní aplikace pro řízení a vyhodnocování risku, ve které je mým cílem postupně sledovat a analyzovat metriky všech obchodovaných systémů přes různé brokery. V této oblasti se mi daří poměrně velký posun a jak jsem uvedl již několikrát – vnímám ji ve svém obchodování jako prioritu. Často je možné obchodovat i jednoduché principy a mnohem důležitější, než samotné vstupy, jsou pak odpovědi na otázky, jaké systémy kombinovat v portfoliích a samozřejmě, kdy systém vyřadit nebo mu v portfoliu přiřadit nižší váhu...
  3. V minulém článku jsme si ukázali, jak důležité je přemýšlet o obchodovaných titulech nikoliv z pohledu dnešního dne, ale z pohledu dne, kdy bychom obchody otevíraly. Rozdíly mohou být občas opravdu výrazné. Jak se klamu přeživších vyhnout v praxi? Pokud netušíte, co je to Survivorship bias, česky klam přeživších, tak si přečtěte nejprve tento článek publikovaný minulý týden. Vlastní survivorship bias free databáze Pochopitelně vždy je možné diskutovaný problém řešit kompletně vlastními silami. Výhodou je naprostá flexibilita, nevýhodou pak nutná znalost programování, vytváření celého vlastního ekosystému (napojení databáze na systém umožňující backtestování) a nutnost pořízení dat obsahujících i delistované akcie. Dnes je situace v mnoha ohledech jiná než dříve, kdy nezbývalo, než si podobné řešení skutečně vytvořit. Sám jsem s týmem šel nejprve touto cestou. Data jsme používali od quantquote.com, kde lze za poměrně rozumné peníze pořídit kompletní intradenní historická data akcií obchodovaných v různých indexech, včetně těch delistovaných. Využití bezplatných survivorship bias free databází Pokud se jen trochu orientujete v programování, pak bych dnes jednoznačně začal využitím hotových backtestovacích řešení, která již klam přeživších zohledňují. O mých oblíbených jsem psal na Finančníkovi několikrát – používám quantopian.com a quantconnect.com. Obě platformy obsahují rozsáhlé intradenní databáze zohledňující i delistované akcie. A jsou k dispozici zdarma. Nevýhodou těchto řešení je, že již vyžadují více programátorského myšlení a zkušeností. Pluginy integrované do retailových softwarů Osobně tak nakonec, coby neprogramátor, dnes nejvíce používám speciální plugin od společnosti Norgate Data představující jeden z důvodů, proč používám Amibroker. Norgate Data poskytují denní ceny akcií s tím, že je možné si připlatit za plugin, který v Amibrokeru vytvoří velmi komfortní survivorship bias free databázi. Řešení se skládá z několika základních funkcionalit: a) Norgate udržují aktuální i historické seznamy konstituentů jednotlivých indexů. b) Současně mají v databázi i delistované akcie. c) Do Amibrokeru integrovali funkce umožňující kontrolovat, jaké akcie byly v dané datum obchodovány v indexu (spolu s dalšími funkcemi). Pokud tak potřebuji otestovat systém na akciích obsažených v indexu S&P 500 a chci dostat realistické výsledky (tedy zohlednit i historické složení indexu a obchodovat i dnes delistované akcie), tak si nejprve v Amibrokeru vyberu předpřipravený „watchlist“ S&P 500 Current & Past automaticky připravený v rámci Norgate Data: Ten dnes obsahuje 1 181 akciových titulů – všechny, které kdy byly v indexu obchodovány: Mimochodem akcie obsahující v názvu pomlčku a datum, například AAV-199901, jsou právě delistované trhy. Tento byl například z burzy vyřazen v roce 1999. Do samotného kódu strategie pak přidám jediný dodatečný filtr: NorgateIndexConstituentTimeSeries(„$SPX”) Ten se postará o to, že Amibroker v indexu S&P 500 obchoduje v daný backtestovaný den pouze ty akcie, které byly součástí indexu S&P500. Vše přitom probíhá opravdu rychle a bezproblémově. Samozřejmě to ale není zadarmo. Sám mám pro tyto účely u Norgate Dat předplacený balíček Platinum umožňující právě backtestovat i historické konstituenty indexů a ten stojí ročně 630 dolarů. Upřímně si ale myslím, že při jen trochu větších účtech se podobná služba vyplatí, protože pomůže výrazně přiblížit historický backtest realitě. Popis Norgate dat naleznete zde a jak je vidět, je možné jejich data používat ještě s programy RightEdge a XLQ. Závěr Jak jsme si ukázali v minulém článku, v případě systematických swingových strategií může klam přeživších představovat i výraznější rozdíly ve výkonnosti. Ve svých vlastních analýzách pracuji proto vždy s tzv. survivorship bias free databázemi, které zohledňují historické složení indexu a delistované akcie. Samozřejmě tyto databáze používám i pro všechny backtesty prezentované v kurzech a v článcích. Pokud děláte vlastní výzkum, je tak dobré vždy počítat s tím, že bez survivorship bias free databáze budou výsledky často výrazně lepší, než by tomu realisticky bylo. Naštěstí dnes existuje řada nástrojů, jak problematiku vyřešit. Nástroje jsou jak bezplatné, tak placené a liší se zejména v úrovni potřebného programování a poskytnutého uživatelského komfortu. Sám jsem vyzkoušel všechny uvedené cesty. Nakonec si platím sice dražší, ale o to efektivnější nástroj do Amibrokeru, kde tak klam přeživších již nemusím řešit, protože jej software ošetří sám a zcela automaticky v každém provedeném backtestu.
  4. Akcie patří mezi jedny z nejdostupnějších trhů pro stavbu a obchodování systematických strategií. Jednak z pohledu kapitálu, kdy lze akcie nakupovat prakticky od pár dolarů a mj. také z pohledu dostupnosti dat, která jsou na internetu často k dispozici zdarma. Pozor však na problematiku delistovaných akcií. Pro stavbu swingových strategií stačí mít k dispozici historická denní data. Ta jsou na rozdíl například od intradenních dat běžně na internetu ke stažení, byť zdroje se v průběhu času mění. Osobně nejvíce používám barchart.com, řada obchodníků pracuje s historickými daty z Yahoo atd. Bezplatná denní akciová data mohou mít různou kvalitu, ale obecně jsou poměrně dobře použitelná. Pokud je budete používat pro stavbu systematických strategií, je ale třeba počítat s jedním zásadním zkreslením. Nezapomínejte na to, že skupina obchodovatelných akcií se v průběhu času mění – už jen tím, že firmy krachují, různě se spojují a navzájem kupují. Při stavbě akciových strategií bychom tak měli pracovat s určitým univerzálním klíčem, „jak vybrat obchodované akcie v příslušném čase v historii“. Bohužel nelze vzít například nejsilnější dnešní společnosti typu Amazon, Facebook a Apple a snažit se na jejich historických datech vybudovat obchodní systém. Proč? Protože v určitém bodu historie nebyly tyto společnosti ještě tak známé a pokud byste se zaměřili na „nejsilnější společnosti v daném čase“, vybrali byste si úplně jiné firmy… V angličtině se tomuto zkreslení říká Survivorship bias, česky klam přeživších. Jde o klam, kdy naši mysl výrazněji zaměřujeme na ty, kteří přežili určitý selektivní proces a vůbec nepracujeme s těmi, kteří procesem neprošli. Portfolio obchodovaných trhů bychom tak měli vždy zkoumat z odpovídajícího času v historii, kdy bychom takové obchodovali. Profesionální obchodníci například definují svůj obchodovaný soubor akciových trhů tak, že za obchodované trhy považují všechny akcie, které se v daný den historie obchodovaly s určitým objemem. To vyžaduje zahrnout do rozhodovacího procesu jeden podstatný faktor – tzv. delistované akcie. Tedy akcie, které se obchodovaly v minulosti a dnes již na burze neexistují. Za příklad si můžeme vzít společnost Enron, která ještě v roce 2001 patřila k největším americkým společnostem, aby vzápětí zkrachovala. V roce 2001 by tak většina obchodníků Enron zahrnula do svých portfolií. Pokud budete stahovat data z Yahoo dnes, tak na historii této společnosti nenarazíte. S problematikou úzce souvisí i skladba akciových indexů, které se velmi často používají coby určité základní skupiny pro obchodování akcií. Například obchodujeme „akcie z indexu S&P 500”. Jenže samozřejmě ani indexy nejsou v čase stejné. Indexy se počítají různě, ale velmi zjednodušeně můžeme říci, že se mění tak, jak společnosti získávají a ztrácí svoji velikost a důležitost. Pokud budeme testovat strategii jen na dnešních komponentech, například indexu S&P 500, tak opět podléháme klamu přeživších. Jak hodně to vadí? Zde je konkrétní příklad. Testuji akcie indexu S&P 500 s jednoduchým algoritmem. Nakupuji akcie, které klesající úsečkou uzavřely pod svým 20denním klouzavým průměrem a pozici uzavírám, když akcie rostoucí úsečkou uzavírají nad 20denním průměrem. Otevřeno je max. 20 pozic najednou. Pokud tento triviální a čistě ukázkový model aplikuji na dnešní složení indexu S&P 500, získám následující equity křivku: Pokud použiji survivorship bias free databázi zohledňující každý den v historii složení indexu (a obchodující tak i delistované akcie), získám následující equity křivku: Aniž bych musel zacházet do nějakých detailů výkonnosti, je na první pohled myslím jasné, jak velký rozdíl může v testování být. Zohlednění klamu přeživších vždy povede k horším, a tak realističtějším výsledkům. U některých systémů nemusí být rozdíl tak zásadní, u některých bude ohromný. Myslím, že je tak zřejmé, že pro seriózní testování je dobré pracovat se survivorship bias free databázemi. Naštěstí to dnes už není tak složité jak dříve. Jak konkrétně na to, vám ukáži v tutoriálu, který plánuji publikovat na Finančníkovi za týden.
  5. U mnoha neúspěšných obchodníků lze vnímat silný společný faktor – přeceňování obchodního štěstí nad reálnými schopnostmi a možnostmi. Chováte se také podle tohoto vzorce? Z krátkodobého pohledu bezesporu závisí výsledek obchodování z určité míry na obchodním štěstí. Pokud jsme ve správný okamžik na správném místě, mohou nás trhy velmi štědře odměnit i bez ohledu na naše reálné přičinění. Nedávno jsem například s jedním traderem diskutoval jeho, z mého pohledu dost přeoptimalizovanou, mechanickou strategii pro nákup akciových indexů. Začal ji obchodovat v roce 2017 a dosahoval velmi nadstandardních výsledků. Bohužel pak přišel rok 2018, kdy se charakter akciových trhů výrazně změnil a jeho strategie začala prodělávat. Z pohledu psychologie obchodování toto bývá velký problém. Období nadstandardního úspěchu, byť založené na štěstí, u traderů vytváří silnou důvěru ve vlastní schopnosti a hodně zvyšuje ego. Obchodník má pocit, že již plně pochopil podstatu trhů a pro peníze si může přijít de facto kdykoliv. Zvrat ve výsledcích po podobném dobrém období často vede k mnoha nežádoucím jevům. Negativnímu myšlení, ale také ke zvýšené agresivitě obchodování – a to i v mechanických systémech (jejich přepisování, rychlé nasazování dalších metod atd). V diskrečním (ručním) obchodování toto bývá ještě mnohem intenzivnější. V intradenních trzích znám tradery, kteří obchodují týden či dva s vyšší úspěšností a hned se cítí jako mistři tradingu. Jsou přesvědčeni, že si podobnou výkonnost dokáží udržet dlouhodobě. Vždyť přeci již dokáží „číst trhy“. Podobná euforie trvá vždy jen velmi omezenou dobu, kdy se najednou na čas vytratí z diskuzí a sociálních sítí. Štěstí je opustilo. Přišla série ztrát, ve které často ztratili vše, co vydělali (a většinou i trochu více). Poznáváte se v tomto vzorci chování? Pak mám pro vás bohužel špatnou zprávu. Pokud nezvládnete změnit své myšlení a přístup k trhům, budete se v podobných vlnách pohybovat klidně ještě mnoho let. Budou to období frustrace a zmaru, kdy budete mít průběžně pocity „že už to umíte“, aby vás trhy vzápětí přesvědčily, že realita je úplně jinde. Štěstí v trzích je určitý „bonus“. Nejde jej replikovat. Nejde na něj cílit. Můžeme se mu otevřít tím, že budeme v trzích přítomni. Mít přiměřená očekávání a dobrý risk management. U mnoha typů strategií se pak může stát, že budeme v obchodovat zrovna v době, kdy nám hvězdy byly nakloněny a vyděláme více, než je běžné. Ale je nutné rozumět tomu, že tato doba jednou skončí. A že nadstandardní výsledek nebyl ovlivněn naší genialitou, ale určitým obchodním štěstím. Jak z popsaného vzorce chování ven? Základem jsou přiměřená očekávání. Hodně se tomu věnuji v první lekci základního kurzu. Budete-li mířit na zhodnocení, která se dlouhodobě nikomu dosahovat nepodařila, tak logicky nikdy nemůžete uspět. Budete se chytat nejrůznějších zmínek ve fórech a sociálních sítí neúspěšných obchodníků zmiňujících svá krátkodobá období šťastného obchodování (předtím, než se opět tiše propadnou do velkých ztrát) a snažit se obchodovat podobně. Čemuž budou přesně odpovídat výsledky. Predikovat chování trhů je velmi nejisté a funguje jen s určitou pravděpodobností. Nejde se to „naučit lépe“. Můžete mít štěstí a několikrát za sebou odhadnout v intradenních trzích odražení trhů od S/R úrovně. Neznamená to ale, že jste v sobě našli takové schopnosti, které ostatní nemají. Bylo to štěstí, na kterém nelze stavět trading. Čím dříve toto přijmete, tím dříve se můžete posunout dále. Máte-li přiměřená očekávání a chápete-li, že obchodování funguje jen s určitou dlouhodobou pravděpodobností, jste na dobré cestě. Ale je třeba výsledky reálně a upřímně vnímat z adekvátně dlouhodobého pohledu. Měsíce, často i déle. Samozřejmě, že v obchodování nakonec peníze vydělají naše schopnosti. Ty ale paradoxně málo souvisí se schopností čtení trhů. Schopnosti je třeba směřovat hlavně do implementací obchodovaných modelů. Tedy abychom co nejsystematičtěji dokázali vyhodnocovat risk, obchodovali dobře otestované systémy, zajistili exekuce podle plánů atd. Platí to univerzálně – bez ohledu na to, jestli obchodujete ručně, poloautomaticky či plně mechanicky. Vím, že k podobným poznáním si řada obchodníků musí dojít sama. Na druhou stranu cílem Finančníka je ukazovat cestu a inspiraci. Z pohledu psychologie obchodování je důležité přemýšlet nad tím, kam vůbec míříme naši mysl a energii. Je to do oblastí, které reálně můžeme ovlivnit? Zde je pro inspiraci můj aktuální pohled na burzovní obchodování: Prioritou je jednoduchost a robustnost obchodované myšlenky. Není cílem získávat krásné výsledky v backtestu přeoptimalizovaných strategií, ale obchodovat edge, který v trhu přetrvává. Dobré výsledky jednotlivých strategií jsou většinou dostatečné. Podstatné je jednoduché a robustní myšlenky obchodovat systematicky a dlouhodobě. Odměna přichází v tradingu na úrovni portfolií. Svou hlavní pozornost a schopnosti směřuji právě sem. Spojením i slabších jednotlivých systémů vznikají často robustní řešení. Jak jste na tom vy? Kam směřujete v tradingu svoji pozornost? Do oblastí, kterou můžete ovlivnit, nebo tam, kde nadstandardní výsledky přicházejí jen se štěstím, které ale neovlivníme? To je otázka, nad kterou je dobré se zamýšlet.
  6. Na Finančníkovi jsme se poslední dobou věnovali především swingovým obchodním systémům. Důvod je zřejmý. Na vyšších denních timeframe se snadněji tvoří robustní a dlouhodobě funkční strategie. Jsem přesvědčen, že každý obchodník by měl začít právě zde. Nižší timeframe jsou ale také zajímavé a dokáží přinést do portfolia další rozměr diverzifikace. Navíc i s menšími účty lze obchodovat systémy také ve futures, neboť v intradenních systémech lze používat podstatně menší stop-lossy než ve swingových strategiích. Systematické intradenní strategie s sebou bohužel nesou nezanedbatelná „ale“. Konkrétně: Vytvořit skutečně funkční, nepřeoptimalizovanou intradenní strategii je těžší než vytvoření swingové strategie. Hlavně proto, že v intradenních datech je mnohem více šumu a charakter trhů se hodně často mění. Intradenní strategie jsou také náchylnější na podcenění reálných nákladů na obchodování – tj. jak komise, tak skluzy v plnění. Řada strategií bude v backtestech vypadat příliš optimisticky. A především – v intradenních trzích je potřeba počítat s tím, že strategie mají s jedním nastavením omezenou životnost. Mohou to být možná i roky, ale obecně je nutné počítat s tím, že strategie je potřeba bedlivě sledovat a občas nahradit nebo je přenastavit na aktuální charakter trhů. Jedna z hlavních otázek, kterou si bude pokládat jistě každý obchodník je, jak zvolit pro živé obchodování co nejrobustnější nastavení intradenní strategie. Resp. jak se ujistit, aby zvolené nastavení nebylo tzv. přeoptimalizované. „Napasované“ na historické průběhy dat, které se v intradenních trzích ale nemusí již nikdy opakovat. Odpověď na tuto otázku vede de facto k jedinému řešení. Pro posuzování výkonnosti a robustnosti strategie musíme používat jen tzv. out of sample data. Data, která jsme nepoužili pro vytváření strategie. Například budeme strategii vyvíjet na intradenních datech 1.1.2017 – 1.1.2018 (in sample - IS). Pro posouzení robustnosti pak použijeme data 1.1.2018 – 1.1.2019 (out of sample data - OOS). V OOS budeme chtít vidět, že strategie má do určité míry podobnou charakteristiku jako v IS. Toto je tradiční způsob vytváření strategií. V intradenních trzích ale narazíme na skutečnost, že IS a OOS periody nemohou být příliš dlouhé (protože trhy se často mění), a tak v jednom OOS budeme mít poměrně málo dat na to, abychom mohli na daném vzorku stavět nějaké hlubší závěry. Řešením je tzv. Walk forward optimalizace (WFO), kdy máme segmentů IS a OOS v historii více. Sám používám přístup, kdy IS v historii posouvám například po dvou letech, systém optimalizuji na toto období, z IS vyberu nejvhodnějšího kandidáta na obchodování a následně otestuji nastavení na roce IS dat, který následují po OOS: Obrázek pochází z manuálu Amibrokeru, který pro WFO sám používám. Hlavní výhodou tohoto přístupu je skutečnost, že získáme hned několik OOS segmentů. Tedy mnohem více dat, na kterých můžeme posuzovat robustnost systémů. Realističtěji se můžeme dozvědět, jestli se systém chová na OOS tak, jak bychom očekávali na základě výsledků z IS optimalizace. Popsaná technika je velmi základní a najdete ji dnes myslím ve všech programech umožňujících testování obchodních systémů. Již v základní podobě může ale WFO sloužit jako dobrý pomocník. Pro vytváření skutečně robustních systémů je ale potřeba na celém procesu zapracovat. Zde jsou základní principy, které používám: 1. Klíčové je dobře promyslet výběr „kandidátů“ nastavení z IS periody. V IS probíhá optimalizace, kdy systém zkouší různá nastavení systémů tak, aby vyhovovala danému období. Co ale hledáme? Nejvyšší zisk? Nejmenší drawdown? Kombinace obojího? Něco jiného? To jsou klíčové otázky. Osobně používám vlastní funkci „finscore“, která je složena z vah různých kritérií. Například chci, aby měl systém v IS určitý počet obchodů, určitý max. drawdown, určité zhodnocení. Pokud jsou parametry mimo můj zájem, tak je kandidát penalizován. Mám zájem vybírat nikoliv nejlepší, ale nejrobustnější kandidáty. Doporučuji tedy v IS neoptimalizovat na jeden jednoduchý cíl, jakým může být například zisk. 2. Potřeba je také promyslet vyhodnocení testů OOS vs. IS. Jaké parametry srovnávat, abychom se co nejvíce ujistili, že výsledky jsou robustní? Nemělo by stačit jen požadovat, aby byl IS ziskový. 3. Robustní parametry by měly snést i určitou míru náhody. Tu lze simulovat třeba tak, že v IS malinko změníme data (dodáme do nich šum), případně změníme periody IS/OOS. Drží se výsledky systémů stále v rozumných mezích? Pak je velká šance, že daný systém je skutečně připravený na nasazení live. Co se praktické implementace výše popsaného týče. Jak vidíte, potřeba většiny traderů bude nakonec mít WFO proces co nejvíce pod vlastní kontrolou. Což bohužel není úplně možné v každém programu, který WFO poskytuje. Sám jsem zatím nevíce spokojený s Amibrokerem. Kde je jednak možné optimalizovat WFO s pomocí vlastních cílů, vše velmi jednoduše řídit přes OLE (například mnoho kroků spojovat do jednoho kompaktního workflow) a hlavně nechat program pracovat opravdu rychle (v článku Automatizované analytické workflow s naprosto minimálními náklady? je příklad, který jsem před časem na Finančníkovi publikoval). Pokud Amibroker máte (nebo jej testujete), určitě doporučuji možnosti WFO vyzkoušet. A pokud vytváříte intradenní systematické přístupy, pak testování robustnosti přes WFO by nemělo chybět ve vašem arzenálu používaných nástrojů. Účastníkům AlgoLab skupiny připomínám, že téma WFO aktuálně řešíme v současném projektu obchodování intradenních breakoutů volatility. Při dostatečném zapojení všech do práce se možná dostaneme až k OLE automatizaci celého procesu.
  7. petr

    AlgoLab v roce 2019

    S ohledem na skutečnost, že práce se skupinou není tak intenzivní jak jsem se obával a samotného mě ve vlastním tradingu posouvá při zpracování témat kupředu, rozšiřuji bezplatné fungování skupiny do 1.8.2019. Aktuální pracovní téma ve skupině je obchodování intradenních breakoutů volatility Podrobnější popis AlgoLab skupiny naleznete zde.
  8. petr

    Pravidelné profity pomocí sezónnosti

    Řada pohybů se na trzích opakuje z důvodu sezónních tendencí. Jak na takové tendenci vydělat si ukážeme na konkrétním příkladu obchodního systému v trhu se zlatem. Sezónnost znamená, že se něco mění podle sezón. Například topné palivo bude zdražovat v období zimy a zlevňovat v létě. Sezónní vlivy se hodně projevují v komoditách a společnostech, které s nimi pracují. Ale najdeme je i v řadě různých dalších trhů. Sezóna pak nemusí představovat jen sledování ročních období. Sezónnost můžeme nalézat i v mnohem krátkodobějších periodách – například dnech nebo i jejich částech. Sezónnost je jeden z velmi silných principů, které je možné pro obchodování používat. Sám jsem na burze začínal s komoditními kalendářními spready, představujícími rozdíl cen mezi vybranými kontrakty komodit. Zde jsem pracoval prakticky výhradně se sezónností. Postupně jsem se sezónností začal pracovat hlavně jako s jedním z kontextových filtrů. Například čekám na sezónní tendence ve sledovaném trhu a do této tendence pak aplikuji vstup v podobě jemnější technické analýzy (například vstup po breakoutu). Příkladem konkrétní velmi zajímavé a silné tendence může být páteční zhodnocení zlata. Podívejte se, jak vypadá hypotetický sezónní obchod v GLD (ETF sledující zlato), kdy trh nakupujeme ve čtvrtek večer a prodáváme o den později, tedy v pátek večer: Pravděpodobnosti tohoto obchodu hrají výrazně v náš prospěch: Obchod je ziskový v 57,45 %. RRR obchodu je navíc pozitivní. Na základě této sezónnosti je zřejmé, že zlato má tendenci v pátek posilovat. Využití takové tendence může mít mnoho podob – lze ji obchodovat samostatně, ale patrně ještě lépe v kombinaci s jemnějším časováním. Vstupovat je možné jak v akciích, tak komoditách nebo opcích. Fundamentální důvody sezónnosti U podobných sezónních tendencí je dobré zkoumat, jestli mají určitou fundamentální logiku, která povede k jejich fungování v budoucnosti. V případě růstu zlata (a dalších drahých kovů) před víkendem vychází tendence ze závěrů studie, která sledovala zajišťování akciových obchodníků nákupem drahých kovů právě před víkendem. To samo o sobě není pro mě úplně nejsilnější fundamentální faktor, ale určitá logika v daném pohybu je. Pro mě dostatečná, abych podobnou sezónnost použil jako kontextový filtr. O to víc nyní, kdy ji sleduji již delší dobu. Jak sezónnosti získávat? Nejrobustnější je testovat sezónnosti, které mají skutečný fundamentální základ vyčtený z odborné literatury. Těch budeme mít omezený počet. Nakonec tak nezbude, než sáhnout po různých formách dataminingu, kde sezónnosti hledáme algoritmy v historických datech a jejich fundamentální racionalitu se pokusíme ověřit zpětně. V případě dataminingu je ale potřeba velkou pozornost věnovat striktnímu ověřování sezónnosti na datech nepoužitých při dataminingu a také využívání jen těch sezónností, které vycházejí z nějaké vyšší logiky. Takové pak dokáží být velmi dobrými stavebními kameny obchodních strategií.
  9. Jen pro upřesnění - to co uvádíte je odkaz na samotné interactive brokers. Toto vlákno je o TradeStation Global. Tj. defacto účet u IB plus software od TradeStation. Plus jsou tam další rozdíly typu, že u tradestation Global se v tuto chvíli neplatí inactivity fee (ale zase jsou tam trochu vyšší komise) atd. Tedy není to úplně stejné. Petr
  10. Úspěšné obchodování je především o implementaci často obecně známých obchodních výhod a zejména skutečně systematickém řízení risku. Jak lze známé výhody využívat? Jednou z mých oblíbených je přehnaná reakce obchodníků na specifické události. Událostí může být cokoliv. Například vyhlášení finančního reportu – podívejte se například na výsledky tendence vycházející z FOMC dnů. Řada retailových strategií je postavena na obchodování v období vyhlašování earnings, kdy se v akciových trzích zvyšuje volatilita (a dají se tak například zajímavě vypisovat opce) a kdy mají trhy tendence reverzovat. Mnoho podobných výhod vychází z faktu, že obchodníci přehnaně reagují na specifické události. Je to pochopitelně spojeno s naší psychikou – hlava nás například nutí uzavírat pozice poté, co se dostanou do rychlé ztráty, byť třeba ještě nebyl zasažen stop-loss. Sami to jistě znáte ze své obchodní praxe. Představte si, že máte v intradenním obchodování stop-loss nastaven na 300 dolarů. Pozici řídíte ručně, když najednou trh během pár vteřin prudce klesne blízko vašeho stop-lossu a pozice bude v otevřené ztrátě například -250 dolarů. Hodně obchodníků v takový moment pozici uzavře. Oproti situaci, kdy by trh dorazil do stejné oblasti pomalu. Rychlost je jeden z faktorů, který je v tradingu klíčový. A rychlé pohyby způsobují v trzích nejčastěji různé reporty a zprávy. Pro vytváření obchodních systémů využívajících podobných výhod není bezpodmínečně nutné analyzovat fundamentální zprávy. Stačí se jen zamýšlet nad situacemi, které budou z pohledu psychiky tvořit u mnoha obchodníků tlaky na unáhlené reakce. Zde je jeden příklad. Ten nepředstavuje hotový obchodní systém, ale může vás k řadě funkčních řešení dovést. Nemalý edge existuje v držení pozice přes noc v akciových trzích v momentě, kdy se jim v průběhu dne příliš nedařilo. Na konci takových dnů totiž řada obchodníků „raději vystoupí“, čímž ještě dále tlačí cenu níže – což může být vhodný okamžik pro náš krátkodobý vstup. Pro příklad si vezměme akcie indexu Nasdaq 100, kde budeme: Nakupovat každý den 5 trhů, kterým se nejméně dařilo (tj. jejich zhodnocení daný den v indexu patřilo k 5 nejnižším). Pozici ukončíme následný den na open. A zde je pro ilustraci equity křivka, která nepracuje s reinvestováním – tj. celou dobu se otevírají akcie s fixním kapitálem (při testu je zohledněna skladba indexu v historii): Zde je pak příklad typického testovaného obchodu: Už ze samotného pohledu na graf reagovali obchodníci v akcii SBUX 24.1.2019 na nějakou silnější událost. Trh vytvořil nestandardně velký pohyb a vůči ostatním akciím v indexu Nasdaq 100 uzavřel jako jeden z 5 nejslabších. Systém vstupoval na close takového dne a držel do open následujícího dne, který byl dokonce až nad high vstupní úsečky. Testy můžeme provést i na akciích dalších indexů. Takto vypadá stejná situace na akciích S&P500: A zde je edge testován na větším počtu akcií z širšího indexu Russell 3000: Na první pohled je vidět, že v trzích existuje popsaný edge ve velmi trvalé podobě. Ale abychom mohli na výhodě vydělávat, je potřeba ji dotáhnout. Výše uvedené ukázky jsou jen výchozím bodem – už jen proto, že neobsahují komise, které výkonnost snižují. Ale možností, jak edge převést do konkrétní podoby, je celá řada. Lze se zaměřit na zkoumání povahy oslabení – například jeho velikosti vůči běžnému chování trhů. Určitě je vhodné zapojit do přemýšlení trochu širší kontext. Lze pracovat s komplexnějšími intermarket filtry nebo se zaměřit na trhy s určitou likviditou atd. Dobré je ale nezapomínat jaký edge využíváme a proč funguje. A zejména si věci nekomplikovat nad rámec toho, co je nezbytné a hlavně se zaměřit na implementaci. Pro úspěšný trading stačí zkombinovat jen několik podobných výhod.
  11. Brexit bude znamenat důležité změny i na burzovních trzích. Zde je zajímavý článek popisující, jak se z Londýna přestěhují na holandskou burzou evropské trhy obchodované v rámci CME a CBOE: https://www.bloomberg.com/news/articles/2019-01-21/brexit-forces-equity-foreign-exchange-markets-to-leave-london
  12. Ano, limit je na celý post. 2MB by měla stačit. Screenshoty je skutečně možné ukládat v takovém rozlišení, aby jejich velikost byla menší. Tedy pokud vkládáte 3 screenshoty, celková velikost musí být do 2MB. Pokud byste měl pocit, že se do toho nemůžete vejít, tak prosím napište. Ale obecně potřebujeme, aby všichni vkládali rozumně velké přílohy, protože jinak se pomalu nevejdeme na disk. Ad druhý komentář - ano všiml jsem si, že systém pak velikost nepřepočítá. Je třeba reload stránky (ale raději si zazálohujte rozepsaný text, ať o něj nepřijdete).
  13. Výjimečně ano. Ale obecně pod články již delší dobu nemáme. Bohužel není v mých silách diskuze veřejné a často anonymní sledovat a aktivně se jich účastnit. Navíc za roky provozování serveru se mi více než potvrdilo, že veřejné diskuze na seriózní témata nedávají smysl a proto se spíše soustředím na rozvoj uzavřených diskuzí, které jsou mnohem plodnější a hodnotnější, jelikož mohou jít k jádru věci a neúčastní se jich anonymní diskutující.
  14. Tak toto se obávám že stávající systém bohužel nepodporuje.
  15. Té odpovědi úplně nerozumím - nahráváte malý stejný obrázek a občas vám to projde a občas ne? Ty 2MB jsou limit celé přílohy. Není to tak, že už máte připojeno více obrázků a ten poslední se tam nevejde? Petr
×

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.