Prohledat Finančník.cz
Zobrazeny výsledky pro štítek 'rsi'.
Nalezeno výsledků: 3
-
Jak bez zkušeností vytvářet automatizované obchodní systémy (AOS) s využitím umělé inteligence
článek: publikoval/-a petr v rubrice Jak na obchodní plán
Nevíte, jak postavit obchodní systém? Nechte jej postavit umělou inteligencí, která čerpá z většiny informací týkajících se burzovního obchodování, které byly kdy publikovány. Stačí se česky ptát a základní AOS je za pár minut hotový. Velké jazykové modely není jistě na Finančníkovi třeba představovat. Jde o modely jazyka založené na neuronové síti trénované na ohromném množství textu. Modelů, které můžeme využívat, existuje dnes celá řada. Patrně nejznámější jsou GPT od OpenAI, se kterými sám denně pracuji. Tyto modely nepředstavují umělou inteligenci ve smyslu, že by měly nějaké vlastní vědomí. Ale jsou to nástroje, se kterými se dá již běžně komunikovat podobně, jako byste komunikovali s člověkem. S člověkem, který má ale načteno neuvěřitelné množství informací a tyto informace umí aplikovat skrz programovací jazyky na poskytnutá data. A tak například vytvářet a testovat obchodní systémy. Je potřeba zdůraznit, že například GPT neumí postavit systém, který by stačilo pustit do trhů a vydělávat. Umí ale poskytnout množství inspirace. A skrz postupný dialog je možné dostat se k nuancím obchodních systémů, které jsou inovativní a které by člověka vůbec nenapadly. Tady je jednoduchá ukázka, jak to vše funguje. Sám používám chat GPT v jeho placené verzi, která stojí 20 dolarů měsíčně. V rámci této verze GPT je možné pracovat s modulem Advanced Data Analysis umožňující do GPT nahrávat vlastní data, která chat GPT použije pro analýzu: Po zvolení modulu pro datovou analýzu už se stačí jen ptát. Můžeme začít velmi obecnou otázkou pro vytvoření mean reversion "z ničeho". Takto se zeptám GPT a nahraji mu příslušná denní data QQQ: "Jsi zkušený systematický obchodník s velkou znalostí swingových obchodních systémů. Vytvoř long mean reversion systém s využitím dat QQQ. In sample 2010-2019. Pro vstup použij některý z oscilátorů a vystup poté, co se trh vrátí ke krátkodobému průměru. Vstupuj jen v situacích, které jsou z pohledu historických pravděpodobností extrémnější. Publikuj přehled pravidel systému. Proveď out of sample test od roku 2019. U každého testu vytvoř equity křivku a srovnej s výkonností QQQ (graf vytvoř šedě). Publikuj také tabulku s běžnými výkonnostními metrikami." A GPT začne pracovat: Odpověď GPT postupně pokračuje dál: Výsledkem reakce chatu je první návrh konkrétní strategie, kdy se GPT rozhodl pro práci s indikátorem RSI a sám navrhl smysluplně vypadající kostru systému. Kostra systému je v tuto chvíli triviální, ale vše se dá ovlivnit dalšími dotazy. Můžete zkoušet vytvářet podobné systémy na jakékoliv téma - různé arbitráže, breakouty, momentum strategie. Co vás napadne... Všimněte si navíc boxíku "Finished working / Show work. V tomto boxíku se skrývá python kód, který GPT sám vytvořil: Znalost Pythonu není pro práci s GPT nutná, protože kódy GPT vytváří a interpretuje sám. Nicméně pokud kódům alespoň částečně rozumíte, můžete se z nich jednak učit a také lépe GPT směřovat na další vývoj. Na Finančníkovi vyučujeme základy Pythonu posledních několik let, v TechLabu naleznete mnoho tutoriálů i několik minikurzů na osvojení základů práce s Pythonem. Chat GPT v praxi demonstruje, jak se výuka na Finančníkovi logicky uzavírá. I základní znalost Pythonu vám práci s nástroji typu GPT umožní neuvěřitelně akcelerovat. GPT můžete česky instruovat k vytváření kódů, které je v důsledku možné nasadit do autotraderu, který máme na Finančníkovi také v Pythonu. Práce s GPT je o komunikaci. Je pravděpodobné, že první návrhy výsledků nevypadají smysluplně, grafy mohou být ve špatném měřítku. Ale GPT stačí říct a on pokračuje v konverzaci navrženým směrem. Například poté, co zobrazil první výsledky, jsem mu napsal, že graf QQQ není v dobrém měřítku (původně publikovaný graf nevypadal dobře) a hned mám opravené řešení: Na equity křivkách jsou vidět in-sample a out-of sample testy strategie, kterou navrhl GPT a jejíž výsledky jsou srovnány s držením QQQ. A tímto směrem můžeme v konverzi pokračovat dál. Můžeme například GPT požádat o shrnutí pravidel strategie a přepisu do skriptovacího jazyka Amibroker, který hodně pro práci se systematickými strategiemi požíváme: GPT neumí skriptovací jazyk AFL programu Amibroker interpretovat a je velmi pravděpodobné, že ve skriptu budou chybky. Bývá to ale základ, se kterým můžete začít pracovat. Mimochodem - v TechLabu, kde získáte praxi s Pythonem, vyučujeme i AFL skriptování. A 16.10.2023 spouštíme minikurz První strategie v Amibrokeru, který vás základy AFL provede. I v kontextu s ukázanými možnostmi GPT je patrné, jak hodnotné praktické znalosti v TechLabu získáte. GPT je možné používat pro solidní generování prototypů obchodních systémů. Know-how naučené v TechLabu vám pak pomůže prototypy dotahovat do produkční fáze. Zpět ke GPT. Komfort využívání podobných modelů tkví především v tom, že chat si udrží povědomí o provedené konverzaci. Jakmile GPT skončí s vytvářením základní verze systému, můžeme jej požádat, aby myšlenku rozvinul nebo třeba aplikoval v portfoliu. To vypadá takto jednoduše: A takto vypadá vytvořený portfolio graf: Zelená a modrá křivka jsou equity křivky strategie na trzích QQQ a SPY. Červená je výkonnost celého portfolia. A tímto směrem lze pokračovat. Můžeme si nechat zkusit vytvořit prototypy breakout strategií, ty kombinovat s mean reversion a podobně. Potenciál v této technologii je pro trading opravdu vysoký. Zejména pokud se dokážete ptát a rozvíjet odpovědi, které modely vrací. Chat GPT sám o sobě nepřijde zatím se systémem, který by byl použitelný tak, jak jej sám vygeneruje. Ale dokáže inspirovat. Představte si, že byste o stavbě mean reversion systémů vůbec nic nevěděli. A jak je vidět výše, stačí pár otázek a rázem máte nejen představu, jak vše funguje, ale i konkrétní backtesty a kódy, se kterými jde dál pracovat. A takto jde postupovat v dalších oblastech. Potřebujete rozvíjet momentum strategie? Můžete s GPT diskutovat o momentum faktorech, které ostatní obchodníci ve svých systémech používají, nechávat je ověřit backtesty a smysluplně vypadající myšlenky implementovat například do Amibrokeru. Podobná prostředí jsou z mého pohledu opravdu revolucí posouvající možnosti retailových obchodníků s omezenými budgety na vývoj a výzkum blíže k tomu, co si mohou dovolit různé instituce (které ale mají s vývojem také neuvěřitelné náklady na mzdy analytiků). -
Jedním ze způsobů, jak efektivně vylepšovat obchodní strategie, je používání nejrůznějších obchodních indikátorů. Ty nám mohou sloužit jako vhodný doplněk běžných analýz nebo jako nástroj ke správnému načasování vstupů a výstupů. Indikátorů existuje nespočet. Jedním z nejčastěji používaným, který se dobře hodí i pro stavbu mechanických obchodních strategií, je RSI. Představení indikátoru RSI Za autora indikátoru je obecně považován obchodník J. W. Wilder, který RSI (Relative Strenght Index) vytvořil jakožto způsob měření síly nebo naopak oslabování trhu. Základní idea indikátoru RSI je možnost měřit, kdy je trh překoupen (overbought) nebo naopak přeprodán (oversold) a dle toho zvažovat možnost krátké (v případě overbouhgt) nebo dlouhé (v případě oversold) pozice. Ještě jednou upozorňujeme, že indikátor má sloužit pouze jako doplněk strategie, nikoliv jako strategie samotná. Jak RSI funguje? Relative Strength Index (RSI) je indikátor, který měří sílu trendu. RSI se pohybuje na škále od 0 do 100, přičemž hodnoty nad 70 jsou považovány za překoupené a hodnoty pod 30 za přeprodané. Konkrétní hranice překoupenosti a přeprodanosti ale nejsou pevně dané. Zejména u mechanických strategií se vyplatí testovat co neextrémnější hodnoty. RSI funguje univerzálně na všech cenových grafech. Lze jej používat při obchodování akcií, komodit, kryptoměn či forexu. Indikátor se zobrazuje coby oscilátor pod samotný cenový graf. Zde je zobrazen graf komoditního kontraktu cukru spolu s indikátorem RSI: Pokud si necháme zobrazit indikátor jakožto doplněk k některému z komoditních grafů, v první řadě si zřejmě všimneme, že je RSI indikátor „ohraničen“ hodnotami 0 % a 100 %, v polovině pak můžeme vidět i úroveň 50 %. Co nám tyto hodnoty říkají? Obecně řečeno, pokud se křivka RSI pohybuje NAD 70%, pak je trh považován za překoupený, pokud se pak křivka pohybuje POD 30%, pak je trh považován za přeprodaný: Jak jsme si řekli již na začátku, překoupený trh je možné považovat za signál k otevření krátké pozice (shortování) a naopak přeprodaný trh jako signál k otevření dlouhé pozice. Samotné časování závisí na konkrétním obchodním systému. Konzervativně jsou signály považovány za platné až v momentě, kdy cena přeprodané/překoupené rozmezí zpět opustí. To znamená, pokud zvažujete například otevření dlouhé pozice a používáte RSI indikátor pro vhodnější načasování, pak vyčkáte na moment, kdy se RSI indikátor bude nacházet pod 30 %. Nyní však ještě dlouhou pozici otevírat nebudete. Vyčkáte, až se indikátor z oblasti pod 30 % dostane zpět NAD 30 % - teprve v tento moment je možné považovat nákupní signál RSI indikátoru jako platný. Pro otevírání krátkých pozic pak pochopitelně funguje opačná analogie - vyčkáváme, dokud indikátor nepřesáhne 70 %. V takovém momentě vyčkáváme a do pozice vstupujeme, až pokud trh opět klesne zpět pod 70 %. O efektivnosti a spolehlivosti indikátoru se pak můžete přesvědčit sami na následujícím grafu: jak vidíte, v tomto případě pomohl RSI indikátor označit obraty krátkodobých trendů s pozoruhodnou přesností. Využití indikátoru RSI v praxi; jak vidno, indikátor relativně spolehlivě indikuje obraty krátkodobých trendů. Nastavení indikátoru RSI V rámci indikátoru se nastavuje perioda, ze které mají být jednotlivé hodnoty indikátoru používané. Standardní nastavení bývá posledních 14 obchodních úseček (bars), tzn. v případě denního grafu 14 obchodních dnů. RSI v mechanických obchodních strategiích RSI je velmi často využíváno pro časování obchodů v tzv. mean reversion strategiích. Pokud hledáte jednoduchý indikátor, se kterým lze robustní a přitom jednoduché strategie stavět, tak RSI by mělo být mezi prvními, kterým věnujte pozornost. Funkční systémy přitom mohou být velmi jednoduché. Zde je příklad, jak může hypotetický obchodní systém postavený na RSI vypadat. Systém kombinuje indikátor RSI s klouzavými průměry. Vstup: Close úsečky, kdy je RSI(3) < 20 a trh je nad MA200 (dlouhodobým klouzavým průměrem) Stop-loss: 2*ATR(4) od vstupní ceny Výstup: Close úsečky, kdy C>MA20 (trh uzavírá nad klouzavým průměrem s periodou 20) Podobný systém bude fungovat jak na samotné akcie, tak akciové indexy. Zde je ukázka výsledků backtestu, pokud bychom systém aplikovali na akcie indexu Nasdaq 100 (s respektování historických konstituentů indexu). Otevírali bychom max. 10 pozic, každé pozici přidělili 10 % kapitálu (obchodovali bychom tak bez finanční páky). A pokud by bylo k otevření více pozic, preferovali bychom ty s nižším RSI(3) (RSI počítané ze 3 denních úseček). Screenshot znázorňuje srovnání výkonnosti popisovaného hypotetického obchodního systému založeného na indikátoru RSI (zelená linka) ve srovnání s benchmarkem, v tomto případě Nasdaq 100. Na grafu vidíme, že takto jednoduchý systém výrazně překonává benchmark. Tento konkrétní příklad je ilustrativní a demonstruje principy, které na Finančníkovi aplikujeme při tvorbě obchodních strategií. Podobnou strategii bychom spíše obchodovali na akciových indexech. Vytvořené strategie navíc kombinujeme do diverzifikovaného portfolia, abychom využili různé tržní situace a snížili riziko. Závěrem Indikátor RSI patří mezi velmi oblíbené a díky nejrůznějším analytickým programům i velmi rozšířené a snadno dostupné indikátory pro trading. RSI je možné využívat prakticky ve všech trzích i časových pásmech - jak pro denní obchodování, tak pro intradenní, nebo třeba i pro dlouhodobé poziční. Procentuelní hranice pak bývají u různých obchodníků rozdílné - zde zmíněných 30 a 70 procent není žádné dogma, mnoho obchodníků používá například nastavení 25 a 75. To už je ale opět na každém obchodníkovi, co shledá jako nejpřijatelnější nastavení pro své obchody. Každopádně mějte vždy na paměti, že by indikátor měl sloužit pouze jako doplněk technické analýzy.
-
V minulém díle jsem avizoval rozbor indikátorů RSI, Williams a CCI. Protože první dva jmenované indikátory byly již velmi detailně popsány v sekci Indikátory, zaměřím se především na využití těchto indikátorů v prostředí FX trhů. Williams %R Začneme tzv. Williamsem, standardně označovaným jako R nebo častěji jako %R. Jen pro zopakování: Indikátor byl vyvinutý Larrym Williamsem kolem roku 1980 a s oblibou je tento indikátor dnes hojně využíván obchodníky po celém světě nejen v komoditách, ale i na devizových trzích. Jak již bylo uvedeno ve výše uvedené sekci, sám Larry Williams používal tento indikátor při své první účasti na komoditním šampionátu – kdy poprvé proměnil 10 000 USD do více jak 1 miliónu za jediný rok (o několik let později pak svůj úspěch na základě kritiky nedůvěřivců ještě jednou zopakoval a opět proměnil 10 000 USD do více jak 1,1 miliónu za necelých 12 měsíců). Indikátor pracuje na základě algoritmu, který k výpočtu používá hodnoty z několika posledních obchodních dnů. Standardně se indikátor používá s nastavením na hodnotě 14 (tj. indikátor je zobrazován na základě dat posledních 14 obchodních dnů). Oblíbené je i %R nastavení 10 nebo dvojnásobek, tedy 28, pro dlouhé periody. Indikátor pracuje standardně v rozsahu 0–100, kdy hodnoty v rozmezí 80–100 znamenají překoupenost trhu a signalizují prodej (otevření krátké – short pozice). Hodnoty v rozmezí 0–20 naopak znamenají přeprodanost trhu a dávají nám signál k nákupu (otevření dlouhé – long pozice). Jak již bylo zmíněno v sekci Indikátory, signály bychom vždy měli brát jen do směru viditelného trendu. To tedy znamená, že vstupovat do dlouhé pozice na základě indikátoru %R bychom měli pouze v případě jasně viditelného býčího trendu a vstupovat do krátké pozice na základě %R indikátoru pouze v případě jasně viditelného medvědího trendu. Je dobré se řídit i podle střední hodnoty indikátoru, tedy 50, a uvedenou hranici si v grafu zvýraznit. RSI Daleko starším indikátorem než je %R, ale stále oblíbeným, je i podobně fungující indikátor RSI (Relative Strenght Index). Za autora indikátoru je považován J. W. Wilder, který RSI vytvořil jakožto způsob měření síly nebo naopak oslabování trhu. Základní idea indikátoru RSI je možnost měřit stav, kdy je trh překoupen (hodnoty vystupují nad hranici 70), nebo naopak přeprodán (hodnoty klesají pod 30). RSI se stal záhy velmi oblíbeným indikátorem nejen na klasickém burzovním trhu, ale i v komoditách a v neposlední řadě i na FX trzích. Navíc právě z toho indikátoru se vytvořila řada podobných indikátorů, jako jsou Relative Momentum Index (RMI) od Rogera Altmana z roku 1993, která pracuje s trochu odlišným algoritmem, a kdy hodnoty pro nákup/prodej jsou definovány v pásmu 10–30, resp. 70–90. Další, dokonalejší a poměrně novou variantou je True Strength Index (TSI) od Williama Blau, kdy ale hodnoty oscilují kolem nuly a signálem přeprodanosti/překoupenosti jsou hodnoty +25 a −25. Jak již bylo řečeno v sekci Indikátory, překoupený trh je možné považovat za signál k otevření krátké pozice a naopak přeprodaný trh jako signál k otevření dlouhé pozice. Zde je však nutné podotknou velmi podstatnou věc – signály jsou považovány za platné až v momentě, kdy cena přeprodané/překoupené rozmezí zpět opustí. To znamená, pokud zvažujete například otevření dlouhé pozice a používáte RSI indikátor pro vhodnější načasování, pak vyčkáte na moment, kdy se RSI indikátor bude nacházet pod 30 % (%R pod 20). Nyní však ještě dlouhou pozici otevírat nebudete. Vyčkáte, až se indikátor z oblasti pod 30 % dostane zpět NAD 30 % – teprve v tento moment je možné považovat nákupní signál RSI indikátoru jako právoplatný. Pro otevírání krátkých pozic pak pochopitelně funguje opačná analogie – vyčkáváme, dokud indikátor nepřesáhne 70 % (u %R 80). V takovém momentě zbystříme pozornost a do pozice vstupujeme, až pokud trh opět klesne zpět pod 70 %. I když se všeobecně uvádí, že indikátory typu RSI, %R nebo RMI či TSI by neměly být spolu navzájem kombinovány, protože se jedná se o velmi podobné indikátory, tak docela s tímto názorem nesouhlasím. Všechny tyto indikátory jsou sice ve své funkcí hodně podobné, ale vycházejí z odlišných algoritmů a většinou i z jiných měřitelných hodnot. To mne přivedlo na myšlenku zkumulovat všechny tři indikátory (RSI, %R a RMI) do jednoho grafu. Protože všechny indikátory vycházejí z hodnot 0–100 a jejich střední hodnota je tedy 50, nebyl to až tak velký problém. Hranice překoupení/přeprodání jsem ponechal z %R, tedy 20, resp. 80. Na níže takto sestaveném grafu (30 min. graf pro pár EUR/USD – od 11. 10. 6,00 hod. do 12. 10. cca 15,00 hod.) je RSI vyznačeno červeně, RMI zeleně a %R černě. Všechny indikátory jsou nastaveny na stejnou periodu 14. U RMI, kdy se volí ještě doprovodná perioda Momentum Periods, je tato nastavena na hodnotu 4. Vedle překročení střední hodnoty 50 směrem nahoru nebo dolů, kterou lze považovat za mírný signál k prodeji/koupi u všech těchto indikátorů, je patrný i jiný možný signál – překrývání křivek jednotlivých indikátorů. To lze považovat rovněž za velmi solidní signál k otevření pozice. Když je např. křivka %R (černá) nad RSI (červená) lze hovořit o signálu ke koupi, naopak když je RSI nad %R dá se spekulovat s prodejem. Stejný případ je i u „vztahu“ mezi %R a RMI. Výhodou takto kumulovaného indikátoru „3 in 1“ je i skutečnost, že lze na jednom grafu okamžitě sledovat nejen překrývání křivek, ale i „klasické“ předepsané hodnoty 20–80 pro %R, 30–70 pro RSI a podle těchto hodnot i usměrňovat a korigovat svá rozhodnutí. Všeobecně uznávané hraniční hodnoty pro RSI (30, 70) nebo pro %R (20, 80) není možno brát ve všech případech jako dogma. Někteří tradeři používají pro RSI i hodnoty 25, 75 nebo i jen 40, 60. Pro %R je hodně oblíbená varianta 25, 75 a pro extrémní situace i 15, 85. Na indikátor CCI (Commodity Channel Index) se dnes už nedostalo, ale protože si CCI zasluhuje podrobnější rozbor (zároveň s „turbo“ variantou WCCI, tzv. Woodies) povíme si o CCI i o tom, jak jej kumulovat s jinými indikátory, zase příště. Příště: CCI a WCCI