Obchodní příkazy v praxi (3/3) - Limitní příkaz
V dnešním článku zakončíme třídílný mini-seriál na téma praktického využití různých typů obchodních příkazů v rámci vstupů. Dnes se podíváme na poslední ze základní skupiny příkazů – příkaz typu Limit. Záměrně jsem nechal tento typ příkazu až zcela nakonec, neboť si troufám říci, že se k tomuto jinak skvělému příkazu váže několik úskalí, které je třeba vzít v potaz.
Limit
Příkaz Limit může být v určitém ohledu "nejzrádnější" ze zmíněných příkazů a proto mu musí být věnována speciální pozornost. U příkazu typu Limit totiž, na rozdíl od Market a Stop, nikdy nemáte garanci vyplnění. Jinými slovy, váš příkaz může, ale nemusí být vyplněn. Tato skutečnost pak dělá backtestování strategií s Limit příkazem trochu zrádné, pokud nepoužíváme určité "fígle", nevíme, zda by ve skutečnosti obchod byl vyplněný. Dokonce i s "fígly" nemůžeme na 100% říci, jak by situace dopadla v reálu (i když při určitých nastaveních sofistikovanějších testovacích platforem se již můžeme reálu výrazně přiblížit).
Pojďme začít shrnutím, co je příkaz Limit. Tento příkaz v podstatě říká "chci nakoupit nebo prodat pouze za cenu XY nebo lepší, nikdy však horší". Nákupní příkaz pak můžeme umístit vždy jen na, nebo pod aktuální cenu, prodejní příkazy vždy na, nebo nad aktuální cenu trhu. Existuje i kombinace Stop a Limit příkazu, což je příkaz typu StopLimit. Jak už jsme si vysvětlili v minulém díle, příkaz Stop pracuje tak, že v momentě, kdy dojde trh na naší zadanou úroveň, příkaz Stop se vlastně promění do příkazu Market. Pokud použijeme příkaz StopLimit, pak se po dosažení určité úrovně promění příkaz v Limit. Pokud se například trh TF aktuálně obchoduje na ceně 811.1 a my zadáme příkaz BUY 812 STOP-LIMIT, pak v momentě, kdy trh dosáhne ceny 812, se vlastně aktivuje příkaz BUY 812 LIMIT a my čekáme, zda budeme exekuováni za tuto, nebo lepší cenu.
Jak už jsem naznačil, obrovská nevýhoda je, že prakticky nikdy nemáme jistotu, že budeme vyplněni. Trh může prolétnout cenou 812 velmi rychle a náš příkaz nebude nikdy vyplněn. Jinými slovy, trh bude pokračovat předpokládaným směrem bez nás - a my jen smutně budeme koukat a počítat, kolik jsme právě potenciálně ztratili díky snaze ušetřit pár drobných na "perfektní exekuci". Proto platí, že trader, který chce využívat příkaz Limit, musí již velmi dobře vědět, co dělá, jaké jsou nevýhodu tohoto příkazu a jak konkrétně reaguje na daný příkaz jeho preferovaný trh. Pro některé trhy je příkaz Limit naprosto nevhodný a naopak v jiných trzích můžeme výhod příkazu Limit využívat s daleko větší "jistotou".
Typické srovnání může být například trh e-mini S&P (ES) a trh e-mini Russell 2000 (TF). Zatím co trh ES je specifický obrovskou likviditou a plnění s pomocí příkazu Limit je zde tudíž poměrně "snadný" úkol, trh TF vykazuje mnohem menší průměrné denní volume a tudíž je mnohem náročnější automaticky očekávat, že většina našich Limit příkazů bude vyplněna.
A k čemu je tedy příkaz Limit dobrý? Zde je sumář akcí, v rámci kterých může být příkaz Limit lepší, než jakýkoliv jiný.
- Limit příkaz se hodí pro skalpovací strategie. Strategie, u kterých se skalpuje, většinou vykazují velmi nízký průměrný zisk na obchod. Proto jakýkoliv skluz v plnění způsobený příkazem Market nebo Stop může být "zničující". Obchodník však musí znát perfektně trh, ve kterém skalpuje. Jednak musí mít na praktické úrovni (s live účtem) vyzkoušeno, v jakých momentech a v jakém množství jsou jeho příkazy vyplněny. Proto skalpeři obchodují pouze v určitém čase a na určitých úrovních - tam, kde mají "zaručený" dostatečný počet příkazů a zároveň ne příliš rychlý trh. Proto je rájem skalperů obchodování v chopu, na různých S/R úrovních, atd. Skalpeři využívají ve svůj prospěch fakt, že na takových úrovních existuje mnoho příkazů, které je možné snadno a rychle vyplnit Limit příkazem. Na druhou stranu, v silně trendujících trzích se skalperům vede většinou špatně, protože díky rychlosti trhu nemusí být Limit příkazy velmi často vyplněny.
- Limit příkaz se hodí v momentě, kdy vám z nějakého důvodu "ujel" trh. Řekněme, že jste chtěli nakoupit s pomocí Stop příkazu na ceně 800. Jenomže technický výpadek způsobil, že jste nezvládli na této ceně exekuovat a po vyřešení problému už je cena na 801. To je však cena, kterou už nechcete respektovat. Proto "posadíte" nákupní Limit příkaz na cenu 800 a budete čekat, zda se cena na tuto úroveň ještě vrátí. Pokud ano, máte ještě dodatečnou šanci vstoupit tam, kde jste původně zamýšleli.
- Limit příkaz se hodí v také v silně likvidním trhu a prostředí, kde zkrátka a dobře jiný příkaz nedává příliš smysl.
- Limit příkaz se hodí v momentě, kdy chcete "nakupovat se slevou". V určitých okamžicích a situacích (chop, atd.) má trh tendenci vytvářet zpětné pohyby, než se rozjede daným směrem. Tuto tendenci je možné i statisticky měřit a kvantifikovat. Proto v určitých situacích nemá smysl brát hned cenu, která se nabízí, ale raději umístit Limit příkaz několik ticků pod aktuální cenu (v případě nákupu) a trpělivě čekat, zda budete vyplněni. Pokud ano, můžete krom lepší ceny také docílit potenciálně vyššího MFE a nižšího MAE - jinými slovy, omezit riziko a nadělit větší šanci na profit a tudíž zvětšit celkové RRR. Zde ale už záleží strategii od strategie a je třeba otestovat různé varianty v různých situacích. Nic méně, obchodování "se slevou" může zlepšit výsledky dost značně. Pokud si u každého vstupu povedete jen o 2 ticky lépe u trh TF, pak při 30 obchodech na 1 kontrakt dělá rozdíl už příjemných 600 USD.
Nyní, na co si dát v případě Limit příkazu pozor:
- Pokud chcete obchodovat s pomocí Limit příkazů, doporučuji nejprve udělat na živém účtu test a v několika různých situacích pozorovat, jak rychle a za jakého volume jsou vaše příkazy vyplněny. Pouze to vám dá lepší představu o tom, kdy a jak si můžete Limit příkazy dovolit použít. Na demu nic nepoznáte, realita může být často velmi rozdílná.
- V případě intradenního obchodování se nesnažte za každou cenu používat příliš často Limit příkazy jenom proto, abyste "ušetřili" tick na případném slipu. Znám řadu obchodníků, co se snaží tak dlouho "lovit" lepší cenu, až jim trh ujede a oni nakonec díky snaze příliš "šetřit" přijdou o tučný profit. Je proto dobré si i vytvořit scénář, podle kterého po určitém pokusu získat cenu za Limit tuto snahu vzdáte a přejdete na příkaz Market.
- Udělejte si v rámci backtestu simulace toho, jak by vaše výsledky vypadaly, pokud byste náhodně museli vypustit například 15% ziskových obchodů proto, že se do nich nemusíte dostat díky nevyplněnému Limit příkazu. Vaše strategie by měla mít dostatek benevolence, pokud chcete používat příkazy typu Limit. Je třeba s rizikem občasného nevyplnění počítat a vědět, co se stane, pokud plnění tu a tam nedostanete.
Backtestování s pomocí příkazu LIMIT
Rád bych ještě věnoval trochu prostoru backtestování v případě použití příkazu Limit. Jak už jsem zmínil, backtestování v případě tohoto příkazu vyžaduje určitá specifika (a ani tak nemáme zaručeno, že by náš backtestový obchod byl vyplněn). Nejdůležitější je zapsat obchod jako vyplněný pouze v případě, že se trh vrátil alespoň o několik ticků pod naší plánovanou cenu (v případě obchodu na stranu long). Doporučuji alespoň 2 ticky (i když ani tak nemáte zaručené plnění - občas se cena vrátí jenom na krátký moment a stihne exekuovat pouze minimální množství Limit příkazů).
Příklad:
Řekněme, že backtestujete ručně v programu Excel. V rámci svého obchodního plánu počítáte do budoucna s exekucemi s pomocí Limit příkazů. Pak musíte ale u každého obchodu vzít v potaz i jeho MAE a obchod zapsat jako realizovaný pouze v případě, že trh udělá "pullback" alespoň 2 ticky pod váš plánovaný vstup (v případě obchodu na stranu long). Řekněme, že například máte obchod long, do kterého byste dle backtestu chtěli nastoupit za cenu 801 v trhu TF. Pak ale musíte zapsat MAE obchodu (to byste měli zapsat tak i tak) a pokud MAE nebude alespoň 800.8 (2 ticky pod domnělý vstup), existuje solidní šance, že váš Limit příkaz nemusí být vyplněn. Proto obchod zapíšete jako ve skutečnosti nezrealizovaný - tj. do finální statistiky obchod nezahrnete. Toto je velmi seriózní záležitost, protože následně můžete zjistit, jak velmi mohou být výsledky zkreslené.
Ukažme si to na modelovém backtestu.
Čtvrtý sloupec zleva ukazuje scénář, kdy automaticky předpokládáme vyplnění každého našeho Limit příkazu (což nemusí být zdaleka reálné). Poslední sloupeček pak ukazuje více realistickou variantu, kdy pro exekuci obchodu musí být MAE alespoň 2 ticky (hodnota -0.2 nebo menší ve sloupci MAE). Jak vidíte, co vypadá zdánlivě jako zisk 240 USD, může být v reálu velmi snadno zisk pouze 40 USD!
Pokud pak používáte automatické backtestování, ujistěte se, že váš software má tuto problematiku ošetřenou. Každý solidní software umožňuje nastavit určité minimální MAE, při kterém bude příkaz Limit vyplněný. Takové nastavení může vypadat například takto:
V případě pokročilejší varianty takto:
Příkaz Limit je určitě skvělá volba v mnoha ohledech, ale pro absolutní nováčky může být zrádnější, než vypadá. Proto bych nováčkům doporučil pro začátek spíše orientaci na vstupní příkazy Stop a Market. Pokud chcete experimentovat s příkazem Limit, musíte vzít v potaz vše zde napsané.
Tolik tedy k příkazům Market, Stop a Limit v případě použití vstupů do trhu.
Tomáš Nesnídal