Jak technicky řešit automatické obchodování
Někteří obchodníci se dříve či později dostanou do stádia, kdy budou chtít některé své strategie nechat obchodovat čistě automaticky, k čemuž budou potřebovat patřičné technické zázemí a infrastrukturu. Jelikož se pohybujeme v oblasti tradingu, je třeba mít vše skutečně kvalitně připravené a zabezpečené - pokud nechceme v budoucnu riskovat ztrátu peněz.
Automatické obchodování není technologicky snadné: aby vše správně a bezchybně běželo, potřebujete si být jistí, že vaše automatické obchodování není ohroženo možným (a poměrně častým) výpadkem internetu, nebo výpadkem elektrického napětí. Samozřejmě už i v domácích podmínkách je dnes možné nainstalovat záložní zdroje, nejsem si však jistý, že je takové řešení dostatečné.
Osobně jsem problém s automatickým obchodováním začal řešit už minulý rok, při stavbě strategie a automatu pro akciové statistické arbitráže. Nechat takový automat běžet doma nepřipadalo v úvahu: občasné výpadky internetu jsou prakticky samozřejmostí, a tak se mohou podobné "drobnosti" časem značně prodražit. Už od začátku jsem si byl tedy poměrně dost jistý, že budu muset řešit vše trochu profesionálněji - zajistit si vlastní server a ten nechat hostoval u spolehlivého serverhostingu, následně najít způsob, jak se k takovému serveru vzdáleně přihlašovat. Takové řešení vám totiž garantuje na 99.9% bezproblémový, bezvýpadkový internet a neustálý příkon elektrického proudu - to je přesně to, co naprosto nezbytně potřebujete, pokud chcete obchodovat automatické strategie profesionálně.
V prvé řadě jsem se snažil prozkoumat různé možnosti pronajímaných serverů - v dnešní době již není problém pronajmout si hotové řešení, hotový server, výpočetní výkon. Jelikož jsem si však nebyl v začátku zcela jistý, jak vysoký výpočetní výkon budu potřebovat, rozhodnul jsem se, že celé řešení chci mít raději výrazněji naddimenzované - čímž se začalo podobné řešení ukazovat jako ne zrovna levné. Nakonec jsem si nechal od kamaráda spočítat, kolik by stála stavba vlastního serveru s procesorem i7-870 a došel jsem k závěru, že je to pro mě nejlepší varianta. Server jsem si nechal postavit s veškerými náležitostmi, jako RAID disky atd. - nejsem v této oblasti profesionál, takže se nebudu o technických parametrech rozepisovat, ale určitě je rozumné nechat si podobné řešení udělat od někoho, kdo celé problematice opravdu rozumí - stejně tak jsem to udělal i já. Při stavbě podobných serverů je totiž také třeba, aby celé zařízení bylo co nejmenší a mělo co nejmenší odběr, pokud nechcete za serverhosting platit příliš vysoké částky. Za celou stavbu počítače včetně Windows 7 jsem nakonec zaplatil kolem 23 000,- Kč bez DPH. Nutno však říci, že se jedná skutečně o značně naddimenzované řešení, je tedy možné použít i řešení výrazně levnější - já osobně mám rád určité "rezervy". Umím si představit postavit zcela vyhovující řešení i za polovinu.
Následně jsem začal pátrat po nějakém serverhousingu, tj. firmě, u které bych mohl server umístit a kde by mně počítač nepřetržitě běžel, s garancí záložního elektrického napětí a záložního internetu - tj. s jistotou, že vše neustále poběží bez jakýchkoliv problémů. V tomto ohledu jsem tedy oslovil řadu známých a nechal si poradit a doporučit od lidí, kteří již podobná řešení využívají. Nakonec jsem našel vhodnou službu v ČR, která splňovala má prvotní kriteria a zároveň byla cenově velmi příznivá (díky platbě na delší dobu předem nyní platím cca 900,- kč měsíčně; stačí si spočítat, kolik by člověk platil za vysokorychlostní ADSL a elektrický odběr a je hned jasné, že se jedná o v podstatě zanedbatelnou částku). Musím říci, že za celou dobu jsem zatím neregistroval jediný problém ve výpadku čehokoliv - z tohoto pohledu tedy vše funguje zatím tak, jak jsem doufal (jméno serverhousingu, který používám, zde nebudu z bezpečnostních důvodů uvádět).
Další krok, který musíte vyřešit (ve skutečnosti musíte tento krok vyřešit už předem) je vzdálené připojování k serveru. S tímto jsem nikdy neměl zkušenosti a nebyl si tak jistý, jak vše funguje. Co jsem v podstatě potřeboval je nějaký jednoduchý způsob, jak se vzdáleně připojit ke svému serveru a pracovat na něm jako na normálním počítači. Tento problém se vyřešil rychleji, než jsem doufal - ukázalo se totiž, že touto funkcí už disponují přímo Windows a že nová Windows 7 mají celou funkci dokonce značně propracovanou: nejsem opět příliš zběhlý v technice, ale hlavní výhoda vzdáleného připojení přes Windows 7 (s pomocí funkce "připojení ke vzdálené ploše") je v tom, že se můžete poměrně dobře připojit i s ne moc kvalitním připojením k internetu a navíc i využívat ke vzdálenému připojení více obrazovek (pokud disponujete vyšší verzí Windows 7)!
Musím říci, že vše k mému úžasu funguje naprosto dokonale. Když jsem přijel do Portugalska, neměl jsem v našem domě ještě nainstalovaný internet, takže jsem se prvních pár dnů musel pravidelně vypravovat za internetem do McDonalds. Kvalita internetu zde sice byla dost mizerná, ale připojení k serveru fungovalo bez problémů! Celá funkce "připojení ke vzdálené ploše" je velmi jednoduchá - zadáte IP svého serveru a následně vyplníte heslo (doporučuji nějaké dlouhé a komplikované), čímž jste přihlášeni k serveru. Naskočí vám pracovní plocha serveru, a pokud máte alespoň trochu rozumnější internetové připojení (od 1 Mbps více), prakticky vůbec nepoznáte, že pracujete na jiném počítači - je to skoro totéž, jako byste pracovali na počítači, ze kterého se připojujete. Navíc jak jsem psal nedávno, s potěšením jsem zjistil, že je možné se stejně snadno připojovat i ze zařízení iPad a dokonce i z iPhone! Stačí vám k tomu potřebná aplikace (za mírný poplatek). Připojování z iPadu je velmi příjemné a k běžné údržbě serveru dostačující, iPhone je skutečně jen velmi nouzové řešení - byť zcela funkční.
Jako předposlední jsem musel vyřešit bezpečnost. Samozřejmě, zde jsem pracoval na několika "frontách". Předně jsem si u Interactive Brokers nechal udělat další přístup k účtu, avšak s velmi omezenými právy - skrze TWS spuštěné na mém severu tedy není například vůbec možné dostat se k řadě funkcí sloužících k obsluze mého účtu, vše je omezeno skutečně jen na základní nezbytné minimum. Následně jsem TWS omezil pouze na IP mého serveru.
Do počítače jsem kromě Excelu, ve kterém mám naprogramovaný automat pro statistické arbitráže (ve VBA), neinstaloval naprosto nic jiného. Čím méně věcí, tím větší bezpečnost. Na doporučení několika specialistů jsem následně přidal potřebný bezpečností software, jako inteligentní firewall, antivirus atd. Počítač naprosto pravidelně aktualizuji - opravdu důrazně dbám na to, abych veškeré nové aktualizace měl stažené a nainstalované co nejdříve po jejich vydání. Heslo k přístupu mám poměrně dlouhé a komplikované a občas jej i změním.
Krom toho jsem si nechal do Excelu určeného k automatickému obchodování statistických arbitráží naprogramovat i řadu kontrolních mechanismů: Excel sám sleduje případné výpadky dat, chyby v datech, nestandardní množství pozic - vše okamžitě hlásí přes email, který mám napojený na SMS. Krom toho dostávám hlášení na mobil o každé exekuci a všem, co se děje v rámci mých pozic. Mám tedy neustále přehled.
Jako poslední bylo třeba vyřešit jednu poměrně "absurdní" věc: platforma TWS Interactive Brokers se totiž na konci každého dne sama vypne a pokud bych jí musel každý den znovu nahazovat, celé řešení by ztratilo smysl. Jsem překvapený, že IB stále nedávají možnost tuto funkci vypnout, protože se tím vlastně ztrácí hlavní výhoda tohoto brokera - vyspělé a poměrně spolehlivé API. Naštěstí i toto je již možné vyřešit - stačí trochu hledat na google, řešení je opět více. Každé je poměrně dobré a funkční, vyžaduje jen trochu trpělivosti, než člověk zcela pochopí, jak vše správně nastavit a uvést do chodu.
S celým řešením jsem doposud spokojený. Pokud jsme zrovna v našem domě v Algarve a nikde necestujeme, mám celý den spuštěné vzdálené připojení na druhém monitoru svého pracovního počítače. Upřímně ale již příliš na své párové pozice během dne nekoukám - většinou jen při otevření, na konci dne již dostanu automaticky souhrnný email o počtu otevřených pozic a otevřeném P/L. Pokud cestujeme, přihlašuji se z notebooku a nyní i z iPadu. Jediné problémové je asi pondělí, neboť během víkendu provádí IB údržbu a je tedy rozumné TWS na serveru na víkend vypnout a nahodit znovu až v pondělí ráno. Bohužel je to fakt, se kterým je třeba počítat a připravit se na něj.
Tolik tedy mé zkušenosti s technickým aspektem automatického obchodování. Určitě je možné dělat to ještě lépe - jako cokoliv jiného - v začátcích je ale zatím můj přístup a řešení dostatečné.
Tomáš Nesnídal