Využití Excelu pro trading
Obecně se netajíme tím, že je program Excel našim nejoblíbenějším backtestovacím programem. Ve skutečnosti děláme v Excelu prakticky nepřetržitě ohromné množství různorodých analýz, které nám pomáhají k lepším výsledkům v tradingu. Dnes bych rád dal několik tipů a triků, jak Excel zajímavě rozšířit a začít efektivnějši používat pro různé testovací účely.
V prvé řadě bych doporučil pořídit si verzi Excel 2007 raději, než starší verzi. Tato nová verze je v mnoha ohledech intuitivnější, co je ale podstatnější – možňuje pracovat se zhruba 1 milionem řárků (oproti předešlým verzím, kdy to bylo přibližně 64 tisíc rádků), takže je možné budovat podstatně větší databáze historických dat. Další výhodou verze Excel 2007 je možnost lepších grafických interpretací a zpracování, takže vaše testy provedené v této verzi Excelu mohou být vždy vizuálně příjemnější. Tvorba grafů je celkově příjemnější, jednodušší a intuitivnější, což platí pro celý Excel 2007 – je vidět, že si autoři dali záležet na tom, aby se uživatelé naučili skrze perfektně zpracovaná menu využívat i funkce, které doposud byly ve starších verzích Excelu hůře k nalezení.
Excel 2007 je vizuálně velmi příjemný, intuitivní a umožňuje díky nově řešenému menu využít funcke Excelu skutečně na maximum.
Využívání Excelu pro trading není úplně jednoduché, je totiž třeba zvládnout pár technických záležitostí, a poté se naučit několik jednoduchých funkcí a formulí, avšak po překonání těchto krůčků se stává Excel dle mého názoru naprosto nejlepším programem pro testování a analyzování trhů a strategií ze všech možných dalších programů (i když samozřejmě s různými omezeními).
Pojďme tedy od začátku. Pokud chceme začít stavět cokoliv v Excelu, v prvé řadě potřebujeme data. Excel je poměrně flexibilní v možnostech importování, takže nám bohatě postačí jakákoliv data například ve formátu ASCII nebo CSV. Taková data není až tak složité získat. Tak například stačí stáhnout zdarma tiral verzi programů Gecko Track´n´Trade nebo Genesis Trade Navigator a z jakéhokoliv tohoto programu si můžete vyexportovat data prakticky jakýchkoliv trhů v řadě nejrůznějších formátů zcela zdarma. Můžete také využít OpenTickk. Takováto data pak lze použít v Excelu a dále s nimi pracovat. Samozřejmě je možné také nejrůznější data koupit za pár babek na internetu, nebo existuje i celá řada levných či bezplatných programů, které data stahují.
Data budou většinou ve formátu datum / čas / open / high / low / close / volume a takto by neměl být problém importovat data i do Excelu – samozřejmě patřičně rozčleněná do jednotlivých sloupců. Tím tedy vybudujeme jednoduchou databázi, se kterou již můžeme dále efektivně pracovat.
Takto jednoduše může vypadat databáze vytvořená v programu Excel. S takovouto databází lze již dále efektivně pracovat.
Práce s jednoduchou databází utvořenou takto jednoduše v Excelu není nijak složitá. Samotný Excel totiž disponuje celou řadou databázových funkcí, jako například funkce VLOOK nebo HLOOK (doporučuji databázové funkce prozkoumat v nápovědě Excelu). Jakmile tyto funkce trochu nastudujete, což je nejlepší cestou vlastních pokusů a omylu, velmi jednoduchým příkazem pak dokážete dle zvolených kritérií získat okamžitě jakoukoliv potřebnou hodnotu pro jakýkoliv den / čas a s tou pak dle libosti pracovat dále. Nemusíte být žádný přeborník v databázových řešeních a této problematice hlouběji rozumnět, abyste byli schopni již po krátké době využívat efektivně libovolná data trhů ve vašem Excelu.
Pro načítání dat do Excelu existují dokonce i podstatně pokročilejší řešení, jako například modul pro Excel zvaný XLQ, který disponuje neuvěřitelným množstvím příkazů a tak můžete dokonce bez nutnosti tvorby jakékoliv databáze přímo ve vašem Excelu získávat data ze zdrojů jako jsou YAHOO nebo MSN doslova během pár vteřin. Modul XLQ vám umožní s pomocí triviálních příkazů získat nejenom hodnoty open/high/low/close pro prakticky jakýkoliv den z obrovského množství trhů, ale také dokáže nalézt například nejvyšší high/nejnižší low ve stanovené periodě, obsahuje již v sobě řadu implementovaných indikátorů, a mnohem více. Další samozřejmostí tohoto modulu je propojení Excelu s InteractiveBrokers skrze API a z toho plynoucí výhody.
Plug-in XLQ udělá z vašeho Excelu fantastický nástroj. Řada jednoduchých příkazů umožňuje prakticky okamžitě získat libovolné hodnoty trhů - a to i v historii.
Samotné „programování“ v Excelu nemusí být vůbec, ale vůbec, složité. V prvé řadě je třeba zvládnout pouze pár základních funkcí, které umožňují stavět různé podmínky. K takovýmto funkcím se využívají nejčastěji funkce IF, AND a OR. Funkce IF dedinuje podmínku, tj. nakříklad IF CLOSE > OPEN, funkce AND se používá pokud potřebujeme, aby bylo splněno více podmínek, funkce OR pokud chceme, aby byla splěna alespoň jedna podmínka z několika. Skrze tyto funkce osobně provádím většinu analýz, krom toho lze funkci IF rozšířit i například podmíněné součty (SUMIF) a počty (COUNTIF). Funkce COUNTIF se dá v Excelu velmi dobře využívat k analýzám MAE/MFE – záměrně nepíši jak, abyste si sami začali tuto funkci zkoušet a naučili se jí efektivně používat. Obecně vám postačí naučit se do 20 funkcí, abyste mohli Excel řádně využívat. Nápověda Excelu je většinou řešena velmi dobře, aby se z ní dalo mnohé naučit, pro nadšence doporučuji knihu Mistrovství v Microsoft Excel, ze které jsem se poměrně rychle naučil naprosto vše, co potřebuji.
Dalším naprosto úžasným vylepšením Excelu můžeme docílit s použitím modulu zvaného AnalyzerXL. Tento modul totiž do Excelu přidá zhruba 120 obchodních indikátorů – nalezente zde prakticky všechny, od klouzavých průměrů až po různé oscilátory, indikátory typu ADX a mnohem více. Používání tohoto modulu není nějak složité a pokud se s modulem naučíte, za krátko už můžete provádět věci, které obvykle umí programy o pěkných pár korun dražší. To tedy znamená, že můžete k datům přidat libovolné množství indikátorů a s pomocí funkcí IF opět jednoduše vybudovat řadu podmínek, se kterými můžete testovat řadu věcí. Samozřejmě toto vše dokáží i různé již pro tyto účely specializované programy - pro mně osobně je ale v případě Excelu úžasná naprostá flexibilita, kterou mně řada programů nenabízí – samozřejmě na druhou stranu za cenu menší uživatelské vstřícnosti a intuitivnosti.
AnalyzerXL přidá do Excelu zhruba 120 indikátorů.
Použití těchto modulů vám v podstatě stačí k tomu, abyste ze svého Excelu udělali plnohodnotnou backtastovací platformu, ve které navíc můžete vytvářet i bezpočetnou řadu dalších analýz a průzkumů dle vlastní libosti. Pokud se budete chtít pustit ještě dále, není problém: do Excelu je totiž možné na internetu nalézt i moduly pro různé genetické algoritmy, pro opční analýzy, a tak dále. Většina těchto programů sice stojí pár babek, ale nejedná se o žádné drastické částky a některá rozšíření pak mohou být skutečně velmi zajímavá.
Program Microsoft Excel je tedy skutečně zajímavý tip pro každého, kdo nechce do bactestingových platforem investovat příliš peněz a zároveň hledá značnou flexibilitu – i za cenu sníženého uživatelského prostředí a intuitivnosti. Pochopitelně ještě jiný rozměr nastává, pokud se naučíme v Excelu využívat makra: v tento moment již můžete mít skutečně velmi profesionální nástroj, se kterým lze udělat v podstatě cokoliv, co s nástroji o jednu nulu dražšími. Makro je jednoduchý záznam řady různých kroků, které lze později znovu provést jediným stisknutím tlačítka. Můžete si tedy například vytvořit makro, které z vaší databáze vysortuje pouze na momenty, kdy ADX > 30 a ty překopíruje do nového samostatného listu pro další práci atd. - možnosti jsou zde neomezené - s trochou zručnosti můžete například docílit tak skvostného efektu, jako je Excelové komplexní backtestové řešení J.A. Tester.
Pokud se tedy rozhodnete začít zkoumat možnosti Excelu pro trading více, zde několik doporučených knižních titulů:
- Mistrovství v Microsoft Excel
- Excel VBA - velká kniha řešení
- Microsoft Excel VBA
- Learn from Mr. Excel
Přeji hodně štěstí – osobně nedám na Excel dopustit a to i přesto, že jsem technicky realtivně nezdatný a naučit se s Excelem pracovat mně trvalo nějaký ten čas.
Tomáš Nesnídal
- 1