Jump to content
Co nového? Mé kurzy
Články a tutoriály:
Archiv článků Psychologie obchodování Jak na obchodní plán Mé obchodní strategie
  • Jak na proces tvorby obchodních systémů?

    Nedávno se na mě obrátil trader Roman s dotazem, který se týkal tipů při vytváření obchodních systémů, které mají šanci dlouhodobě generovat peníze. Jelikož odpověď nelze shrnout do pár vět, odpovídám formou článku, ve kterém shrnu tipy i pro ostatní.

    Romanův dotaz:

    Už nějakou dobu se snažím o tvorbu vlastního systému, abych se přesvědčil, že jsem schopný sestavit něco vlastního, co bude fungovat minimálně na historických datech a nebudu muset spoléhat pouze na Vámi prezentované systémy. Vybral jsem si pro toto Bollingerova pásma, aby to byl nástroj, který má v sobě nějakou smysluplnou počáteční myšlenku a neobjevoval se ve Vámi prezentovaných systémech. Šel jsem cestou tvorby přes "in sample", "out sample" na jednom indexu, a ještě si nechal data na testování před a po zvoleném testovacím období. Provedl jsem velkou spoustu testů, ale pokaždé mi ten systém zhavaroval v nějaké fázi testování.

    Hodně přemýšlím o diverzifikaci, jednak díky Vašim článkům, a taky i dvěma knihám od Roberta Carvera, které jste prezentoval na Finančníkovi a které jsem si prostudoval. Proto jsem začal přemýšlet a zkoumat trochu odlišnou cestu. Vzal jsem jednoduchý systém s minimem volitelných parametrů a začal provádět backtesty v určitém rozsahu parametrů na celém vzorku dat bez rozlišení "in sample" a "out sample" a na šesti indexech (OEX, NDX, SPX, RUI, RUT, RUA). Sledoval jsem funkčnost tohoto systému jednak v rozsahu parametrů, a taky na uvedených indexech. Následně jsem z celého souboru systémů vybral určitý počet systémů na základě CAR, RAR, jejichž equity křivky vykazovaly odlišnosti a zkoumal korelace těchto systémů a na základě těchto korelací poskládat několik stejných systémů s různými parametry a na různých indexech dohromady a prozkoumal výslednou equity křivku.

    K tomuto procesu jsem dospěl po předešlých nezdarech, když jsem se snažil vyvinout systém na "in sample" a "out sample" datech. Taky mě k tomu dovedla myšlenka, že by se tímto dala omezit přeoptimalizace. Co si o takovém postupu myslíte? Zkoušel jste někdy podobný postup? Vím, že jasnou odpověď dostanu pouze testováním takového systému, přesto by mě zajímal Váš názor, případně připomínky, v čem by takový postup mohl mít své slabé stránky.

    Téma vytváření obchodních systémů není jednoduché, protože neexistuje nějaký jeden mustr, podle kterého postupovat. Nicméně jsou určité body, které sám považuji za absolutní základ toho, abych měl důvěru pustit systémy na živý účet.

    V první řadě je potřeba nejprve opravdu kriticky přemýšlet o edge, který chceme obchodovat. Důležité je přijmout skutečnost, že 90 % informací, které jsou k dispozici na internetu ohledně tradingu nefungují a nedávají smysl. S použitím optimalizace parametrů pro vstup a výstup nalezneme při využití kteréhokoliv přístupu systémy, které generují hezké výkonnostní křivky na historických grafech, ale mívají nulovou šanci vydělávat do budoucna.

    Typicky pokud se někdo rozhodne stavět například intradenní systém s využitím klasických indikátorů na pětiminutových forexových grafech, je šance na dlouhodobý pozitivní výsledek skutečně nulová. A přitom mnoho traderů touto cestou jde a snaží se najít způsob, jak takto vytvořený systém „validovat“ – poznat, jestli má šanci fungovat do budoucna. A to přitom nejde. Šanci na budoucí úspěch systému nejvíce ovlivňuje princip, na kterém systém stavíme s tím, že ostatními komponenty jako je risk management a position sizing můžeme systém zlepšit nebo zhoršit.

    Opravdu se tak vyplatí nejprve co nejdetailněji studovat základní obchodovaný edge. V první fázi jen v těch nejhrubších obrysech tak, abychom zkoumání neovlivňovali dalšími prvky obchodního systému. Například u zmíněných bollingerových pásem by mě zajímalo, jestli existuje závislost vzdáleností ceny od bollingerova pásma a budoucími výnosy. Protože pokud takovou závislost nenaleznu, nemá smysl na myšlence stavět obchodní systém. Zní to logicky, ale běžně tomuto věnuje pozornost jen opravdu mizivá část traderů. Konkrétní cesta, jak závislost zkoumat, může být použití korelačních grafů. Podrobný tutoriál, jak postupovat od základních dat až po zobrazení korelačního grafu jsem minulý týden publikoval zde do TechLabu. Zkoumání základního edge podobným způsobem má i tu výhodu, že do budoucna přesně víme, na jakém principu bude náš systém vydělávat.

    Korelační diagram

    Korelační graf zkoumající závislost mezi krátkodobou korekcí a budoucími výnosy. Podrobněji se tématu věnuji v tomto tutoriálu TechLabu.

    Pokud mám nalezený funkční základní edge, mohu jej zkusit přeměnit do obchodního systému. Osobně používám in sample/out of sample periody, ale je dobré je nepřeceňovat. Jak jsem na Finančníkovi již několikrát ukazoval, pár let vývoje systému (zejména swingového) neobsahuje dostatek dat, abychom jej mohli nějak zásadně statisticky vyhodnocovat. Tedy to, že se systému nedaří v out of sample neznamená, že se mu nemůže dařit při živém obchodování a naopak. V out of sample periodách sleduji spíše charakter výkonnosti. Zejména nechci vidět, aby se po konci in-sample výkonnostní křivka „prudce zlomila“, protože to indikuje přeoptimalizaci.

    Dokáži si nicméně představit vývoj systému i na všech datech. Varoval bych ale při vývoji a vyhodnocování systému před sledováním historické equity křivky. Je lepší sledovat jen číselné ukazatele – sharpe ratio, volatilitu, frekvenci obchodů, průměrný obchod atd. A robustnost testovat pomocí monte carlo simulací. Osobně bych nevybíral systémy na základě vzhledu jejich historických equity křivek.

    Obchodování variací jednoho systémů s různými parametry je z mé zkušenosti dobrá myšlenka. V praxi je ji třeba zasadit do kontextu velikosti obchodního účtu. Protože čím více systémy rozdrobíme, tím více mohou představovat zátěž komise.

    V každém případě je klíčem k úspěchu následné portfolio. Pokud v něm budete obchodovat více systémů s dobrým základním edge (viz výše) a kontrolovat u nich korelaci a risk, tak s velkou pravděpodobností v budoucnu vyděláte. Pořád je třeba mít na paměti, že i kvalitní systém může mít prodělečný rok. Není tedy možné se zabývat otázkou, jak vybrat takové systémy, které budou jenom vydělávat. Je potřeba přemýšlet o tom, jak poskládat systémy využívající alespoň trochu různé obchodní logiky. Pokud vám tedy vyzkoumaný systém dává smysl z pohledu základního edge, je dobré zauvažovat o nasazení do portfolia.

    Veškerá „kouzla“ se v tradingu skutečně dějí na jeho úrovni. Tady je ukázka, jak konkrétně uvažuji. Řekněme, že budu mít informace vycházející hlavně z Finančníka. Mohu si poskládat portfolio:

    Samostatné obchodní systémy

    Kde:

    Monday Buyer, vyučovaný ve swingovém workshopu, by měl vydělávat delším držením méně volatilních kvalitních akcií poté, co si projdou korekcí (určitá forma mean reversion systému).
    Mopull Limit, také vyučovaný ve
    swingovém workshopu,  spekuluje na intradenní oslabení v korekci po průrazu dlouhodobých cenových maxim (mean reversion).
    Micro Breakout, popisovaný
    rámcově zde, vychází z následování růstového momenta u akcií s nižší likviditou (trend following).
    Minimální dynamické portfolio, popisované
    rámcově zde, drží portfolio základních aktiv - akcie, zlato, dluhopisy (trend following).

    Tedy každý systém obchoduje v akciích trochu jiný edge a osobně jsem absolutně přesvědčený, že všechny edge najednou fungovat nepřestanou. Naopak se doplňují, o čem svědčí i historická křivka celého portfolia (výsledky po komisích a bez dividend, které výkonnost ještě reálně zvyšují):

    Celé portfolio

    Vidím, že portfolio má historicky sharpe ratio 1.69 a nejvyšší drawdown 12,87 %. Jelikož mám současně důvěru v obchodované základní edge jednotlivých systémů, tak bych se nebál jej obchodovat živě a třeba použít u některých systémů páku pro zvýšení výkonnosti (díky nízkému drawdownu je to možné). Jako že všechny zmíněné systémy živě na svých účtech obchoduji.

    OK, ale jak portfolio rozvíjet dál?

    Tady přichází důležitá skutečnost. Z mé zkušenosti nemá smysl zkoušet hledat další podobné systémy. Například nějaký jiný nákup korekce v akciích, které už obchoduji v podobě Monday Buyer a Mopull Limit. I když použiji třeba jinou vstupní logiku a jiné indikátory, budou pořád obchodovat stejný edge, a tudíž nepůjde o reálnou diverzifikaci. Portfolio je dobré posouvat o strategie využívající jiné edge. I když zůstaneme jen v akciích, tak existuje stále hodně přístupů, ve kterých systémy vyvíjet – sám mám ještě systémy obchodující sezónnost, systémy inkasující prémium z vypisovaných opcí a pracuji na systémech využívajících vyhlašování ekonomických reportů.

    Velmi důležité je tedy především nesnažit se při vývoji systémů hledat svatý grál. Je dobré přemýšlet o principech, které v trzích fungují dlouhodobě a systémy stavět hlavně tak, abychom řídili risk. Co nejdříve se pak dostat do fáze obchodování portfolií systémů postavených na různých edge, kde platí, že čím více systémů budeme obchodovat, tím méně nás bude trápit to, že občas vyvineme systém, který v budoucnu nebude generovat peníze tak, jak to indikoval v historickém backtestu.

    Pomohl vám článek? Sdílejte prosím jeho anotaci publikovanou na této naší facebokové stránce.

    30.8.2020

    Petr Podhajský

    Fulltime obchodník věnující se tradingu více než 20 let. Specializace na systematické strategie obchodované na futures a akciích. Oblíbený styl obchodování: stavba automatizovaných portfolio systémů, které využívá i při správě většího externího kapitálu.

    • Líbí se 10

    Sdílíme, co nám samotným funguje.
    7 výukových lekcí.

    Jak reálně uspět v tradingu?

    Naučte se vydělávat na své sny (naše metody na Finančník.cz)

    Praktický návod, jak v trzích získat šanci vydělávat stovky tisíc až miliony dolarů ročně bez vlastního kapitálu a nutností trávit denně hodiny před počítači (bez práce to ale nepůjde).

    >> Získat kurz zdarma <<

    Další články na toto téma

    Obchodní strategie: nákup krátkodobých poklesů v akciích

    Jedno ze základních pravidel úspěšného burzovního obchodování říká – nakup levně, prodej draho. Pojďme si ukázat, jak konkrétně může vypadat obchodní systém vycházející z tohoto principu. Včetně popisu mechanických pravidel a zpřístupnění on-line backtesteru, ve kterém si můžete pravidla sami otestovat.
    Obsah článku:
    Co znamená nakupovat krátkodobé poklesy? Co je to "pokles" na akciovém trhu? Jakou výhodu přináší nakupování po poklesu? Obchodní plán nakupování akcií do poklesu Vstupní pravidla obchodního plánu Výstupní pravidla obchodního plánu Konkrétní příklad obchodu dle publikovaného obchodního plánu Nakupování po poklesu akcií vs. buy and hold Vyšší výkonnost při nižším využití kapitálu Další kombinace parametrů – vyzkoušejte bezplatný backtester Co znamená nakupovat krátkodobé poklesy?
    Anglicky se tomuto přístupu říká „buy the dip“ a princip vychází z myšlenky, že v akciových trzích dochází velmi často po krátkodobých poklesech k oživení cen a novému růstu.
    Obchodní příležitosti mohou být tím zajímavější, čím rychlejší a dramatičtější pokles je. Protože při poklesu ceny akcií obvykle nejslabší investoři začnou své akcie prodávat (nebo se jim aktivují příliš blízko zadané stop-lossy), což pokles ceny ještě umocňuje. Jakmile se situace uklidní, vstupují často do trhů noví nakupující a cena může mít tendenci stoupat.
    Co je to "pokles" na akciovém trhu?
    Pokles na akciovém trhu můžeme definovat jako krátkodobé snížení ceny akcie na její jinak růstové trajektorii.
    Pro nákup krátkodobých poklesů tak obecně chceme vidět, že cena akcie dlouhodobě roste a v rámci růstu došlo ke krátkodobému cenovému poklesu.
    Na Finančníkovi jsme systematičtí obchodníci, takže si budeme  podobná pravidla chtít popsat naprosto jednoznačně.
    Pro účely systematického tradingu lze pokles definovat například tak, že se akcie obchoduje nad svým dlouhodobým cenovým průměrem (běžně počítaným jako průměr za 200 obchodních dnů) a současně se její cena snížila během jedné obchodní seance o více než 3 %.

    Graf akcie TSLA s vyznačeným dlouhodobým klouzavým průměrem (zelená linka) počítaným za posledních 200 obchodních dnů (MA200). Zelené šipky zobrazují dny, kdy byla uzavírací cena nižší o více než 3 % než předchozí uzavírací cena.
    Pokud pracujete s programem Amibroker, můžete si podobný graf zobrazit s pomocí následujícího kódu:
    shape1 = IIf(ROC(C,1)<-3 AND C>MA(C,200),1,0) * shapeUpTriangle; PlotShapes( shape1, colorGreen, 0, Low, -33); (pokud byste rádi podobné grafy vytvářeli, ale nevíte jak sdílený kód aplikovat, doporučuji účastnit se minikurzů v rámci TechLabu).
    Jakou výhodu přináší nakupování po poklesu?
    Pokud se podrobněji zaměříme na pohyby prakticky libovolného trhu, pak brzy zjistíme, že se trhy pohybují v určitých „vlnkách“. Nákupem na dnu vlnky pak můžeme dosáhnout lepší vstupní ceny, než pokud nakupujeme na vrcholu vlnky.
    Takto si můžeme pohyby trhu zobrazit ve zmíněné akcii Tesly:

    Je ale potřeba zdůraznit, že ne každý nákup do poklesu nás dovede k lepší vstupní ceně. Pochopitelně nikdy nemáme záruku, že cena nebude klesat dál. Každá akcie může klesnout třeba až k nule a jakékoliv obchody je třeba dělat s dobře nastaveným money managementem.
    Nicméně bankrot akcie pohybující se nad MA200 není příliš pravděpodobný. Pravděpodobnější je scénář, že nákupem do poklesu získáme dlouhou pozici za příznivou cenu. Ovšem příznivá vstupní cena neznamená automaticky profit. Ten se realizuje až výstupem a tedy skrz kompletní obchodní plán.
    Obchodní plán nakupování akcií do poklesu
    Nákupy po poklesu akcií mohou mít různou formu. Někteří obchodníci podobným vstupem otevírají svá dlouhodobá portfolia, jiní vydělávají na očekávaných krátkodobých pohybech.
    To je náš příklad.
    Jedna z taktik, kterou v trzích dělám, vypadá zhruba následovně:
    Vstupní pravidla obchodního plánu
    Sleduji akcie v určitém akciovém indexu. Pro konkrétní příklad použijme Nasdaq 100. Sleduji, které akcie se pohybují nad MA 200 a čekám, až některá akcie klesne za jeden den o více než 3 %. To je tzv. signální úsečka (č.1 na níže uvedeném screenshotu).
    Následující den zadám limitní vstupní příkaz pod uzavírací cenu signální úsečky. Většinou o velikosti určitého násobku ATR. ATR zjednodušeně řečeno říká, jaký je průměrný denní rozkmit. 0,9 * ATR5 tak např. reprezentuje skoro plnohodnotný průměrný denní rozsah za posledních 5 dnů. Do podobné vzdálenosti zadám limitní vstupní nákupní příkaz. Jinými slovy po výrazném poklesu se snažím nakoupit ještě s výraznou slevou.
    Výstupní pravidla obchodního plánu
    Takto se budu snažit vstoupit do určitého daného maximálního množství současně otevřených pozic. Například deset. Výstupy mívají časový stop-loss (např. pozici chci držet max. 10 dnů), price action výstupní podmínku (například výstup, když úsečka uzavírá nad nejvyšší cenou předchozí den) a třeba limitní profit target (např. pohyb o určitý násobek ATR od poslední uzavírací ceny).
    Konkrétní příklad obchodu dle publikovaného obchodního plánu
    Konkrétní obchod může vypadat jako tento na screenshotu:

    Bod 1 představuje signální úsečku – trh poklesl o více než 3 % od předchozí uzavírací ceny. Následující den (úsečka 2) zadávám limitní nákupní příkaz do vzdálenosti 0,9*ATR5 od uzavírací ceny úsečky 1. Na úsečce 3 je zasažen výstupní profit target signál počítaný z hodnot 0,5*ATR5. Pokud bych měl profit target vzdálenější, vystupoval by systém na úsečce 4, protože ta uzavírá výše, než byla maximální cena předcházející úsečky.
    Podobné obchody opakuje systém stále dokola ve všech akciích indexu Nasdaq 100 (maximálně má otevřeno 10 pozic).
    Nakupování po poklesu akcií vs. buy and hold
    Jaká je výhoda podobného přístup oproti klasickému držení akcií nebo indexu?
    Stručně nám na to odpoví backtest.

    Modrá křivka představuje výkonnost zmíněného jednoduchého systému nákupu „dipu“, šedá linka reprezentuje pro porovnání výkonnost indexu Nasdaq 100.
    O jednotlivých metrikách backtestu bych zde mohl psát hodiny. Pro zachování stručnosti se zaměřme jen na ty nejjednodušší. V řádku označeném 1 je vidět, že systém vydělal historicky výrazně více, než případné držení indexu: 18,8 % ročního zhodnocení vs. 13,31 %. Což vedlo pochopitelně k výrazně odlišnému absolutnímu zisku. Investovaných 20 000 dolarů by v rámci systému přineslo 3 057 987 dolarů, v indexu 831 074 dolarů (řádek označený 3). Systém vydělal výrazně více i přesto, že v praxi bychom museli výnosy systému danit (v případě pasivního držení indexu nikoliv).
    Ještě podstatnější než absolutní výnosy je pro mě důležitý drawdown (řádek označený 2). V indexu bychom si prošli drawdownem –82,90 %, systém měl drawdown –22,55 %. Z pohledu výnos/drawdown je jednoznačné, kdo je vítězem a proč se systematickému obchodování věnujeme.
    Vyšší výkonnost při nižším využití kapitálu
    Srovnání dalších parametrů si můžete projít ve výše publikované tabulce. Upozornil bych ale ještě na řádek označený 4 – průměrně vytížení kapitálu systémem. V případě indexu bychom měli zainvestovaný veškerý kapitál. V případě diskutovaného systému „nákupu se slevou“ je vytíženost kapitálu 13,9 %. To znamená, že 80 % kapitálu u podobného systému nevydělávalo – leželo by na účtu (a i přesto jsou výsledky mnohem lepší než při držení indexu).
    V praxi se tak nabízí zapojení dalších systémů do portfolia. Což je přesně to, co na Finančníkovi děláme. Mohu obchodovat například podobný systém nákupu po poklesu a současně jiný systém, který bude krátkodobě akcie shortovat. Oba systémy budou vyžívat stejný kapitál a o to vyšší bude výsledná výkonnost.
    Podrobně tento princip rozvádíme v článku Portfolio – význam pro profitabilitu a diverzifikaci rizika.
    Další kombinace parametrů – vyzkoušejte bezplatný backtester
    Možná, že začínáte být ze systematických mechanických strategií (a jejich portfolií) podobně nadšeni, jako jsme my. A nedivím se. Možností, jak zajímavě zhodnocovat kapitál, je zde skutečně mnoho. Vše lze navíc jednoznačně testovat a vyhodnocovat.
    Pokud zatím nemáte s historickými backtesty zkušenosti, můžete vyzkoušet prostředí, se kterým sám pracuji.

    Na stránku https://backtester.financnik.cz/zakladni-korekce jsme připravili jednoduché rozhraní, ve kterém si můžete otestovat různé variace popisovaného systému. Můžete sledovat, jaký dopad mají na výsledky jiné parametry zvolených násobků ATR, podmínky signální úsečky nebo množství současně otevíraných pozic.
    Backtester je v tuto chvíli otevřený všem traderům na Finančník.cz. Hotové reporty posílá v PDF formátu na e-mail, který se nemusíte bát do formuláře zadat. E-maily v tomto formuláři nejsou nikde uchovány ani použity pro jiný účel, než jednorázové zaslání reportu.
    P.S: V pravidelné pondělní lekci z živých trhů jsem komentoval svůj živý obchod, který mám v době psaní článku právě otevřený podle obchodního systému, který je velmi podobný tomu, který zde diskutujeme. 

    Jak bez zkušeností vytvářet automatizované obchodní systémy (AOS) s využitím umělé inteligence

    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ů).
     

    Backtest & obchodní plán za 6 víkendů

    Foto (c)iStockphoto.com/racnus &nbsp  Řadě začínajících traderů trvá až příliš dlouhou, než se "dokopou" do backtestu a stavby obchodního plánu. Přitom oba tyto kroky jsou naprosto základním stavebním kamenem našeho tradingu - bez obojího nemůžeme ani začít s paper-tradingem. Dobrá zpráva však zní - vše je možné připravit za pouhých 6 víkendů, při práci max. 3 hodiny denně. Dnes si ukážeme jak.
    Nutno říci, že obchodník, který se chystá k backtestu a stavbě obchodního plánu, musím již mít ideu, co chce vlastně backtestovat a co by tak chtěl do budoucna obchodovat. Měl by mít tedy jasno alespoň o konceptu, se kterým chce pracovat dále - ať už je to obchodní systém FinWin, poziční obchodování spreadů, nebo cokoliv jiného - záleží jen na tom, který z dostupných nebo vlastních obchodních přístupů si vyberete k seriózní práci vedoucí ideálně až k živému obchodování.
    K backtestu a stavbě obchodního plánu je tedy nezbytné, abyste již měli jasno v konceptu, se kterým chcete pracovat - následně pak už může jít práce poměrně hladce, pokud si jí správně rozvrhneme a budeme se jí po 6 víkendů věnovat, při pouhých 3 hodinách denně.
    Víkend 1: příprava počítače 2x 3 hodiny
    Abychom mohli začít backtestovat a stavět obchodní plán, musíme mít k těmto krokům připravený počítač. Je tedy třeba nainstalovat potřebný software - tj. například SierraCharts, NinjaTrader, Gecko Track ´n´Trade, atd. Záleží na každém, s jakým programem se rozhodne pracovat - v tomto ohledu doporučujeme začít širším přehledem o dostupnosti různých analytických platforem, na našem webu naleznete řadu popisu a specifikací programů, které s Petrem používáme nejčastěji, nebo se kterými máme dobré zkušenosti.
    Následně budete potřebovat program Excel, který budete využívat k zapisování backtestovaných obchodů a jejich pozdějšímu analyzování. Je dobré si předem připravit nějaký jednoduchý backtestový Excel, nebo využít takový, který už je hotový a je k dispozici.
    K instalaci a základnímu seznámení se s těmito nástroji by vám měli stačit dva volné víkendové dny, max. 3-4 hodiny denně. 
    Víkend 2: backtest 2x 3 hodiny
    V pátek před druhým víkendem byste tedy měli již mít zcela zprovozněné a funkční veškeré nástroje a měli byste mít jasný koncept toho, co chcete backtestovat. Týden také využijte k tomu, že si na kus papíru zapíšete základní pravidla pro vstupy a výstupy systému, který chcete testovat - musíte totiž začít backtest již s konkrétními pravidly. K sepsání těchto základních podmínek se nemusíte nějak zvlášť přemáhat, prostě jen cestou do práce a z práce o všem trochu porozmýšlejte a před spaním si zapište konkrétní nápady a postřehy na podobu vašich vstupů a výstupů - resp. vstupních a výstupních pravidel, která budete testovat.
    Během víkendu pak začněte velmi pomalu s prvotním backtestem. Pokud se pouštíte do intradenního obchodování, budete potřebovat testovat alespoň 6 měsíců nazpět. Ideální je 1 rok a více, pokud však s backtestem začínáte, není třeba se do všeho nutit hned od začátku - už 6 měsíců backtestu vám dá základní potřebný přehled.
    Řekněme, že backtest budete dělat realistickým tempem 1 obchodní den za 5 minut. Není důvod, aby vám tempo trvalo déle - 5 minut poměrně bohatě stačí na to, abyste v rámci daného obchodního dne v historii našli potenciální vstupy a výstupy, zapsali takové do obchodního deníku (připraveného v Excelu) a pořídili screenshot daného dne.
    Při 5ti minutách na jeden obchodní den budete potřebovat zhruba 120 x 5 minut = 10 hodin. Občas se možná někde trochu "kousnete", takže s rezervou 12 hodin by mělo bohatě stačit. Pokud si tuto práci rozložíte tak, že během jednoho víkendového dne zbacktestujete zhruba 30 obchodních dnů (velmi realistické), stačí vám dva víkendy při práci max. 3 hodiny denně. Neměl by být tedy problém zvládnout backtest za dva víkendy.
    Víkend 3: backtest 2x 3 hodiny
    Předešlý týden byste měli být schopni realizovat polovinu backtestu. Nic méně, nyní jste si dali celý týden oddych a odstup a docela určitě vás napadly nové myšlenky a nápady. Je tedy možné, že se k některým obchodům ještě vrátíte, svůj původní záměr trochu pozměníte a některé dny budete backtestovat znova. Proto někteří mohou potřebovat na tento v pořadí již třetí víkend trochu více času - řekněme max. 4-5 hodin denně, což je stále realisticky zvládnutelný čas. Nebojte se skutečně využít luxusu týdenního odstupu a přemýšlení o práci z předešlého víkendu a vaše záměry ještě pozměnit a upravit - pokud se případné nové nápady ukážou jako funkční.
    Víkend 4: práce s daty 2x 3 hodiny
    Máte nasbíraná data za půl roku - tj. poměrně solidní vzorek obchodů pro začátek (hovořím zde samozřejmě o intradenním obchodování). Nyní bude třeba s daty dále pracovat - tj. především s analýzou MAE/MFE, úspěšností jednotlivých dnů v týdnu, případně dalšími filtry. Doporučuji využít celý týden před tímto krokem ke studiu například v rámci diskusního fóra na našem serveru a nechat se trochu více inspirovat zkušenějšími v tom, jak s nasbíranými daty pracovat a jak je co nejlépe vyhodnocovat.
    Na tuto práci si dejte dostatek času. Porovnejte různé možnosti nastavení PT a SL, případně otestujte další dodatečné filtry - máte-li takové zahrnuty v základním backtestu. Můžete k širší analýze využít i program MSA. Veškerá nastavení, která shledáte jako vhodná a finální pro první podobu svého finálního obchodního systému, nezapomeňte uložit v podobě screenshotu - budete totiž screenshoty potřebovat ke kompletaci svého obchodního plánu. Výsledkem v pořadí čtvrtého víkendu by měla být řada tabulek, která jasně ukáže, v jaké podobě (konfiguraci) budete chtít se svým obchodním systémem pracovat a co od této podoby čekat (WIN%, P/L, drawdown, profit per month, atd.).
    Víkend 5: sepsání základního obchodního plánu 2x 3 hodiny
    Pátý víkend v pořadí využijte ke kompletizaci první podoby obchodního plánu. Nejprve si ujasněte obsah - ten by měl obsahovat minimálně velmi konkrétní a detailní popis podmínek vstupů a výstupů (včetně ukázek a screenthotů), popis situací, ve kterých neobchodujete (chop), popis základních nastavení systému, včetně statistických závěrů z vašich backtestů. Je dobré přidat do obchodního plánu i něco o vaší motivaci - proč chcete obchodovat, jaké máte dlouhodobé cíle, atd. O obchodním plánu bylo zde již napsáno mnoho - opět tedy doporučuji během týdne prohledat náš server a najít si další informace o tom, jak by finální obchodní plán měl vypadat. Pokud vše půjde dobře, na konci pátého týdne budete mít první finální podobu.
    Víkend 6: dokončení obchodního plánu 2x 3 hodiny
    Poslední týden využijte k tomu, abyste nechali až do víkendu vše ještě trochu uležet. V klidu si ještě jednou vše promyslete, zvažte, případně nasbírejte další nápady, podněty a myšlenky. Teprve pak se vrhněte o víkendu do práce - dodělejte případné změny, nebo rozšíření - zkrátka a dobře vše, co vás během týdne ještě napadne. Nakonec dejte obchodnímu plánu nějakou hezkou podobu, vytiskněte a svažte. Gratulujeme, máte za sebou první backtest a první obchodní plán.
    Závěrem
    Je nutné si uvědomit, že prakticky žádná podoba obchodního plánu není definitivní - obchodní plán je vlastně otevřená platforma, která se neustále modifikuje, dle toho, jak se mění zkušenosti tradera. Je vysoce pravděpodobné, že až se s nově postaveným obchodním plánem pustíte do paper-tradingu, začnete mít nové nápady a myšlenky, takže přijde mnoho dalších srovnávacích backtestů a dalších verzí obchodních plánů. To je zcela v pořádku a patří to k běžné práci tradera. Důležité je však udělat první krůček, bez kterého nemohou následovat ty další. A právě k tomuto účelu slouží tento článek.
    Pokud už máte pár backtestů a obchodních plánů za sebou, nezapomeňte se podělit s ostatními o tom, jak vám práce šla/nešla od ruky, kolik času jste potřebovali a kde nejvíce jste bojovali.
×
×
  • Vytvořit...