Jump to content
Co nového? Mé kurzy
Články a tutoriály:
Seriály Komoditní Manuál Psychologie obchodování
  • Money management v praxi: multikontrakty a opožděné vstupy

    V dnešním článku bych rád demonstroval, jak výrazně vylepšit stabilitu výsledků bez nutnosti jakkoliv zasahovat do obchodního systému. Jedná se o jednoduchou, ale velmi účinnou techniku.

    Celou myšlenku demonstruji na konkrétním obchodním systému. Jedná se sice o automatický obchodní systém, ale technika je aplikovatelná stejně dobře i na diskréční obchodování, jak si ještě povíme na konci. Pojďme tedy na to.

    Zhruba před 2 lety jsem nasadil do živého obchodování velmi jednoduchý systém, o který se se mnou podělil můj kamarád, se kterým společně vyvíjíme obchodní systémy a předáváme si cenné know-how v této oblasti. U systému jsem provedl jednoduchou optimalizaci, a to převážně při použití takzvaného "Volatility Exit", což je můj vlastní trik založený na výstupu při prudké změně volatility. Co je však podstatnější – do systému jsem aplikoval automatický position sizing, který byl založený na aktuální výši celkového účtu, na kterém běží jedno z mých portfolií strategií. Před každým obchodem se tedy systém "podíval", jaká je aktuální velikost účtu (jelikož na účtu běží řada strategií, velikost se stále mění) a dle toho nasadil do obchodu příslušný počet kontraktů. Množství obchodovaných kontraktů bylo většinou v rozmezí 2-4, takže řekněme v průměru 3 kontrakty do každého obchodu. S touto hodnotou budu pracovat v článku ještě dále.

    Ačkoliv se mně z počátku jevila myšlenka automatického position sizingu počítaného z celkového účtu jako vcelku silná, později jsem narazil na jistá omezení. Jedním z nich byl třeba fakt, že systém obchodoval nejméně kontraktů zrovna v dobách, kdy se mu dařilo nejlépe, a naopak obchodoval vysoký počet kontraktů v dobách, kdy vykazoval drawdown. Samozřejmě to celé bylo do jisté míry i dílem náhody toho, že obchody tak obecně zrovna vycházely – ale na průběhu equity se to projevilo (proto jsem také později vytvořil alternativní přístup, který jsem nazval "system-sizing").

    Při průměrném obchodování 3 kontraktů na obchod tedy equity mé variace systému vypadala zhruba následovně (v reálném obchodování z různých důvodů vypadala equity trochu hůře):

    mm-multicontract-original.jpg

    Celkový způsob obchodování tohoto systému a alokace množství kontraktů se mně tedy ukázalo jako nevyhovující, před pár měsíci jsem systém i zcela vyřadil z portfolia (a přišel tak o slušnou řadu zisků) s cílem vymyslet, jak vše uchopit lépe a efektivněji.

    Z diskréčního obchodování už mám ověřené, že jednou ze silných technik je nasadit do systému více kontraktů a každý případně uzavírat trochu jiným způsobem. Tato technika pomáhá k vyhlazení equity a stabilnějším výsledkům. U systému výše ale překvapivě tak skvělé výsledky tato technika nepřinášela, takže jsem přemýšlel dále. Při dalším experimentování jsem však dostal myšlenku – co by se stalo, pokud bych v případě validního signálu neotevřel všechny 3 pozice najednou, ale "rozprostřel" vstupy v čase? Tj. v moment regulérního signálu vstoupil s jedním kontraktem, pak počkal pár minut a vstoupil s druhým, počkal pár minut a vstoupil se třetím.

    Kupodivu se tato jednoduchá technika ukázala jako velmi silná. Vstup dalších kontraktů jsem oddálil vždy po cca 5 minutách a následně každému ze vstupů přidal trochu jiný výstup. Samotný systém jsem pak ještě dále zjednodušil – vypustil jsem Volatility Exit. Výsledek stejného systému, avšak s postupným otevíráním a následným uzavíráním 3 kontraktů, vypadá následovně:

    mm-multicontract-new.jpg

    Jaký zásadní rozdíl při pouhé aplikaci jiné formy money managementu!

    Jenom pro doplnění a srovnání, zde jsou nejzásadnější parametry před úpravou a po úpravě:

    Net Profit – původní verze: 182 080 USD
    Net Profit – nová verze: 209 370 USD

    Profit factor – původní verze: 1.78
    Profit factor – nová verze: 1.79

    WIN% – původní verze: 63.11%
    WIN% – nová verze: 59.08%

    AVG trade – původní verze: 101 USD
    AVG trade – nová verze: 95 USD

    Max Close to Close drawdown – původní verze: 11 430 USD
    Max Close to Close drawdown – nová verze: 6 580 USD

    Myšlenku jsem okamžitě začal aplikovat i na své ostatní obchodní systémy. S konkrétní metodou, kdy určit vstup dalšího kontraktu, je možné si ještě hrát a vymýšlet různé způsoby, avšak pointa je vždy stejná – počkat na regulérní vstupní signál, vstoupit pouze s částí kontraktů a další kontrakty přidat až později, buď čistě dle času, nebo dle určitých parametrů dalšího vývoje trhu.

    Již jsem zde v několika článcích prezentoval například svou úplně první breakout strategii nazvanou TomNes_BOSS (kterou i vyučuji na kurzu stavby a testování breakout strategií), takže ukážu ještě, jak například tato úprava vylepšila právě tento systém. Zde je originální verze systému:

    BOSS-original.jpg

    A zde po úpravě, kdy druhý kontrakt vstoupí později (tuto verzi nyní obchoduji):

    Boss-new.jpg

    Znovu upozorňuji, že v samotném systému nebylo změněno vůbec nic – stále jde o stejný systém, stejné parametry, stejnou logiku – jedinou změnou je pozdější přikoupení druhého kontraktu (zde ještě na základě jisté konkrétní situace v trhu, na kterou druhý kontrakt čeká).

    Podobným způsobem jsem tedy "projel" všechny své další systémy, a kde se to ukázalo jako vhodné, provedl úpravy ve stejném duchu (ne u všech systémů je to možné). V tuto chvíli se mně pro nejstabilnější výsledky tedy osvědčuje kombinace podobných hrátek s multikontrakty a zároveň již zmíněný system-sizing, kdy se snažím jednotlivé systémy držet na úrovni 1-4 kontraktů a raději než kontrakty pak už navyšuji počet obchodních systémů.

    Využití v diskréčním obchodování

    Princip je možné využít i v diskréčním obchodování – záleží jen na vynalézavosti. Jak už jsem psal, první z možností je vstup s více kontrakty a každému přiřadit jiný výstup. Takto jsem v minulosti nějakou dobu také obchodoval systém FinWin, určitě tímto zlepšíte průběh a vyhlazení equity. Jiná možnost je však využít stejného "triku", který jsem nastínil v tomto článku. Tj. vstupy nerealizovat najednou, ale třeba až na další úsečce (bez ohledu na to, jak taková bude vypadat), nebo například realizovat vstup s dalším kontraktem až v případě, že se dostaneme do určité otevřené ztráty (a tím mít možnost druhý kontrakt obchodovat s menším SL). Pracovat ale můžeme i s jinými kritérii: Například nasadit o kontrakt více pouze ve dny, které máme statisticky nejsilnější; obchodovat s více kontrakty pouze některé z patternů; přidat druhý kontrakt, až pokud se potvrdí prolomení určité důležité S/R úrovně; počkat s druhým kontraktem na prolomení swingu atd. Vše už záleží na invenci tradera – podmínkou je samozřejmě jako vždy řádné testování s pomocí backtestu. Osobně mohu podobné experimenty pouze doporučit, výsledky mohou být občas skutečně překvapivé.

    5.8.2012

    Tomáš Nesnídal


    Mohlo by vás dále zajímat

    Nakolik reverzním strategiím pomůže zajištění prodejem indexu?

    Rychlé propady akciových indexů se pochopitelně promítly i do výsledků řady obchodních strategií. Nakolik pomůže, pokud bychom obchodovali strategii zajištěně? Tj. při otevírání dlouhých pozic v akciích bychom pozice jistili prodejem indexu?
    V tradingu je úžasné, že samotnou strategií vesměs obchodování jen začíná. Konečné výsledky jsou do velké míry ovlivněny především tím, jaký money management na jednotlivé vstupní a výstupní logiky aplikujeme. Tedy jak s pomocí velikosti pozice ovlivňujeme celkový risk profil strategie.
    V minulém článku Klíčová role money managementu na cestě k úspěchu v tradingu jsme si ukázali jeden možný přístup řízení risku. Dnes se chci podívat na další, který se ještě více blíží oblastem, ve které sám vnímám největší svatý grál – zajišťování pomocí long/short diverzifikace v rámci portfolia.
    Řekněme, že budeme obchodovat některou z tradičních reverzních strategií nakupující akcie. Ty spočívají v tom, že nakupujeme trhy po výrazném krátkodobém poklesu a držíme je pár dnů do doby, než se jejich cena vrátí do běžné hodnoty. Tedy princip využívající neefektivitu trhu vznikající díky krátkodobé panice – obchodníci se často iracionálně zbavují pozic, které proti nim prudce klesnou.
    Reverzní strategie fungují dobře a dlouhodobě. Slabé chvilky mají ale v momentě, kdy prudce poklesne celý trh (jako například nyní v reakci na koronavirus). Cena slabé akcie se nevrací k běžné hodnotě, ale dál klesá s celým trhem a strategie se propadá do drawdownu.
    Takto to může vypadat konkrétně. Jde o hypotetickou strategii nakupující bez páky 5 pozic v akciovém indexu SP100:

    Strategie dlouhodobě krásně vydělává, ale pochopitelně rychlé propady celého trhu se promítají do drawdownů. Bez použití páky se drawdowny u podobných strategií vesměs pohybují v aktuálním kontextu kolem 30 %:

    Jak by vypadaly výsledky, pokud bychom strategii obchodovali se zajištěním?
    Tedy na každých 1 000 dolarů otevřených v dlouhé akciové pozici bychom otevřeli short pozici v akciovém indexu v hodnotě stejných 1 000 dolarů?
    Pokud má naše strategie dlouhodobý edge, měla by i se zajištěním vydělávat (protože by měla bez hedge index překonávat). Jaké ale budou konkrétní výsledky napoví až konkrétní backtest. Ten jsem provedl za vás a výsledky jsou tyto:


    Výnosová křivka podle předpokladu nemá tak hluboké propady, protože když prodělává samotná strategie nakupující akcie, vydělává short pozice v indexu.
    Z tohoto pohledu vypadá podobný hedge (zajištění) jako dobrý nápad.
    Bohužel každá ochrana v trhu stojí peníze. A stejné je to se zajištěním pomocí indexu. Je potřeba si uvědomit, že zajištění je v trhu permanentně a v dobách růstu indexu „ztrácí peníze“. Prostě stejně, jako klasické pojištění – to nás stojí spoustu peněz a využijeme jej jen ve výjimečných případech.
    Konkrétně se výkonnost strategie snížila s využitím zajištění z ročního zhodnocení 20,15 % (bez páky) na 14,24 %.  Současně se nám ale o polovinu snížil historický drawdown.
    Vyplatí se tak obchodovat reverzní strategie se zajištěním pomocí indexu?
    Na uvedeném příkladu je vidět, že to nemusí být špatný nápad. Hodně bude záležet i na konkrétních strategiích a doporučuji s principem experimentovat. Je možné testovat i to, že nezajišťujeme plnou pozici, ale jen částečnou atd.
    Samozřejmě v praxi hedging přináší další výzvy například v technické implementaci. Otevíráme další extra pozice a z pohledu EU traderů musíme řešit i to, jakým trhem se zajistit. Protože klasické americké ETF nemusí být na malých účtech k dispozici. Použít jdou ale například mikrokontrakty na akciové indexy, což je prakticky řešení, které sám používám. Hedge nevytvářím úplně mechanický, ale zajišťuji se pomocí strategií – viz +93 % za 3 měsíce – breakout systém na ES, kdy v této výjimečně volatilní době velmi dobře fungují trendové obchody (i do shortu). A díky možnosti využívat mikrokontrakty lze podobné strategie jemně škálovat tak, aby se vhodně doplňovaly se zbytkem portfolia.
    Je ale pochopitelné, že vše chce v obchodování svůj čas a je dobré postupovat krok za krokem. Pro mnoho obchodníků tak může být výhodné jistit se v trzích zcela mechanicky – třeba short pozicí v indexu nebo nakoupením put opce. Ale vždy je dobré si konkrétní dopad hedgingu na strategii nasimulovat. Třeba tak, jak jsem to udělal v tomto článku.
    K praktické stránce: Výše uvedené simulace jsem připravil v Amibrokeru pomocí low level CBT. V něm lze sledovat například velikost otevíraných pozic a podle toho upravovat velikost potřebného zajištění v indexu. Není to ale úplně triviální. A tak pro všechny, kdo chtějí s principem experimentovat a chtějí ušetřit dny, které jsem se skriptem sám strávil, připravím do archivu návodů Techlabu v tomto týdnu tutoriál včetně kompletního kódu, se kterým můžete hned začít pracovat bez potřeby vlastního programování.

    Penalizace obchodování systému v drawdownu

    Tutoriál ukazuje, jak v Amibrokeru testovat techniky pokročilého money managementu. Konkrétně si ukážeme dynamické řízení otevíraných pozic na základě aktuálního drawdownu.

    Tutoriál naleznete zde.

    Klíčová role money managementu na cestě k úspěchu v tradingu

    Většina obchodníků zaměřuje svoji pozornost především na logiku vstupů a výstupů. Peníze se však při obchodování tvoří z nemalé části prostřednictvím money managementu. V současných turbulentních časech může být ideální příležitost se na tuto oblast více zaměřit.
    Co tvoří základ úspěšného obchodování?
    Mnoho obchodníků odpoví, že kvalitní vstupy a výstupy. Tedy řekněme logika obchodních signálů. A následně se může diskuze svést na to, jestli se signály přesněji vytvářejí přes price action, oscilátory, klouzavé průměry nebo třeba volume profily.
    Jenže obchodní signály jsou jen částí úspěšného obchodování. V zásadě nám říkají, KDE vstoupit a vystoupit.
    Druhou částí je money management, který nám diktujte, KOLIK v daném obchodu riskovat.
    Jakou váhu mají obě složky v obchodování?
    Dnes jednoznačně vnímám, že mnohem klíčovější je money management. Právě ten totiž nejvíce ovlivňuje, kolik peněz ve finále vyděláme nebo ztratíme.
    Podívejte se na následující příklad.
    Tato equity křivka pochází z mého swingového systému nakupujícího akcie v korekci. Systém obchoduje jednou týdně a silný propad trhů v poslední době pochopitelně vedl k drawdownu:

    Ukázková equity křivka vychází z velmi jednoduchého money managementu. Systém otevírá maximálně 8 pozic a každé je přiřazen kapitál odpovídající 1/8 stavu účtu (12,5 %). Systém tedy obchoduje bez páky a jen alokuje peníze na účtu do maximálně 8 současně otevřených obchodů. Po odečtení komisí vychází roční výnos na 9,61 %.
    Výsledky můžeme srovnat s druhou equity křivkou:

    U té vidíme podstatně vyšší výnos (16,26 %) a podstatně nižší aktuální drawdown. Přitom jde o úplně stejný systém otevírající úplně stejné obchody. Co se liší, je velikost otevíraných obchodů. Tu řídí money management modul, který:
    Obchodům přiděluje kapitál o velikosti 6-25 % aktuálního stavu účtu podle toho, jak se systému dařilo v posledním měsíci (Pokud trhy spolupracují, systém využívá margin. Pokud trhy nespolupracují, pak mu kapitál omezuji.). Penalizuje obchodování v drawdownu. Pokud se například systém dostane do 5% drawdownu, money management modul mu přidělí poloviční kapitál. Stejné vstupy, a přesto tak odlišná celková výkonnost.
    Money management je opravdu extrémně silná taktika, kterou hodně obchodníků podceňuje. V tradingu pochopitelně nelze zvládnout vše najednou a dává smysl začít s jednoduchými typy money managementu. Ale jen co si základy systematické práce se strategiemi osvojíte, je dobré se samotnými vstupy a výstupy již tolik času netrávit a pozornost věnovat právě oblasti celkového money managementu.
    Aktuální trhy přitom paradoxně nabízejí perfektní příležitost podívat se na obchodování z jiného pohledu a na money managementu zapracovat.
    Proč? Současné pohyby bezesporu dovedly mnoho traderů k tomu, aby zastavili obchodování svých systémů v momentě, kdy již nemohli unést další prohlubování drawdownů. Přitom tuší, že je to přirozeně špatně, protože bez konzistentního obchodování a překonávání propadů equity křivek se nikdo nemá šanci k dlouhodobým profitům dostat.
    Živý kontakt s drawdowny tak může pomoci nastavit si takový money management, který vám příště pomůže další krizí projít bez potíží. A třeba s podstatně vyšším kapitálem.
    Moje zkušenost je taková, že se v případě money managementu vyplatí soustředit nejen na co nejvyšší výnosy, ale právě i na ochranu před hlubokými propady kapitálu. A to především z pohledu únosnosti obchodování strategie s ohledem na naši psychiku. Protože ta je klíčová. Pokud nedokážeme systematicky obchodovat strategie v době drawdownů, nikdy na trzích neuspějeme. Takové ochranné mechanismy sice mohou způsobit, že vyděláme méně než bez nich, ale poskytují ohromnou psychologickou úlevu. Například v momentě, kdy systém v drawdownu snižuje expozici na polovinu (a při dalším propadu třeba na další polovinu). V době, kdy se systému daří si oproti tomu můžeme dovolit více riskovat.
    Sám věnuji studiu a aplikování money managementu na úrovni portfolia poslední roky ohromnou pozornost a bohužel to není technicky úplně jednoduchá věc (a stále nejsem tam, kde bych si přál být). Nicméně jednodušší taktiky na úrovni samotných systémů lze velmi snadno aplikovat pomocí pár řádků kódů. A jednoznačně s tímto doporučuji experimentovat.
    P.S: Jelikož je toto téma opravdu velmi aktuální, tak konkrétní základ, jak je možné penalizovat systémy v drawdownu v Amibrokeru, ukáži v pravidelném tutoriálu tento týden v TechLabu.
×
×
  • Vytvořit...