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):
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ě:
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:
A zde po úpravě, kdy druhý kontrakt vstoupí později (tuto verzi nyní obchoduji):
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é.
Tomáš Nesnídal