Proč obchodovat raději algoritmicky a jak jednoduše na to? [2]
V minulém článku jsem se věnoval důvodům, které mne osobně vedou k čím dál intenzivnějšímu používání algoritmů. Dnes se k tématu vrátím se slíbenými tipy „jak jednoduše na to“.
Přemýšlí-li typický začínající obchodník o algoritmickém obchodování, pak si nejčastěji představuje řekněme programátorské doupě, kde spousta lidí pracuje na neskutečně komplexních kódech. A od toho už je jen krůček k tomu říct, že algoritmické obchodování je složité a „není pro mě“.
Zde je mých několik tipů, jak tento mýtus překonat.
Nesnažte se převádět do kódu běžné diskréční strategie
Typický začátek snahy o průnik do algoritmického obchodování spočívá často ve snaze převést do algoritmu diskréční systém, se kterým obchodník pracuje (nebo se jej učí). Například systém typu odrazy od S/R úrovní na intradenních trzích, využití fibonacciho úrovní či dokonce obchodování orderflow.
Tyto směry jsou ale programátorsky velmi složité. Zejména, pokud budete pro strategie potřebovat tradiční nástroje technické analýzy (tedy například různé linky v grafu atd). Navíc bohužel některé diskréční přístupy ani reálně algoritmizovat nelze.
Tato lekce mě samotného bohužel stála před lety nemálo zbytečného času stráveného u PC.
Algoritmické obchodování není nutně o komplexních algoritmech. Většinou jen stačí přemýšlet „trochu jinak“ a funkční řešení bývají někdy až triviálně jednoduchá.
Pracujte s triviálními systémy
Pro začátečníky bývá občas šokující, že samotná logika profesionálních systémů může být vyjádřena několika málo podmínkami. Často se vejdou na 2-3 řádky kódu. Pokud s algoritmickým obchodováním začínáte a váš pracovní kód má více než 20 řádků, tak doporučuji zkusit to z jiného úhlu. Opravdu.
Samozřejmě, že existují komplexní kódy a přístupy, které budou vydělávat stabilněji než ty jednoduché. Ale pokud nejste zkušení quanti, tak se určitě rychleji dostanete k funkčnímu řešení jednodušší cestou.
Ostatně i můj plně algoritmický systém popisovaný v kurzu Základů profitabilního obchodování (kde je vidět i jeho živá výkonnost) je založen opravdu na triviální logice. Robustní obchodování by mělo být jednoduché – je pak menší šance, že se věci mohou pokazit.
Nestresujte se s automatickými exekucemi
Hlavní výhoda algoritmických systémů je, že jsou zcela systematické, plně backtestovatelné a mohou pracovat s větším počtem informací než diskréční obchodník. A samozřejmě, že je lze obchodovat automaticky (kdy příkazy zadává počítač). V oblasti exekucí ale pochopitelně nechceme vidět žádné chyby a tato část bývá proto často programátorsky výrazně náročnější než samotný obchodovaný systém. Mnoho obchodníků „neprogramátorů“ se pak zbytečně stresuje, jak toto vše rozchodí.
Ale ono není třeba hned stavět komplexní řešení. Začněte vytvářet algoritmy na vyšších timeframe (doporučují denní grafy), kde budete moci analýzy nechat vytvářet počítač a příkazy zadávat ručně.
Sám takto funguji s několika systémy, které mám v režimu „živého testování“. Vesměs mám systémy naprogramované v Amibrokeru (oněch několik řádků kódu). Evropské ráno spustím v Amibrokeru analýzu a program mi vypíše obchodní signály pro daný den. Ty zadám během pár minut do InteractiveBrokers ještě před otevřením trhu včetně stop-lossů a případných profit-targetů. A pro daný den mám hotovo. Pokud se strategie po měsících nebo roce osvědčí, tak popřemýšlím, komu zadám její plné zautomatizování.
Není třeba hned pracovat s velkým účtem
Po minulém článku mně přišlo hned několik e-mailů, že algoritmické systémy představují velký krok především v oblasti potřebného kapitálu. Zejména pokud se pracuje se swingovými strategiemi na denních datech.
V případě obchodování futures je toto pravda. Ale jsou další trhy. Sám rád vyvíjím systémy na akcie a ETF, kde lze pracovat s opravdu malými pozicemi (což je často dobré například pro testování systémů).
Akcie a ETF mám z pohledu mechanických systémů rád i z toho důvodu, že existuje ohromné množství titulů, které se dají obchodovat. Není třeba se snažit najít robustní logiku fungující dlouhodobě na jednom trhu. Upřednostňuji přístup:
a) Definování jednoduché vstupní podmínky – například breakout do trendu.
b) Vyhledání trhů, které v danou chvíli vstupní podmínku perfektně splňují.
c) Na základě pravidel risk managementu vyberu trh, do kterého vstoupím a velikost pozice. Ta se může lišit i podle síly trendu atd.
Aktuálně pracuji například na jednom z breakout systémů. Obchoduji jej zatím na menším účtu, protože práce na finální automatizaci ještě není hotová. Systém nakupuje volatilnější akcie do breakoutu ve směru trendu. A jak vidíte na ukázkových screenshotech z otevřených pozic, pro „viditelné“ zisky stačí alokovat do jednotlivých titulů i kapitál, kterým disponují běžní začínající obchodníci.
Na screenshotech je také na první pohled zřejmá i základní logika breakoutu, na které je systém postaven. Screenshoty jsou z mého živého účtu u InteractiveBrokers. Ke konkrétním titulům nemám žádnou fundamentální analýzu – vše obchoduji technicky na základě jednoduchého plánu.
Akcie AAXN:
Vstup po breakoutu na ceně cca 45. Při nákupu 67 akcií bylo pak potřeba 1 500 dolarů (využívám standardní margin u InteractiveBrokers). Aktuální otevřený zisk obchodu je 1 192 USD, tedy 80 %.
Podobný pattern u akcie MED:
Vstup po breakoutu na ceně cca 93.7. Do tohoto vstupu systém alokoval jen 800 dolarů (při využití standardního marginu u InteractiveBrokers). Aktuální otevřený zisk obchodu je 797 dolarů, tedy 100 % investované částky.
A do třetice aktuální otevřená pozice v akcii CDNA:
Vstup po breakoutu na ceně 7,51. Do tohoto vstupu systém alokoval dokonce jen 400 dolarů (při využití standardního marginu). Aktuální otevřený zisk je 433 dolarů, tedy přes 100 % investované částky.
To tedy jen pro ilustraci, že i s menším kapitálem lze v akciích obchodovat mnoho zajímavých příležitostí a dokonce aplikovat i různé styly position sizingu.
Současně lze solidně řídit risk – uvedený breakout systém pracuje s poměrně blízkým stop-lossem vycházejícím z trojnásobku ATR, takže si sami můžete spočítat, kolik se zhruba v trhu riskuje.
Shrnutí
Vydání dvou článků na téma „jak na algoritmické obchodování“ samozřejmě neznamená, že nemá smysl obchodovat diskréčně.
Jen jsem chtěl poskytnout inspiraci k tomu, že věci jdou občas dělat jinak a často jednodušeji, než si člověk dokáže představit.
Pochopitelně, že finalizace například výše uvedeného breakout systému není triviální. Ale složitost nespočívá ve stavbě komplikovaného kódu a nutnosti znalosti programování. Výzva je vždy v hledání co nejjednodušších pravidel představujících současně nejrobustnější řešení.
Máte-li pocit, že možná jdete na trhy příliš komplexně, podívejte se na strukturu mého nejnovějšího kurzu Základů obchodování. Je to kurz, který učí dívat se na trhy jinak. Tak, aby člověk hledal jednoduchá systematická řešení umožňující opravdu produktivní využívání času, který s tradingem trávíme.
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.
- 1