Algoritmické obchodování
|
|
- Radomír Jelínek
- před 8 lety
- Počet zobrazení:
Transkript
1 MASARYKOVA UNIVERZITA FAKULTA INFORMATIKY Algoritmické obchodování BAKALÁŘSKÁ PRÁCE Radim Göth Brno, podzim 2012
2 Prohlášení Prohlašuji, že tato práce je mým původním autorským dílem, které jsem vypracoval samostatně. Všechny zdroje, prameny a literaturu, které jsem při vypracování používal nebo z nich čerpal, v práci řádně cituji s uvedením úplného odkazu na příslušný zdroj. V Brně, 29. prosince Vedoucí práce: doc. RNDr. Tomáš Pitner, Ph.D. ii
3 Poděkování Na tomto místě bych rád poděkoval doc. RNDr. Tomáši Pitnerovi, Ph.D. za vedení této netradiční bakalářské práce, za jeho rady, náměty a volnost, jakou mi dal při vypracovávání tématu. Dále bych chtěl poděkovat rodině a přátelům, kteří mě po celou dobu studia i psaní závěrečné práce podporovali. iii
4 Shrnutí Práce se zabývá principy algoritmického obchodování a dvěma nástroji pro vývoj automatických obchodních systémů (AOS). Jedná se o programovací jazyk MQL4 a nástroj pro komplexní zpracování událostí StreamInsight. Práce dále popisuje implementaci tří obchodních strategií pomocí dříve zmíněných nástrojů, které jsou na závěr porovnány z hlediska použití pro vývoj AOS. iv
5 Klíčová slova Algoritmické obchodování, automatické obchodní systémy, MetaTrader, MQL, komplexní zpracování událostí, CEP, StreamInsight, Bollingerova pásma, statistická arbitráž, Trader Expert Advisor. v
6 Obsah 1 Úvod Důvody vedoucí k použití algoritmického obchodování Využití algoritmického obchodování O této závěrečné práci Důležité pojmy a stručný úvod do burzovního obchodování Automatické obchodní systémy Burzovní data Tick-by-tick Japonský svícový graf Exekutor obchodních pokynů Základní nástroje pro tvorbu obchodních strategií Fundamentální analýza Technická analýza Kvantitativní analýza Řízení rizika a typy pokynů Testování a optimalizace Testování na historických datech Testování s virtuálními prostředky Výsledky testů Optimalizace Vývoj rozhodovací jednotky MetaTrader a MQL Prostředí MT MQL Základní prvky MQL4 programu Hlavička programu Funkce init() Funkce start() Funkce deinit() Kostra programu vi
7 3.2.7 Proměnné prostředí Otevírání a uzavírání pozic Microsoft StreamInsight Komplexní zpracování událostí Architektura StreamInsigh Proudy událostí Události Druhy událostí Programová reprezentace události Adaptéry Zpracování událostí Event flow debugger Shrnutí Obchodní strategie Strategie vyplňování mezer Strategie Bollingerových pásem Statistická arbitráž Implementace strategií MQL4 implementace Knihovna commonfunctions Systém řízení rizika Společné externí parametry MQL4 implementace strategie vyplňování mezer MQL implementace strategie Bollingerových pásem MQL implementace statistické arbitráže Trader Expert Advisor Architektura Vzhled aplikace Získávání dat Market watch Strategie vyplňování mezer Strategie Bollingerových pásem vii
8 6.2.7 Statistická arbitráž Srovnání Závěr Literatura Příloha A Příloha B viii
9 1 Úvod V dnešní době jde velké množství akciových titulů obchodovat na burze elektronicky pouhým stiskem tlačítka myši. Dříve musel obchodník zatelefonovat svému makléři přímo na parket burzy, zjistit od něj aktuální cenu a slovně zadat pokyn k nákupu nebo prodeji akcií. V 70. a 80. letech 20. století rychlý vzestup informačních technologií umožnil vznik burzovních počítačových systémů, které spojovaly prodávající s kupujícími a automaticky vypořádaly obchody. Tyto systémy nahradily práci makléřů působících na parketových burzách a započaly éru digitálních burz. Ještě před začátkem digitalizace burz mnozí obchodníci používali při svém investičním rozhodování různé strategie, kterých se snažili striktně držet, aby omezili dopad psychiky na své rozhodování. Některé z těchto strategií lze jednoduše algoritmizovat, a tak se postupně začala přenášet investiční rozhodnutí na počítače. Algoritmické obchodování (AO) vyjadřuje způsob obchodování na burze cenných papírů, kde pokyny k nákupu nebo prodeji akcií generuje počítačový program, který je často označován jako automatický obchodní systém (AOS). 1.1 Důvody vedoucí k použití algoritmického obchodování Hlavními důvody přenesení investičního rozhodnutí z obchodníků na počítače jsou ve většině publikací označovány tyto tři: Odstranění vlivu psychiky. Možnost analýzy velkého množství dat. Velmi rychlá reakce na aktuální situaci na burze. Jak bylo zmíněno v úvodu, obchodník je ovlivněn svými emocemi a psychikou, která má dopad na jeho vyhodnocení situace. To může být výhoda i nevýhoda. Chceme-li tento faktor vyloučit, využijeme algoritmické obchodování. AOS je navíc schopný analyzovat velká množství relevantních dat z různých zdrojů, velmi rychle na ně reagovat a využít příležitosti k obchodu ještě dříve, než je stačí obchodníci zaregistrovat.
10 1. ÚVOD 1.2 Využití algoritmického obchodování Již ze své podstaty AOS jsou vyvíjeny, aby obchodovaly a přinesly svému tvůrci zisk. Pokud od AOS více neočekáváme, lze říci, že byl vyvinut za účelem spekulace. Jsou ale i další možnosti využití AOS a algoritmického obchodování obecně. Mezi tyto možnosti patří: Tvorba trhu Snížení transakčních nákladů Tvůrce trhu je člen burzy 1, který stojí na straně nabídky i poptávky. To znamená, že je téměř v kterémkoli okamžiku připraven nakoupit nebo prodat dané akcie. Cena, za kterou akcie prodává je vyšší než cena, za kterou akcie kupuje. Tento rozdíl mezi nákupní a prodejní cenou 2 je označován jako spread. Velmi známým tvůrcem trhu využívajícím AO je společnost RSJ Algorithmic trading 3. Využití AO ke snížení transakčních nákladů má smyl u velkých objednávek. Taková objednávka je rozdělena na několik menších objednávek zobchodovaných zvlášť v různých časech. Sníží se tím dopad na trh 4 a můžeme očekávat výhodnější cenu, než kdyby byla objednávka zaslána a vypořádána jako jeden celek. 1.3 O této závěrečné práci Tato práce se zabývá AOS vyvíjenými pouze za účelem spekulace. Algoritmické obchodování je také často označováno jako black-box trading 5, protože AOS a věci kolem nich jsou tajné. Prozrazení rozhodovacích algoritmů znamená jejich diskvalifikaci. Náhled do této problematiky je tedy zpracován prostřednictvím dostupné literatury, článků na internetu a také z různých školení společnosti X-Trade Brokers 6. Dalším cílem práce je popis tří obchodních strategií a jejich implementace pomocí jazyka MQL4 (3) a s využitím technologie 1 Právnická osoba oprávněná k uzavírání obchodů na burze. 2 Jde o cenu nabídky a poptávky. 3 < 4 Vliv obchodů na kurzy akcií. 5 Obchodování černých skříněk jejich kód i princip činnosti je utajen. 6 < 10
11 1. ÚVOD StreamInsight (4). Důvodem implementace pomocí dvou rozdílných technologií bylo jejich vzájemné porovnání a hlavně prozkoumání rozdílných možností, které nabízí pro AO. AO se nepoužívá pouze k obchodování akcií. Jelikož se práce zaměřuje především na informační technologie, je uvažováno pouze obchodování na akciových burzách. Důvodem je snazší pochopení této problematiky pro neodborníky v oblasti finančních trhů Důležité pojmy a stručný úvod do burzovního obchodování Akciový titul, nebo krátce titul, je označení akciové společnosti, jejíž akcie se obchodují na akciové burze. Akciový index je definován podle [1] takto: Akciový index je statistickou veličinou, která měří změny v portfoliu akcií reprezentujících část celkového akciového trhu (někdy dokonce i trh celý). Kurz akciového titulu vyjadřuje cenu jeho akcií. Proto jsou termíny kurz a cena v tomto kontextu shodné. Akciová burza je organizovaným trhem, kde se střetává poptávka s nabídkou akcií konkrétních podniků. Burza tedy technicky a organizačně zabezpečuje obchodování akcií podle platných burzovních předpisů, které se mohou lišit v závislosti na legislativě dané země. Obchodník s cennými papíry (broker, exekutor obchodních pokynů) je právnická osoba, která poskytuje investiční služby na základě povolení regulátora trhu (České národní banky) k činnosti obchodníka s cennými papíry [2]. V této pozici vystupují obvykle banky nebo zprostředkovatelské firmy (brokeři), jejichž služeb musíme při obchodování využít. Pouze oni jsou ze zákona oprávněni provádět burzovní operace. Nabídková cena (cena nabídky) vyjadřuje nejlepší (nejnižší) cenu, za kterou lze akcie na burze v daném okamžiku nakoupit. Poptávková cena (cena poptávky) vyjadřuje nejlepší (nejvyšší) cenu, za kterou lze akcie na burze v daném okamžiku prodat. 11
12 1. ÚVOD Investiční rozhodnutí v této práci chápeme jako rozhodnutí o tom, kdy a jaký titul nakoupit, resp. prodat. Právě tato rozhodnutí se v případě algoritmického obchodování určují pomocí obchodní strategie (2.3). Burzovní pokyn (příkaz, objednávka) předepsaným způsobem definuje specifika obchodu, který chceme na burze provést. Více v oddílech 2.2, 2.3 a 2.4. Zjednodušený příklad postupu burzovního obchodního případu je popsán prof. Rejnušem v [3] takto: Obchodník s cennými papíry (brokerská firma) obdrží od svého klienta objednávku, v níž jsou předepsaným způsobem specifikovány jeho dispozice. Požadavek zaeviduje a následně jej předepsaným způsobem uplatní, čímž objednávka vstoupí do procesu burzovního obchodování. Pokud uplatněný obchodní příkaz nalezne protistranu (neboli je spárován), dojde k uzavření obchodu, jenž se zaregistruje do příslušné burzovní evidence, přičemž se zároveň odpovídajícím způsobem zveřejní a posléze, v souladu s platnými burzovními pravidly, se vypořádá. 12
13 2 Automatické obchodní systém my AOS je komplexní systém, který samočinně obchoduje na burze. K rozhodnutí o nákupu či prodeji akcií využívá obchodní strategiii (2.3) a systém řízení rizika (2.4), který určuje optimální velikost obchodu. Implementovaná obchodní strategie se systémemm řízení rizika je v této práci označována jako rozhodovací jednotka (2.6). Při algoritmickém obchodování je investiční rozhodnutí generováno obvykle na základě kurzu daného titulu. Jako velmi důležitou součástí AOS je proto zdroj aktuálních burzovních dat (2.1). Realizace investičního rozhodnutí (nákup nebo prodej akcií) se provádí přes exekutora obchodních pokynů (2.2). Pokyn je v tomto smyslu chápán jako určení parametrů obchodu. Většina obchodních strategií pracuje na základě historického vývoje ceny, a proto je nutné mít data, která tento vývoj zachycují. Poslední komponentou AOS je obchodní terminál sloužící k monitorování činnosti AOS. Obr. 2.1: Schéma AOS. 2.1 Burzovní data Z pohledu algoritmického obchodování patří mezi sledovaná data cena nabídky, poptávky (1.2) a zobchodovaný objem 1 za určené časové období. 1 Počet kusů zobchodovaných akcií.
14 2 AUTOMATICKÉ OBCHODNÍ SYSTÉMY Existují dva základní způsoby reprezentace vývoje ceny: Tick-by-tick Japonský svíčkový graf (OHLC) Tick-by-tick Tato reprezentace obsahuje všechny cenové pohyby a můžeme ji znázornit jako graf vývoje ceny P v čase t. Tick znamená změnu ceny. Nová kotace (nově příchozí tick) znamená, že byl uzavřen jeden obchod [4]. Obr : Tick-by-tick reprezentace kurzu Japonský svíčkový graf Japonský svíčkový graf je další používanou reprezentací tržních dat. V podstatě se jedná o obdobu krabicového diagramu 1 používaného ve statistice. Každá svíce reprezentuje cenu za nějaké časové období, které budeme označovat jako časový rámec. Ten může být například od jedné minuty až do jednoho dne nebo měsíce. Parametry jedné svíce určují cenový vývoj za daný časový rámec. Tedy otevírací, uzavírací, nejvyšší a nejnižší cenu 2. Vybarvená svíce znamená, že konečná (uzavírací) cena byla nižší než cena otevírací. Svíčkový graf se používá pro čitelnější zobrazení vývoje ceny a také jako zdroj dat funkcím či indikátorům technické analýzy (2.3.2). Jelikož seskupuje cenový vývoj za určené časové období, zmenšuje množství ukládaných dat. 1 Ve statistice známý také jako box plot. 2 Proto je tato reprezentace vývoje kurzu nazývána také OHLC Open, High, Low, Close. 14
15 2 AUTOMATICKÉ OBCHODNÍ SYSTÉMY Obr : Svíčkový graf. Aktuální data se obvykle získávají v podobě tick-by-tick. Předností AOS je rychlost, s jakou dokáží reagovat na změny kurzu. Proto je důležité získávat aktuální data s minimálním zpožděním. Historická data v podobě tick-by-tick bývají velmi drahá, proto lze pro účely testování obchodních strategií (2.5) použít OHLC reprezentaci. 2.2 Exekutor obchodníchh pokynů Exekutor obchodních pokynů reálně zobchoduje burzovní příkazy. To znamená, že pro nás nakoupí nebo prodá dané akcie. V této roli se nachází obchodníci s cennými papíry, což jsou obvykle zprostředkovatelské společnosti (brokeři) nebo banky. U těchto institucí máme otevřený obchodní účet k pokrytí finančních transakcí a zadáváme jim obchodní pokyny, které pro nás realizují. Obvykle exekutor pokynů poskytuje API 1, pomocí kterého AOS zadává příkazy a zjišťuje stav obchodů. Další častou možností je, že nám obchodník s cennými papíry poskytuje obchodní platformu s integrovaným prostředím pro běh AOS. Takovou platformou je i MetaTrader 4, kterému je věnována kapitola (3). 2.3 Základní nástroje pro tvorbu obchodníc ch strategií Obchodní strategiee je stěžejním bodem AOS. Definuje zejména vstupní a výstupní signály tvořící logiku obchodování. Vstupní signál je definován podmínkami, které musí být splněny, nebo také událostmi, které musí nastat, 1 Například Saxo Bank B2B/API [27] nebo protokol FIX [6][26]. 15
16 2 AUTOMATICKÉ OBCHODNÍ SYSTÉMY aby byl zaslán pokyn k otevření pozice. Otevření pozice znamená vstup do obchodu a může být dvojího typu. Vstup do dlouhé pozice znamená, že spekulujeme na cenový růst daného titulu 1. Naopak vstupem do krátké pozice spekulujeme na jeho pokles 2 [3]. Analogicky výstupní signály určují výstup z pozice, které mohou být současně generovány systémem řízení rizika. Vstupní (v některých případech i výstupní) signály jsou obyčejně definovány pomocí fundamentální, technické nebo kvantitativní analýzy Fundamentální analýza Fundamentální analýza se zabývá ekonomickými, politickými a celospolečenskými jevy, které ovlivňují dění na trzích. Každý trh je některými jevy ovlivňován více a některými méně nebo nepřímo. Pokud sledujeme akciový trh, budou nás zajímat tržby firem, jejich zadlužení, fiskální politika státu a podobně. Na základě těchto skutečností určují obchodníci vnitřní hodnotu akcie [3]. Jelikož jsou jejich výpočty prováděny z části na základě subjektivních odhadů, je tento druh analýzy jen málo využitelný v algoritmickém obchodování. Při tvorbě opravdu sofistikovaných AOS jsou brány v úvahu. Vyhlašování důležitých údajů (např. HDP), může trhy silně ovlivnit a na tuto mimořádnou událost systém nemusí reagovat správně. Jedním řešením tohoto problému může být zastavení obchodování v době vyhlašování důležitých zpráv Technická analýza Technická analýza se používá k predikci budoucího cenového vývoje. Tato analýza se provádí vždy na jednotlivých titulech. Jako zdroj dat požaduje pouze vývoj kurzu a objemy obchodů. Zastánci technické analýzy věří, že cena odráží všechny důležité informace mající vliv na vývoj kurzu, a proto tyto informace není potřeba čerpat z jiných zdrojů než právě z cenového vývoje. Dalším pilířem technické analýzy je předpoklad, že smýšlení investorů zůstává do jisté míry stejné, a tudíž lze v jejich reakcích vysledovat opakující se vzory. Trhy se většinu času nechovají naprosto chaoticky, ale 1 Akcie nakoupíme a po nějaké době prodáme. 2 V případě obchodování akcií se krátká pozice realizuje automaticky tak, že je daný počet kusů akcií vypůjčen a okamžitě prodán. Poté v budoucnu nakoupen (ideálně za nižší cenu) a vrácen. Na některých akciových burzách je vstup do krátké pozice omezen regulátorem trhu. 16
17 2 AUTOMATICKÉ OBCHODNÍ SYSTÉMY mají sklon být v rostoucím, klesajícím nebo bočním trendu. Díky tomu je lze analyzovat a predikovat budoucí vývoj. Prakticky se v technické analýze používají dva přístupy: Grafické analýza. Indikátory technické analýzy. Grafická analýza se snaží najít v historickém cenovém vývoji vzory (cenové formace), které se opakují. Pokud je takový vzor včas rozpoznán i v aktuálním cenovém grafu, můžeme podle toho predikovat budoucí vývoj kurzu. Strategie na obchodování jednoho konkrétního vzoru (5.1) je součástí této práce včetně implementací (6.1.4, 6.2.5). Indikátory technické analýzy lze charakterizovat jako matematické funkce sloužící k analýze (budoucího) vývoje akciových kurzů [3]. Těmto indikátorům se věnuje velké množství publikací. Za jednu z předních lze označit knihu Alexandra Eldera [5]. V kapitole 5.2 je detailně popsán indikátor Bollingerova pásma a na jeho základě implementovaná obchodní strategie (6.1.5, 6.2.6) Kvantitativní analýza Kvantitativní analýza se zakládá na pokročilejších matematických modelech, které mají často blízký vztah k fundamentální nebo technické analýze. Vychází z předpokladu, že určení kurzu titulu na tržním principu 1 není vždy efektivní. Tyto neefektivity hledá především v mikrostruktuře 2 trhu a snaží se z nich profitovat. Velmi důležitým aspektem tohoto způsobu predikce ceny je rychlost, s jakou jsme schopni matematickým modelem a technickými prostředky zmíněné neefektivity najít a reagovat na ně. Kdo je schopný reagovat nejrychleji, dosahuje nejvyššího zisku. Proto se obchodníci začali spoléhat na velmi rychlé počítače a algoritmické obchodování [6]. Kromě zkoumání neefektivity trhu patří do kvantitativní analýzy také analýza regresní a analýza finančních časových řad. Tyto dva typy kvantitativní analýzy jsou velmi silným nástrojem. Výborným způsobem o nich pojednává kniha Josefa a Markéty Artlových [7]. 1 Cena je určena poptávkou a nabídkou. 2 Aspekty organizačního a technického charakteru, které mohou ovlivnit kurzy akcií [7]. 17
18 2 AUTOMATICKÉ OBCHODNÍ SYSTÉMY V kapitole 5.3 je popsána statistická arbitráž, která se řadí do metod kvantitativní analýzy a v odstavcích a jsou popsány implementace obchodních strategií založených na statistické arbitráži. 2.4 Řízení rizika a typy pokynů Další částí AOS je systém řízení rizika. Tento systém určuje optimální objem a maximální možnou ztrátu na jeden obchod. Ne vždy se cena vyvíjí příznivě vůči námi drženým pozicím a je nutné zabránit velkým ztrátám. Nejjednodušším způsobem je přidání hodnoty zastavení ztrát přímo do obchodního pokynu. Obdobně můžeme také zadat hodnotu pro realizaci zisku. Pro názornost uveďme příklad obchodního pokynu zpracovaného na základě [3] a [8]. Symbol AAPL Pokyn Nákup Typ Tržní realizace Objem 100 Cena Zastavení ztrát Realizace zisku Skluz 0.50 Tabulka 2.4.1: Příklad obchodního pokynu. Symbol označuje akciový titul, který chceme obchodovat. V tomto případě se jedná o akcie americké společnosti Apple Inc. Pokyn může být k nákupu (dlouhá pozice), k prodeji (krátká pozice) nebo k uzavření pozice. Typem tržní realizace zde rozumíme okamžité provedení pokynu. Další možností jsou takzvané čekající pokyny realizované až v budoucnu. Objem v tomto případě určuje počet akcií, které chceme nakoupit nebo prodat. Tento objem by měl být určen systémem řízení rizika tak, aby i po několika neúspěšných obchodech zůstal na obchodním účtu dostatek prostředků na další obchody. Typické nastavení může být například takové, že maximální ztráta na jeden obchod nesmí přesáhnout 2 % obchodního účtu. Pole Cena určuje hodnotu, za kterou chceme nakoupit nebo prodat. 18
19 2 AUTOMATICKÉ OBCHODNÍ SYSTÉMY Zastavení ztrát definuje cenovou hranici, při které dojde automaticky k uzavření pozice a je připsána ztráta. Při nákupním pokynu je hranice zastavení ztrát logicky nižší než cena, za kterou do obchodu vstupujeme. Při spekulaci na pokles je naopak vyšší. Analogicky pak hranice realizace zisku. Skluz udává maximální možnou odchylku aktuálního kurzu od námi požadované ceny. Může se totiž stát, že se kurz změní dříve, než náš pokyn stačí dojít k exekutorovi. Také při obchodování větších objemů se může cena zhoršit [9]. 2.5 Testování a optimalizace Testování a optimalizace jsou velmi důležitými součástmi vývoje AOS. Ten by se měl samozřejmě testovat při jako každý jiný software. Tato část se ovšem věnuje testování implementované obchodní strategie. Základními druhy testování jsou: Testování na historických datech (backtesting). Testování s virtuálními prostředky (paper trading) Testování na historických datech Při tomto druhu testování se obchodní strategie (nebo rovnou celý AOS) spustí na historických datech. V podstatě se tak simuluje, jak by daná strategie obchodovala v minulosti. Pokud se test vykoná na dostatečném množství dat, provede se dostatečné množství obchodů a strategie vykazuje zisk, dává nám to určitou šanci, že bude strategie zisková i v budoucnu. Samozřejmě na to nelze plně spoléhat. Trh může být více ovlivňován jinými externími jevy než v minulosti, a tudíž strategie s perfektním výsledkem na historických datech může produkovat ztráty. Jedná se o nejdůležitější testování, které ihned na počátku vývoje ověří funkčnost dané obchodní strategie. Bez dobrého výsledku v tomto testu nemá ve většině případů cenu pokračovat ve vývoji AOS založeného na dané strategii. Pro účely tohoto testování lze historická data upravovat. Pokud systém neobchoduje v době vyhlašování důležitých údajů 1, můžeme například historická data očistit 1 Například vyhlašování čtvrtletních výsledků firmy. 19
20 2 AUTOMATICKÉ OBCHODNÍ SYSTÉMY o pohyby kurzu v době vyhlašování těchto zpráv v minulosti. Dalším příkladem může být přidání pseudonáhodného šumu 1 do burzovních dat Testování s virtuálními prostředky Typicky se jedná o druhou fázi testování. AOS bychom již měli mít plně funkční a připravený k nasazení. Při tomto druhu testování jej necháme obchodovat nanečisto. Náš systém tedy pracuje stejně, jako kdyby se jednalo o reálné obchodování, ale nevyužívá reálné finanční prostředky. Toto testování dokáže odhalit nedostatky mezi jednotlivými komponentami AOS. Například funkčnost propojení poskytovatele burzovních dat s implementací obchodní strategie nebo s obchodním terminálem Výsledky testů Mezi sledované výsledky testu strategie patří [4]: Hrubý zisk suma všech ziskových obchodů. Hrubá ztráta suma všech ztrátových obchodů. Celkový čistý zisk rozdíl mezi hrubým ziskem a hrubou ztrátou. Ziskový faktor poměr mezi hrubým ziskem a hrubou ztrátou. Absolutní pokles rozdíl mezi počátečním depozitem a nejmenším zůstatkem za dobu testování. Maximální pokles největší z rozdílů mezi nejvyšším zůstatkem a následujícím nejnižším zůstatkem. Celkový počet dlouhých pozic a jejich procentuální úspěšnost. Celkový počet krátkých pozic a jejich procentuální úspěšnost. Největší a průměrný ztrátový/ziskový obchod. Největší a průměrný počet navázaných (po sobě následujících) zisků/ztrát. Všechny tyto výsledky bychom měli zahrnout do rozhodování, zdali danou strategii použít Optimalizace Obchodní strategie má obvykle několik vstupních parametrů. Může se jednat například o velikost hranice zastavení ztrát v pokynech, časové rámce nebo 1 Toho se je použito při analýze metodou Monte Carlo, která využívá počítačové modely založené na pseudonáhodných číslech k simulacím určitých experimentů [28] [4]. 20
21 2 AUTOMATICKÉ OBCHODNÍ SYSTÉMY periody klouzavých průměrů. Optimalizace slouží k nastavení nejvhodnějších hodnot těchto vstupních parametrů. Celý proces probíhá tak, že se určí počáteční a konečné hodnoty parametrů. Poté se uskuteční testy na historických datech se všemi kombinacemi těchto vstupních údajů. Nakonec se z výsledků vybere kombinace parametrů, jejichž test dopadl nejlépe. Pro názornost si uveďme příklad velmi jednoduché strategie, která začne nakupovat akcie společnosti Alfa za podmínky, že aktuální kurz akcií této společnosti bude vyšší než průměrný kurz za posledních 30 dnů. Vstupním parametrem této strategie je tedy akciový titul Alfa a hodnota periody tzv. klouzavého průměru o hodnotě 30, kterou budeme chtít optimalizovat. Pro nastavení optimalizace můžeme zvolit počáteční hodnotu periody klouzavého průměru 20, koncovou hodnotu 40 a velikost kroku 1. Optimalizace poté probíhá tak, že se uskuteční 20 testů na historických datech. V prvním testu se zvolí perioda 20, ve druhém 21, atd. Ze všech uskutečněných testů si poté můžeme vybrat nejlepší kombinaci vstupních parametrů. Mezi nejčastěji sledované výsledky patří celkový čistý zisk, ziskový faktor a maximální pokles. 2.6 Vývoj rozhodovací jednotky Vývoj rozhodovací jednotky začíná u volby modelu strategie, který je založen na základě analýz (2.3). Následně je strategie naimplementována včetně systému řízení rizika a je proveden test na historických datech. Optimalizace se dělá v případě, že si nejsme jisti nastavením vstupních parametrů strategie 1. Jestliže výsledky strategie nesplní očekávání, musíme se vrátit a předělat model obchodní strategie 2. Pokud strategie plní naše výkonnostní kritéria, lze přistoupit k testování s virtuálními prostředky. Při tomto testování může dojít k situaci, že obchodní strategie vykazuje velmi odlišné výsledky než při předchozích testech a výkonnostní kritéria neplní. V tom případě je nutné vrátit se k předchozím krokům. Jestliže testování s virtuálními prostředky probíhá dobře, můžeme přejít k ostrému nasazení AOS. Během doby reálného obchodování AOS je vhodné dělat průběžné 1 Jedná se však o velmi častý případ. 2 Kritéria hodnocení výkonnosti obchodní strategie nejsou uvedeny záměrně. Ve většině případů se totiž jedná o velmi subjektivní hodnocení vývojáře či obchodníka. Zřejmý je ovšem minimální požadavek na kladný celkový čistý zisk. 21
22 2 AUTOMATICKÉ OBCHODNÍ SYSTÉMY optimalizace z důvodu nových dat, na kterých optimalizace při vývoji nebyla provedena. Probíhá tak neustálé zlepšování obchodní strategie. Zpracováno na základě [6][10]. Obr : Vývoj rozhodovací jednotky. 22
23 3 MetaTrader a MQL MetaTrader 4 (MT4) je online obchodní platforma vyvíjená společností MetaQuotes 1. Kromě běžné funkcionality pro obchodníky obsahuje tato platforma nezbytné nástroje pro vývoj, testování a nasazení AOS. MT4 poskytuje běhové prostředí programům v jazyce MQL4 (MetaQuotes Language 4), pro který je spolu s obchodním terminálem dodávané vývojové prostředí MetaEditor. MT4 je mezi brokery hojně rozšířenou obchodní platformou a jazyk MQL4 byl vyvinut přímo k účelům algoritmického obchodování. Není tedy problém otevřít si účet u obchodníka s cennými papíry poskytujícího tuto platformu, spustit v ní program v MQL4 a okamžitě tak začít algoritmicky obchodovat. Jednoduchost spočívající ve snadném uvedení algoritmického obchodování do praxe, je hlavním důvodem pro výběr jazyka MQL4 do této práce. Společnost MetaQuotes již vyvinula obchodní platformu MetaTrade 5 s jazykem MQL5, který není zpětně kompatibilní s jazykem MQL4. Ovšem platforma MT5 se rozšířila jen velmi málo a je obtížné najít kvalitního zprostředkovatele, který ji nabízí. Nesplnila tedy základní podmínku, a proto byl do této práce vybrán jazyk MQL4 s platformou MT4, která je stále vyvíjena a je v nabídce mnoha zprostředkovatelů obchodů s cennými papíry. 3.1 Prostředí MT4 Na uzavírání obchodů se účastní několik částí platformy MT4. Příkazy zadává ručně obchodník, nebo jsou generovány MQL4 programem. Tyto příkazy se zadávají do klientského terminálu, který je poté zasílá ke zpracování na server. Ten provozuje společnost (broker), která se stará o zobchodování příkazů a realizaci finančních transakcí. Příkaz může být zobchodován na burze, spojen s příkazy jiných klientů nebo uspokojen z portfolia zprostředkovatele. Server je tedy ve většině případů dále propojený s burzou. 1 <
24 3. METATRADER A MQL Obr : Architektura aplikace MetaTrade 4 [11]. Platforma MT4 nabízená libovolným zprostředkovatelem nám tedy poskytuje všechny základní součásti pro běh AOS. Slouží jako zdroj aktuálních i historických dat (která poskytuje server), lze pomocí ní zadávat příkazy exekutorovi obchodních pokynů (zprostředkovateli) a má velmi přehledné grafické uživatelské rozhraní (obchodní terminál) pro monitorování strategií. Více o architektuře celého systému na [12]. Obchodní terminál může být desktopová nebo mobilní aplikace. Podporu algoritmického obchodování poskytuje pouze verze desktopová. Tato aplikace se skládá z několika hlavních oken: Okno trh zobrazuje jednotlivé tituly a jejich nabídkovou a poptávkovou cenu. Okno grafu titulu zobrazuje historický vývoj kurzu daného titulu. Lze jich otevřít více stisknutím pravého tlačítka myši na konkrétním titulu v okně trh a zvolením nabídky Okno grafu. Okno terminál zobrazuje informace o obchodním účtu, otevřené pozice a historii obchodů. Okno navigátor zobrazuje dostupné MQL4 programy. Manuál k této aplikaci lze nalézt v [13]. 3.2 MQL4 MQL4 je vyšší programovací jazyk procedurálního paradigmatu. Jedná se o strukturovaný jazyk vycházející z programovacího jazyka C. Má stejnou syntaxi, a tudíž je pro mnoho programátorů velmi snadno zvládnutelný. Oproti jazyku C se liší svojí strukturou a velkým množstvím zabudovaných funkcí pro účely algoritmického obchodování. Jako příklad můžeme uvést funkce pro zadávání pokynů, zjišťování dostupných prostředků na obchodním účtu atd. 24
25 3. METATRADER A MQL Soubor se zdrojovým kódem v jazyce MQL4 má příponu mq4. Zkompilovaný binární soubor má příponu ex4. Tento soubor jde spustit jedině v aplikaci MT4. Dále lze do programu importovat uživatelem definované funkce a konstanty ze souboru s příponou mqh. Velmi často se využívá například importu souboru stderrors.mqh, který obsahuje implementaci funkce ErrorDescription(int er_code) vracející textový popis chybového kódu. Jazyk MQL4 se používá pro tři druhy programů implementace obchodních strategií, skripty a indikátory. Druh programu je určen pouze jeho umístěním v instalační složce aplikace MT4. Skripty jsou jednoduché programy vykonávající jednorázovou akci (například uzavření všech otevřených pozic). Umístění \experts\scripts. Indikátory graficky znázorňují některé údaje do grafu ceny. Umístění \experts\indicators. Skripty a indikátory slouží spíše pro podporu manuálního obchodování. Nebudeme se jimi proto zabývat a pozornost zaměříme na implementaci obchodních strategií. Ty se v instalační složce platformy nachází v adresáři \experts a spouští se přidáním do okna grafu určitého titulu metodou dragand-drop z okna navigátor, nebo zvolením nabídky přidat do grafu. Každý AOS v MT4 je takto spuštěn na grafu ceny určitého titulu a na každém grafu může být spuštěn nejvýše jeden AOS Základní prvky MQL4 programu Jak již bylo zmíněno, jazyk MQL4 je velice podobný jazyku C, a proto nemá cenu podrobně rozebírat jeho syntaxi. V [14], [15] lze nalézt popis datových typů, operátorů, výrazů a funkcí. Program se skládá z několika částí. První částí je hlavička s informacemi o autorovi programu, deklarace vstupních parametrů a globálních proměnných. Dále se nachází deklarace speciálních bezparametrických funkcí init(), start() a deinit(), které jsou volány automaticky prostředím MT4. Uživatelem definované funkce se mohou nacházet kdekoli v kódu programu, ale nesmí být uvnitř definic jiných funkcí a funkcí speciálních. 25
26 3. METATRADER A MQL Hlavička programu V hlavičce programu se nachází direktivy #property, které umožňují přidání dodatečných informací pro terminál a #include pro vložení mqh souborů. Zde se nejedná o hlavičkový soubor jako v jazyce C, ale o soubor obsahující definice i těla funkcí, popř. konstanty. Dále jsou v hlavičce uvedeny vstupní parametry za klíčovým slovem extern a globální proměnné Funkce init() Speciální funkce init() je volána obchodním terminálem pouze jednou, a to ihned po přidání strategie do grafu. V těle této funkce se obvykle provádí inicializace některých globálních proměnných, vykreslení grafických objektů do cenového grafu nebo vypsání textových informací uživateli. Po vykonání všech řádků kódu v těle funkce init(), nebo ukončení funkce příkazem return, se předá řízení zpět terminálu Funkce start() Tato funkce obsahuje celou logiku obchodní strategie a systému řízení rizik. Definují se zde podmínky pro vstup a výstup z pozice a volají se funkce uskutečňující obchody. Funkci start() je předáno řízení terminálem pokaždé, dojde-li ke změně ceny titulu, na jehož grafu je strategie spuštěna. Další podmínkou pro předání řízení této funkci je dokončení všech předchozích operací. Kurz se může měnit velmi často a funkce start() nemusí skončit před příchodem nové kotace (ceny). Proto jsou všechny tyto nové kotace ignorovány, dokud funkce start() neskončí. Po vykonání těla funkce se předá řízení zpět terminálu a čeká se na další pohyb kurzu, který opět funkci start() vyvolá Funkce deinit() Funkce deinit() je spuštěna vždy při ukončení strategie, rekompilaci (právě spuštěného MQL4 programu) nebo při změně vstupních parametrů. Obvykle se jedná pouze o vypsání souhrnných informací o obchodování a smazání grafických objektů z cenového grafu. 26
27 3.2.6 Kostra programu Programy v jazyce MQL4 mají následující podobu: #include <stdlib.h> #property copyright Radim Göth // Vstupní parametry extern int stoploss = 60; extern int takeprofit = 100; // Globální proměnné int pocetobchodu = 0; // Speciální funkce int init() { // Inicializace, nastavení, } int start() { // Implementace obchodní strategie } int deinit() { // Deinicializace } //uživatelem definovaná funkce double MyFunction(string param) { // Tělo funkce } Proměnné prostředí 3. METATRADER A MQL V MQL4 existují předdefinované proměnné prostředí, přes které terminál předává programu důležité informace. Tyto proměnné jsou terminálem automaticky nastaveny při každém volání funkce start() a během jejího vykonávání mohou být změněny pouze funkcí RefreshRates(), která proměnné prostředí nastaví na aktuální hodnoty. Funkce RefreshRates() je typu bool a vrací logickou hodnotu pravda, pokud během vykonávání funkce start() došlo k nové kotaci ceny. V opačném případě vrací logickou hodnotu nepravda. Této funkce využijeme při výpočetně náročné strategii, kdy může docházet k tomu, že se funkce start() nestihne dokončit před příchodem nové kotace. 27
28 3. METATRADER A MQL Jednoduché předdefinované proměnné: Ask poslední známá poptávková cena (za kterou prodáváme). Bid poslední známá nabídková cena (za kterou nakupujeme). Bars počet svící na aktuálním grafu. Point minimální velikost, o kterou se může kurz změnit (minimální velikost ticku). Digits počet desetinných míst, na které je kótován aktuální titul. Předdefinované pole proměnných: Time[] otevírací časy svící. Open[] otevírací ceny svící. Close[] zavírací ceny svící. High[] nejvyšší ceny svící. Low[] nejnižší ceny svící. Volume[] objem obchodů na každou svíci. Tyto pole obsahují informace o jednotlivých svících v aktuálním grafu a závisí na zvoleném časovém rámci. Pracuje-li program na denním grafu (každá svíce představuje jeden den) a chceme-li zjistit dnešní otevírací hodnotu, najdeme ji v proměnné Open[0]. Pro zjištění včerejší uzavírací hodnoty budeme načítat proměnnou Close[1] atd Otevírání a uzavírání pozic Zadávání obchodních pokynů k nákupu nebo prodeji se realizuje funkcí OrderSend(). int OrderSend (string symbol, int cmd, double volume, double price, int slippage, double stoploss, double takeprofit, string comment=null, int magic=0, datetime expiration=0, color arrow_color=clr_none) Parametry této funkce definují obchodní pokyn a jsou předány terminálu. Ten provede jejich validaci a odešle je na server, který má na starost zobchodování pokynu. Funkce OrderSend() vrací identifikační číslo obchodu. Toto číslo je vhodné uložit do proměnné pro pozdější manipulaci s obchodem. Všechny otevřené i uzavřené obchody lze vybrat funkcí OrderSelect(). bool OrderSelect(int index, int select, int pool=mode_trades) 28
29 3. METATRADER A MQL Tato funkce vybere obchod podle identifikačního čísla nebo podle indexu ze seznamu otevřených či uzavřených obchodů. Poté, co je obchod vybrán funkcí OrderSelect(), lze zjišťovat jeho parametry pomocí dalších funkcí. Například funkce OrderCloseTime() zjistí čas uzavření obchodu. Uzavírání obchodních pozic realizuje funkce OrderClose(). Vrací true pokud je uzavření pozice úspěšné. V opačném případě vrací false. bool OrderClose (int ticket, double lots, double price, int slippage, color Color=CLR_NONE) Jelikož tyto funkce uskutečňují obchody, je nutné hlídat jejich správnou činnost a reagovat na případné chyby. Funkce GetLastError() vrací číslo poslední chyby a její popis lze zjistit funkcí ErrorDescription(). Strategií může být spuštěných v daný okamžik více, ale terminál má pouze jedno vlákno na zpracování obchodních pokynů. Tudíž pokyn, který přijde první, je dříve obsloužen a ostatní musí aktivně čekat, dokud se vlákno na zpracovávání pokynů neuvolní. Výše uvedené funkce jsou klíčové pro algoritmické obchodování. Jazyk MQL4 však nabízí, stejně jako většina ostatních programovacích jazyků, velké množství dalších funkcí, například pro práci s řetězci nebo soubory. Všechny tyto funkce jsou detailně popsány v dokumentaci jazyka MQL4 [16]. 29
30 4 Microsoft StreamInsight StreamInsight je platforma pro vývoj a nasazení aplikací komplexního zpracování událostí (CEP Complex Event Processing) od společnosti Microsoft. K vývoji na této platformě se používá programovací jazyk C# (.NET) a v něm integrovaný dotazovací jazyk LINQ. Tato kapitola je zpracována převážně na základě dokumentace a článků o StreamInsight na MSDN (Microsoft Developer Network) [17]. 4.1 Komplexní zpracování událostí CEP je definováno podle [18] takto: Komplexní zpracování událostí je sada technik a nástrojů, které nám pomáhají porozumět a ovládat událostmi řízené 1 informační systémy. CEP aplikace se používají ke zpracování proudů dat o velkých objemech. Tato data jsou zpracovávány in-flight, tzn. za běhu a bez nutnosti jejich ukládání. Pro zpracovávání proudů dat se používají předpřipravené dotazy (query templates), které nad daty provádějí různé operace. Protože některé funkce potřebují pro své výpočty data ukládat (např. agregační funkce), jsou v CEP definována okna, pomocí kterých jsou data dočasně uložena ( ). CEP aplikace se díky těmto řešením vyznačují velmi rychlým zpracováním dat z různých zdrojů a vysokou propustností. Právě tyto vlastnosti činí CEP zajímavý pro oblast algoritmického obchodování. Jelikož burzy produkují velké množství dat, které skrývají mnoho možností pro ziskové obchody, je pro některé druhy 2 AOS velmi důležité mít platformu s výše uvedenými vlastnostmi. Obchodování na burzách už není jen souboj obchodníků, ale také souboj počítačových programů, kde v mnoha případech vyhrává ten, kdo je schopen nejrychlejší reakce. 1 Událostmi řízená architektura je infrastruktura, kde komponenty vykonávají činnosti na základě přijetí jedné nebo více událostí [20]. 2 Jedná se převážně o druhy založené na kvantitativní analýze
31 4. MICROSOFT STREAMINSIGHT 4.2 Architektura StreamInsigh Hlavní komponentou je StreamInsight server, který se skládá z jednotky zpracovávající data (core engine) a rámce pro vstupní a výstupní adaptéry. Vstupní adaptéry získávají data z různých zdrojů, transformují je do proudů událostí a plní s nimi fronty pro core engine. Výstupní adaptéry z core engine dostávají zpracovaná data taktéž ve formě proudů událostí 1, transformují je a předají vyšší vrstvě nebo cílové aplikaci. Celá architektura je znázorněna na obrázku Obr : Architektura StreamInsight [19]. StreamInsight server může být pomocí DLL vestavěn přímo do aplikace, nebo může být zcela samostatný a aplikace se k němu připojí Proudy událostí Jak bylo již zmíněno dříve v této kapitole, data v StreamInsight jsou organizována do proudů (streams). Každý proud popisuje potenciálně nekonečnou kolekci dat, která se v průběhu času mění s příchodem nových událostí. Jako příklad můžeme uvést proud dat reprezentující kotace cen jednotlivých akciových titulů na burze. Proudy procházejí skrze celou architekturu jednosměrně. Vše začíná u zdroje dat, z kterého čte vstupní adaptér, vytváří z dat události a funkcí Enqueue() je předává na CEP server. Ten je dále zpracovává a výsledky ve formě událostí zařazuje do fronty, z které je čte výstupní adaptér funkcí Dequeue(). Po transformaci proudu událostí výstupním adaptérem, jsou příslušná data zaslána odběrateli (aplikaci). 1 Může se jednat o jiné typy událostí, než které produkoval vstupní adaptér. 31
32 4. MICROSOFT STREAMINSIGHT Události Událost je vystihujícím způsobem definovaná v diplomové práci M. Bosáka [20] takto: Událost je výskyt děje v určitém systému nebo doméně. Je to něco, co se v doméně stalo, nebo se o tom uvažuje jako o nastalém. Pojmem událost se také označuje programová reprezentace výskytu tohoto děje. Každá událost se v StreamInsight skládá z těchto dvou částí: Hlavička události obsahuje metadata popisující druh události a časové známky určující začátek a konec, tj. dobu, po kterou je událost platná. Tyto časové známky přidává do událostí vstupní adaptér a jsou typu DateTimeOffset, který je koordinován s časem UTC 1. Obsah události je uživatelem definovaná datová struktura, jejíž prvky jsou založené na typovém systému.net Druhy událostí StreamInsight rozlišuje dva druhy událostí: CTI (current time increment) je speciální událost označující úplnost proudu událostí. Obsahuje pouze jednu položku s časovou známkou. Tyto události slouží při zpracování dotazů. Po příchodu této události nebude core engine čekat na příchod dalších událostí a začne vyhodnocovat dotazy. INSERT. Událost toho druhu je označena časovými známkami začátku a konce události a nese v určené datové struktuře svůj obsah. Tyto události lze dále rozdělit podle tří tvarů, které se liší svým časovým charakterem: o Bod (point) je tvar události, která se vyskytuje v jednom časovém bodě. To znamená, že nemá dobu trvání. V hlavičce je tedy známka konce události nastavena jako známka začátku plus nejmenší možný časový přírůstek (tick). o Interval. Tento tvar popisuje události, u kterých dopředu víme délku jejich trvání, tzn. obě časové známky. 1 Koordinovaný světový čas. Více na < 32
33 4. MICROSOFT STREAMINSIGHT o Okrajová událost (edge event) je tvar události, u které ze začátku víme jenom její začátek. Konec je nastaven na hodnotu DateTimeOffset.MaxValue a je později aktualizován. Tyto události se tedy dělí ještě do dvou typů. Typ Start označuje začátek a typ End konec události Programová reprezentace události Události jsou v StreamInsight reprezentované jako instance jednoduché třídy, která obsahuje pouze vlastnosti (properties) s implicitní metodou get a set (př.: public double Price{get; set;}) Adaptéry StreamInsight obsahuje rámec pro implementaci adaptérů. Při vývoji je nutné nejdříve určit, zda se bude jednat o vstupní nebo výstupní adaptér. Dále je nutné určit typy událostí (datové struktury), které budou reprezentovat události (viz. předchozí odstavec). Následuje výběr tvaru události a základních tříd adaptéru (adapter base class). Tyto základní třídy existují zvlášť pro vstupní a výstupní adaptéry a pro každý tvar událostí ve formě typovaných a netypovaných adaptérů. U typovaných adaptérů víme předem, s jakým typem události budou pracovat. U netypovaných se zpracování dá rozdělit až na základě typu příchozí události. Instance základní třídy adaptéru je vytvořena třídou (factory), která musí implementovat rozhraní předepsané rámcem pro vývoj adaptérů. Základní třída musí vždy implementovat metody Start(), Resume() a Dispose(). StreamInsight adaptéry mají specifický životní cyklus, během kterého se nachází v jednom z těchto pěti stavů: Created. Právě vytvořená instance adaptéru. Running. Běžící adaptér spuštěn serverem funkcí Start(). Plní vstupní, resp. vyprazdňuje výstupní frontu operací Enqueue(), resp. Dequeue(). Suspended. Adaptér se dostane do tohoto stavu, pokud nelze zařazovat události do vstupní fronty (je plná platí pro vstupní adaptér), nebo je vybírat z výstupní fronty (je prázdná platí pro 33
34 4. MICROSOFT STREAMINSIGHT výstupní adaptér). Pokud jsou fronty v pořádku, je možné vrátit se do stavu Running voláním metody Ready(), po které server následně zavolá námi implementovanou metodu Resume(). Stopping. Z předchozích dvou stavů se adaptér do tohoto stavu dostane zasláním požadavku na zastavení (metoda Stop() objektu typu Query). V tomto stavu se adaptér připravuje na svoje zastavení. Uvolní zdroje apod. Stopped. Zastavený adaptér. Do tohoto stavu lze kdykoli přejít pomocí metody Stopped() Zpracování událostí K zpracování událostí se používá deklarativní jazyk LINQ (language-integrated query). Tímto jazykem je vyjádřena logika vzorů dotazů (query templates) nad proudy nebo kolekcemi dat. V StreamInsight pracuje LINQ se vstupními proudy typu CepStream<T>, které jsou vytvořeny statickou metodou Create(). Parametry této funkce určují především vstupní adaptér, jeho nastavení a tvar událostí. Voláním této metody tedy dojde ke spojení (binding) vstupního proudu událostí a dotazu, který ho bude zpracovávat. Výstupem zpracování vstupního proudu je výstupní proud taktéž typu CepStream<T>. Typ událostí vstupního a výstupního proudu se může (a obvykle tomu tak bývá) lišit. Výstupní proud je spojen s výstupním adaptérem pomocí metody ToQuery() volané na výstupním proudu. Parametry této funkce určují především výstupní adaptér obdobně jako v případě funkce Create() Okna Operace časových oken, o kterých byla zmínka v úvodu této kapitoly, umožňují podobně jako operace seskupení (group by) v SQL agregovat události. Tato agregace probíhá na základě časových známek událostí. StreamInsight používá tři druhy oken: Počítací okno (count window) okno s pevně daným počtem událostí. 34
35 4. MICROSOFT STREAMINSIGHT Skákací okno (hopping window) časové okno obsahující události za daný časový interval, který se posouvá po uplynutí určité doby (hop size). Souhrnné okno (snapshot window) okno, jehož velikost definují páry nejbližších časových známek libovolných událostí. Nad těmito okny, stejně jako po použití operátu seskupení, lze provádět agregační a jiné funkce popsané v následujícím odstavci. Agregační funkce lze nadefinovat jednoduše vlastní časové okno se převede na kolekci typu IEnumerable, nad kterou se provede výpočet Operace s proudy událostí Jazyk LINQ poskytuje několik základních operací pro práci s proudy typu CepStream<T>. Tyto operace mají obdobnou funkci jako v jazyce SQL: Projekce (projection). Filtrování (filtering). Spojování (joins). Sjednocení (unions). Seskupování (group). Uživatelem definované funkce. Operace pro manipulování s časovými známkami událostí. Dalším typem jsou operace manipulující s časovými známkami událostí, které dokáží měnit časové známky začátku a konce, převést intervalovou nebo okrajovou událost na událost bodovou, popř. posouvat časy událostí v jednom proudu v závislosti na událostech z proudu druhého. Detailní popis těchto funkcí lze nalézt v [21]. 4.3 Event flow debugger Aplikace Event flow debugger (EFD), dodávaná jako součást instalace StreamInsight, slouží k monitorování a analýze proudů událostí na serveru. Pro připojení této aplikace k StreamInsight serveru je nutné povolit webovou službu, která uveřejní spojení. Dále je nutné přidat příslušného uživatele do skupiny s přístupem na server. Po připojení EFD přes publikované spojení lze využívat jednoduché nástroje. Například zobrazování a filtrování událostí. 35
36 4. MICROSOFT STREAMINSIGHT 4.4 Shrnutí CEP má velký potenciál v oblasti algoritmického obchodování. Konkrétně ve stylu, který je označován jako high-frequency trading (HFT) neboli rychlé obchodování, kterého využívají například někteří tvůrci trhu. Tyto systémy uzavírají i tisíce obchodů denně, sledují velké množství různých burz a využívají příležitostí, které trvají jen zlomek sekundy. V takovém případě je nutné umět zpracovávat velké množství neustále přicházejících dat a rychle na ně reagovat. Pro tento úkol má CEP vhodnou koncepci i vlastnosti. Další možností využití CEP je u regulátora trhu. Regulátorem je na tuzemském trhu Česká národní banka. V USA tuto funkci plní komise pro cenné papíry (U.S. Securities and Exchange Commission 1 ). Množí se totiž obavy, že se na elektronických burzách používají skrze HFT praktiky, které manipulují cenou a poškozují ostatní obchodníky [22]. Důsledným monitorováním burzy by se dala tyto nekalá činnost detekovat, viníci vysledovat a postihnout. Monitorování burzy je ve velmi zjednodušené podobě představeno v knize [18] jako případová studie využití CEP. 1 < 36
37 5 Obchodní strategie V této kapitole se nachází popis tří různých obchodních strategií. Tyto strategie byly vybrány tak, aby se při jejich pozdější implementaci projevilo co možná největší množství předností, nedostatků, či vlastností MQL4 a technologie StreamInsight. 5.1 Strategie vyplňování mezer Strategie vyplňování mezer (Gap filling strategy) je navržená a používaná pro obchodování akcií. Původně byla založena na grafické metodě technické analýzy (2.3.2). Tato strategie předpokládá, že pokud je otevírací kurz titulu nižší, než jeho uzavírací kurz předcházející den, dojde k růstu ceny akcií, který bude pokračovat, dokud nedosáhne cenové hladiny uzavíracího kurzu předcházejícího dne. Obr : Mezery v cenách mezi jednotlivými dny. Obr zobrazuje denní vývoj kurzu akcií Deutche bank 1 za období od do Na obrázku lze vidět, že žádný otevírací kurz není naprosto shodný s předchozím uzavíracím kurzem. Ve dvou případech je mezi nimi dostatečně velký rozdíl (mezera), aby se jednalo o platný vstupní signál. Zelené šipky značí nákup akcií a červené jejich prodej, tj. výstup 1 <
38 5. OBCHODNÍ STRATEGIE z pozice. Tento obrázek se zobrazenými vstupními a výstupními signály byl vygenerován nástrojem na testování strategií v aplikaci MetaTrader 4. Definice strategie: Vstupní signál: Nakup akcie, pokud je jejich otevírací cena o 2 % nižší oproti uzavíracímu kurzu předcházejícího dne. Výstupní signál: Prodej akcie, pokud se dostanou na úroveň uzavíracího kurzu předcházejícího dne. Pokud této ceny nedosáhly, uzavři pozici na konci obchodního dne nebo na hranici zastavení ztrát. Mezery vznikají jako důsledek tzv. předobchodní fáze 1, která se odehrává před otevřením burzy. Pomocí ní jsou určeny otevírací kurzy akciových titulů. Důvodem častého vyplnění mezery je neopodstatněnost rozdílů uzavírací a následné otevírací ceny. Pokud předcházející den po skončení obchodování nenastala událost, která by měla dopad na vývoj kurzu, neměl by být důvod k takovéto změně. Strategie vyplňování mezer je známá a využívaná mnoha obchodníky. To má také značný pozitivní vliv na její účinnost. Výhodou AOS je, že obchody uzavře rychleji než obchodníci, na jejichž pokynech poté profituje 2. AOS také dokáže sledovat velké množství titulů a zvyšovat tak svoji efektivitu. Strategie byla zpracována na základě [23]. 5.2 Strategie Bollingerových pásem Strategie je založena na indikátoru technické analýzy nazývaném Bollingerova pásma. Tento indikátor používá dvou pásem vypočtených na základě směrodatné odchylky a klouzavého průměru, který představuje střední hodnotu. 1 Předobchodní fáze je speciální režim obchodování. Liší podle systému dané burzy. 2 Obchodníci svými nákupními pokyny působí tlak na vzestup ceny. 38
39 5. OBCHODNÍ STRATEGIE Postup výpočtu pásem: 1. Vypočti aritmetický průměr kurzu za dané období τ podle vzorce: 1 2. Z kurzů spočítej směrodatnou odchylku za období τ podle vzorce: Vypočti horní pásmo. 4. Vypočti dolní pásmo. Za proměnnou k je obvykle dosazována konstanta 2. To plyne ze statistického pravidla 2σ, které říká, že 95% hodnot ve statistickém souboru se nebude lišit od své střední hodnoty o více jak 2σ. Na tomto poznatku je postavená celá obchodní strategie. Definice strategie: Vstupní signál: Vstup do dlouhé pozice, pokud se kurz dostal pod dolní pásmo. Vstup do krátké pozice, pokud se kurz dostal nad horní pásmo. Výstupní signál: Vystup z pozice, pokud se kurz dotknul své střední hodnoty nebo pokud prorazil hranici zastavení ztrát. Doplňující podmínka: Pokud byl předchozí obchod ztrátový, neobchoduj, dokud se kurz nevrátí ke své střední hodnotě. Tato strategie byla navržena na základě popisu Bollingerových pásem v knize [24]. 5.3 Statistická arbitráž Statistická arbitráž je strategie vycházející z kvantitativní analýzy (2.3.3). Základem je nalezení dvou stejně se vyvíjejících titulů. Tyto tituly musí mít 39
40 5. OBCHODNÍ STRATEGIE tedy co nejvyšší korelační koeficient. Vycházíme z předpokladu, že pokud se kurz těchto dvou titulů vyvíjel historicky stejně, pak jejich vzájemné odchýlení bude pouze dočasné. Postup při statistické arbitráži: 1. Najdi dva tituly (i,j) s vysokou korelací. K tomu lze využít například Pearsonův korelační koeficient Vypočti rozdíly kurzů těchto dvou titulů za časové období T.,,, kurz titulu i v čase t, kurz titulu j v čase t 3. Vypočti střední hodnotu (aritmetický průměr) těchto rozdílů za časové období T Vypočti směrodatnou odchylku za časové období T Vypočti horní pásmo: HP = 6. Vypočti dolní pásmo: DP = Konstanta k se volí stejně jako v případě Bollingerových pásem. Definice strategie: Vstupní signály: Prodej nakrátko titul i a nakup titul j, jestliže platí: 2 Nakup titul i a prodej nakrátko titul j, jestliže platí: 2 1 Jeho výpočet lze nalézt na <cs.wikipedia.org/wiki/korelace>. 40
41 Výstupní signály: 5. OBCHODNÍ STRATEGIE Vystup z pozic, jestliže platí: Vystup z pozic, pokud je dosaženo požadovaného zisku nebo ztráta přesáhne maximální přijatelnou velikost. Strategie statistické arbitráže je zpracována na základě [6]. 41
42 6 Implementace strategií Tato kapitola se věnuje implementaci obchodních strategií popsaných v předcházející části. Jejich implementace byla provedena pomocí jazyka MQL4 a jazyka C# s využitím CEP nástroje StreamInsight. 6.1 MQL4 implementace Pro každou obchodní strategii byl napsán samostatný program spustitelný v aplikaci MetaTrader 4. Každý tento program tvoří spolu s aplikací MT4 plnohodnotný AOS, který lze po založení obchodního účtu u příslušného obchodníka s cennými papíry začít okamžitě používat. AOS byly otestovány na historických datech a demo účtu 1 společnosti X-Trade brokers. Pro použití těchto strategií je nutné zkopírovat jejich spustitelný binární soubor s příponou ex4 do složky /experts, která se nachází v instalační složce aplikace MT4. Spuštění strategií se provede jejich přetáhnutím z okna Navigátor v aplikaci MT4 do otevřeného grafu některého titulu. Poté se zobrazí okno nastavení strategie. V kartě Obecné je zapotřebí zvolit možnost Umožnit obchodování. Dále je možné nastavit vstupní parametry v kartě Vložit parametry. Tato karta je specifická pro každou obchodní strategii Knihovna commonfunctions Všechny implementované strategie pomocí MQL4 mají několik společných částí a vlastností. První společnou částí jsou funkce importované ze souboru commonfunctions.mqh, který pro ně byl v rámci této práce vytvořen. Aby bylo možné zkompilovat zdrojové kódy strategií, je nutné nakopírovat tento soubor do podsložky /include v instalační složce aplikace MT4. Soubor commonfunctions.mqh obsahuje tyto funkce: AreFundsAvailable() zjistí, zda je na obchodním účtu dostatek volných prostředků k uzavření obchodu. 1 <
43 6. IMPLEMENTACE STRATEGIÍ GetOptVolume() spočítá optimální velikost obchodu tak, aby byla dodržena pravidla systému řízení rizik. CheckErrors() zjistí, zda se nevyskytla chyba. Pokud ano, zapíše čas jejího vzniku, její číslo a popis do logovacího souboru. PipPoint() nahrazuje proměnnou prostředí Point. Ta totiž nefunguje u poskytovatelů, kteří kotují tituly na více než čtyři desetinná místa [14]. Tato knihovna je dostupná na přiloženém CD Systém řízení rizika Dalším společným rysem je způsob fungování systému řízení rizik. V každé strategii jsou pro něj vyčleněny dva externí parametry RiskMgmt a PercentageRisk. RiskMgmt je parametr tybu bool, který zapíná nebo vypíná systém řízení rizika. Pokud je nastaven na hodnotu true, pak je velikost obchodu určena funkcí GetOptVolume() na základě parametru PercentageRisk, který určuje objem obchodu v závislosti na velikosti obchodního účtu. V opačném případě je velikost objednávky nastavena parametrem Lots. Systém řízení rizika také v každé strategii kontroluje dostupné prostředky na obchodním účtu a vypisuje hlášení, pokud jich je nedostatek Společné externí parametry Kromě externích parametrů (RiskMgmt, PercentageRisk, Lots) popsaných v předchozím odstavci, jsou dalšími společnými externími parametry všech strategií v této práci: MagicNumber číslo identifikující strategii a obchody, které uskutečnila. Slippage neboli skluz (2.4). Musí se ručně nastavovat v závislosti na velikosti obchodů. Jeho nastavení je také závislé na kvalitě obchodníka s cennými papíry, u kterého máme založený účet. Čím kvalitnější je, tím nižší skluz lze nastavit. Tyto parametry by měly být nastavitelné obecně ve všech obchodních strategiích napsaných v MQL4. 43
44 6. IMPLEMENTACE STRATEGIÍ MQL4 implementace strategie vyplňování mezer MQL4 zdrojový kód této strategie je na přiloženém CD v souboru GapFilling.mq4. Kromě společných externích parametrů obsahuje ještě další tři, které je vhodné optimalizovat (2.5.4). Těmito parametry jsou: Gap minimální akceptovatelná velikost poklesu (mezery) vyjádřená v procentech. V kapitole 5.1 je velikost pevně dána na 2 %. Lze ji samozřejmě nastavit i jinak. StopLoss nastaví hranici zastavení ztrát v bodech 1 od pořizovací ceny. TakeProfit - nastaví hranici realizace zisku v bodech od pořizovací ceny. Pokud nechceme využít tohoto parametru 2, ponecháme jeho nastavení na hodnotě 0. Vyhodnocení podmínek pro vstup a výstup se provádí porovnáním hodnot z proměnných prostředí Open[] a Close[]. Proto je nutné strategii spustit na denním grafu MQL implementace strategie Bollingerových pásem Implementace této strategie se nachází v souboru BollingerStrategy.mq4 na přiloženém CD a také obsahuje další tři externí parametry vhodné k optimalizaci: MA_Period určuje periodu (počet svící), za kterou se vypočítává klouzavý průměr a směrodatná odchylka. Deviation parametr k určující násobek směrodatné odchylky pro výpočet horního a dolního pásma. StopLoss nastaví hranici zastavení ztrát v bodech od pořizovací ceny. Na začátku funkce start() se přepočítají hodnoty klouzavého průměru, horního i dolního pásma. K tomu je využita vestavěná funkce ibands(). Dále následuje kaskáda podmínek, pomocí kterých se vyhodnocují vstupní a výstupní signály. Jelikož tyto podmínky (signály) mohou platit i delší 1 Bod nejmenší možná změna ceny. Např. 0,1 Kč. 2 Strategie pak bude vystupovat z pozic jen na uzavírací hodnotě předchozího dne. 3 V aplikaci MetaTrader odpovídá časovému rámci s označením D1. 44
45 6. IMPLEMENTACE STRATEGIÍ dobu, je implementován mechanismus, který zabezpečuje pro každý signál vždy jen jeden obchod MQL implementace statistické arbitráže MQL implementace statistické arbitráže je v souboru StatisticalArbitrage.mq4 na přiloženém CD. Vstupními parametry této strategie jsou: FirstAsset, SecondAsset dva tituly, se kterými chceme provádět statistickou arbitráž. Zadávají se jako textové řetězce. Musí přesně odpovídat označení titulů v okně trh. Pro správné fungování strategie je nutné vybrat kladně korelované tituly. Lots1, Lots2 počet kusů akcií prvního a druhého titulu. MA_Period určuje periodu (počet svící), za kterou se vypočítává klouzavý průměr a směrodatná odchylka. Implementace této strategie se od předchozích dvou výrazně liší. Lze jí totiž spustit na grafu libovolného titulu. Záleží pouze na nastavení parametrů FirstAsset a SecondAsset, se kterými tituly bude strategie obchodovat. Je nejvýhodnější jí spustit na grafu jednoho z těchto dvou titulů, a to z důvodu principu činnosti speciální funkce start(). Další rozdíl je ve funkcích systému řízení rizik. Jelikož otevíráme vždy dva obchody, je nutné nastavit jejich velikosti jiným způsobem než v předchozích dvou případech. Proto se využívá funkcí AreFundsAvailable2() a GetOptVolume2(). Schematické znázornění závislostí, funkce a externí proměnné jednotlivých tříd jsou znázorněny na obrázku
46 6. IMPLEMENTACE STRATEGIÍ Obr : Znázornění závislostí tříd strategií. 6.2 Trader Expert Advisor Implementace obchodních strategií s využitím technologie StreamInsight ve verzi 2.0 byla realizována jako jedna aplikace pojmenovaná Trader Expert Advisor (TEA). Tato aplikace získává aktuální burzovní data a na základě spuštěných obchodních odních strategií generuje signály vstupů do obchodních pozic. Signály nejsou zasílány dále k exekutorovi obchodních pokynů, tudíž se nejedná o plnohodnotný AOS. Tato část může být cílem navazující práce. Akcio kciové tituly vybrané do aplikace TEA lze nalézt v příloze B. Obrázek ukazuje případy užití aplikace TEA. 46
47 6. IMPLEMENTACE STRATEGIÍ Obr : Diagram případů užití aplikace TEA Architektura Aplikace využívá model nasazení vložených DLL (hosted DLL deployment model). To znamená, že StreamInsight server je vestavěn přímo do aplikace TEA. Zpracování událostí běží pro každou strategii v samostatné aplikaci na StreamInsight serveru. Základem je třída StockMonitor, která se stará především o načítání parametrů, spouštění strategií a zobrazování obchodních signálů. Každá strategie je implementovaná ve své vlastní třídě (GapRunner, BandsRunner, StatArbRunner a MarketWatchRunner pro zobrazování aktuálních kurzů) a poskytuje metody Start(), Stop() ke spouštění a zastavování strategií. Pro připojení nástroje Event flow debugger je nutné aplikaci TEA spustit s administrátorskými oprávněními, aby byla povolena služba publikující 47
48 6. IMPLEMENTACE STRATEGIÍ připojení (endpoint). Architektura aplikace je znázorněna diagramem komponent na obrázku Obr : Znázornění architektury aplikace TEA pomocí diagramu komponent Vzhled aplikace Okno aplikace je rozděleno na čtyři části. V první části Market watch se nachází symboly jednotlivých titulů, jejich poptávková (Bid) a nabídková (Ask) cena. Další části obsahují pro každou obchodní strategii vždy formulář pro nastavení parametrů a tabulku pro zobrazování dat vyprodukovaných strategií. Pokud je mezi těmito daty obchodní signál, je řádek zvýrazněn. Dále jsou pro každou strategii dostupná tři tlačítka pro zapnutí/vypnutí strategie a smazání nebo export dat z tabulky. Vzhled aplikace je vyobrazen v příloze A Získávání dat Aktuální data z burzy jsou získávána ze serveru finance.yahoo.com. Jelikož jsou tato data poskytována zdarma, jsou u některých titulů o pár minut opožděna 1. Data jsou získávána ve formátu CSV souboru, který je odpovědí serveru na požadavek URL se speciálními parametry 2. Stahování dat nabídky a poptávky má na starost funkce GetQuotes() ve třídě YahooFinanceDataReader, která vrací objekt typu Stock reprezentující aktuální kotaci daného titulu. 1 Viz příloha B. 2 Manuál pro sestavení URL pro stažení dat z finance.yahoo.com na < 48
49 public class Stock { public string Symbol { get; set; } public double Ask { get; set; } public double Bid { get; set; } public bool IsOpen { get; set; } } 6. IMPLEMENTACE STRATEGIÍ Symbol reprezentuje zkratku titulu, pod kterým je označen na serveru finance.yahoo.com. Ask je cena nabídky (za kterou lze akcie nakoupit). Bid je cena poptávky (za kterou lze akcie prodat). Vlastnost IsOpen indikuje, zda je burza, na které se daný titul obchoduje, otevřena Market watch Aby byla v panelu Market watch zobrazena aktuální data, volá se při spouštění aplikace funkce Start() na objektu třídy MarketWatchRunner. Tato třída obsahuje jako privátní atribut seznam všech symbolů vyobrazených v panelu Market watch. Funkce Start() nejprve vytvoří samostatnou aplikaci na StreamInsigh serveru a poté pracuje ve třech cyklech. V prvním vytvoří vstupní proud se vstupním adaptérem pro každý symbol. Ve druhém spojí každý vstupní proud se vzorem dotazu, který s daty nic neprovádí a pouze je přeposílá dál tak, jak jsou. Tím vytváří výstupní proud. Tento (v podstatě zbytečný) krok je příprava pro další rozšíření aplikace. Pokud by například v budoucnu vyvstala potřeba zobrazovat kurzy v jiné měně, právě na tomto místě by stačilo pouze změnit vzor dotazu. Třetí cyklus pro každý proud vytvoří výstupní adaptér a jednotlivé dotazy spustí. Vstupní adaptér je tvořen třídou StockImputAdapterFactory vytvářející instance třídy StockImputAdapterImpl, která je potomkem třídy TypedPointImputAdapter. Vstupní adaptér využívá funkce GetQuotes() ze třídy YahooFinanceDataReader a vytváří proud bodových událostí typu Stock. Výstupní adaptér je opět tvořen přes factory třídu a pro každou příchozí událost druhu Insert volá metodu DisplayEventInListBox() ze třídy StockMonitor, která zobrazí novou kotaci do panelu Market watch. 1 Akciové burzy mají tzv. obchodní hodiny, během kterých probíhá obchodování. 49
50 6. IMPLEMENTACE STRATEGIÍ Strategie vyplňování mezer Formulář pro nastavení strategie obsahuje pouze jedno textové pole, do kterého se zadává minimální velikost rozdílu mezi uzavírací a otevírací cenou. Implementace strategie se nachází ve třídě GapRunner. Funkce Start() této třídy nejprve vytvoří pro strategii vlastní aplikaci na serveru. Poté z aplikace pro Market watch zjistí všechny symboly jednotlivých titulů, vytvoří pro ně vstupní proudy spojené se vzorem dotazu a ten pak s výstupním adaptérem. Jelikož tato strategie pracuje pouze s uzavíracím a otevíracím kurzem, je použit vstupní adaptér, který využívá funkce GetMarketGap() z třídy YahooFinanceDataReader. Tato funkce vrací objekt třídy MarketGap nesoucí potřebná data. Samotný dotaz poté za použití klauzule where zařadí do výstupního proudu ty objekty MarketGap, které splňují podmínku minimálního rozdílu mezi uzavírací a otevírací cenou (vstupní signály) a dále objekty splňující podmínky výstupního signálu. Výstupní adaptér poté funkcí DisplayGapSignals() zobrazí data. Vstupní signály jsou v tabulce obarveny modře, výstupní červeně. Implementace strategie vyplňování mezer je znázorněna diagramem tříd na obrázku Jedná se především o závislost tříd StockMonitor, GapRunner a tříd tvořících vstupní i výstupní adaptér. Jelikož je logika závislostí tříd adaptérů stejná pro všechny strategie, nejsou v tomto diagramu zobrazeny závislosti mezi třídami BandsRunner, StatArbRunner a adaptéry, které používají. (Tyto závislosti jsou analogické.) 50
51 6. IMPLEMENTACE STRATEGIÍ Obr : Diagram tříd aplikace TEA znázorňující řešení strategie vyplňování mezer Strategie Bollingerových pásem Pro nastavení této strategie je k dispozici seznam pro výběr titulu, na kterém bude strategie spuštěna. Dále výběr časového rámce, textové pole pro nastavení délky periody klouzavého průměru a násobku směrodatné odchylky. Celková délka periody je vypočtena jako součin časového rámce a délky periody. Toto řešení jednak usnadňuje nastavování periody pro různé časové intervaly (minuty, hodiny, atd.) a také zachovává způsob nastavování strategií, který používá aplikace MetaTrader. 51
MQL4 COURSE. V tomto dodatku je obsažen popis 25 obchodních funkcí jazyka MQL4. Rozhodl jsem se napsat
MQL4 COURSE By Coders guru www.forex-tsd.com (Appendix 2) Trading Functions -------------------- V tomto dodatku je obsažen popis 25 obchodních funkcí jazyka MQL4. Rozhodl jsem se napsat tento dodatek
FOREX. Jana Horáková. (sem. sk. středa 8,30-10,00)
FOREX Jana Horáková (sem. sk. středa 8,30-10,00) Obsah 1. FOREX obecně 2. Historie 3. Fungování Forexu 4. Pojmy: MĚNOVÝ PÁR, BUY, SELL, ASK, BID BOD SPREAD LOT PIP VALUE MARGIN, LEVERAGE ROLLOVER 5. Fundamentální
POSTUP NAHRÁNÍ SOFTWAROVÝCH ROZŠÍŘENÍ DO OBCHODNÍ PLATFORMY METATRADER 4 PRO UŽIVATELE MS WINDOWS
POSTUP NAHRÁNÍ SOFTWAROVÝCH ROZŠÍŘENÍ DO OBCHODNÍ PLATFORMY METATRADER 4 PRO UŽIVATELE MS WINDOWS Obchodní platforma MetaTrader 4 nabízí díky své popularitě mezi tradery a zároveň mezi programátory mnoho
ANOTACE vytvořených/inovovaných materiálů
ANOTACE vytvořených/inovovaných materiálů Číslo projektu Číslo a název šablony klíčové aktivity Tematická oblast Formát Druh učebního materiálu Druh interaktivity CZ.1.07/1.5.00/34.0722 III/2 Inovace a
MQL4 COURSE. By Coders guru (Dodatek 2) Obchodní Funkce
MQL4 COURSE By Coders guru www.forex-tsd.com (Dodatek 2) Obchodní Funkce V tomto dodatku najdete popis 25 MQL4 obchodních funkcí. Rozhodl jsem se napsat tento dodatek před napsáním třetí části lekce "Váš
1 Webový server, instalace PHP a MySQL 13
Úvod 11 1 Webový server, instalace PHP a MySQL 13 Princip funkce webové aplikace 13 PHP 14 Principy tvorby a správy webového serveru a vývojářského počítače 14 Co je nezbytné k instalaci místního vývojářského
Manuál k online obchodování
Manuál k online obchodování I. Vyhledání cenného papíru Nejrychlejší vyhledání cenného papíru provedete přímo na hlavní stránce sekce obchodování Moje oblíbené, a to podle názvu, ISINu nebo kódu WKN. Hledaný
FORTANNS. havlicekv@fzp.czu.cz 22. února 2010
FORTANNS manuál Vojtěch Havlíček havlicekv@fzp.czu.cz 22. února 2010 1 Úvod Program FORTANNS je software určený k modelování časových řad. Kód programu má 1800 řádek a je napsán v programovacím jazyku
Metoda Monte Carlo a její aplikace v problematice oceňování technologií. Manuál k programu
Metoda Monte Carlo a její aplikace v problematice oceňování technologií Manuál k programu This software was created under the state subsidy of the Czech Republic within the research and development project
MATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ
MATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ M. Sysel, I. Pomykacz Univerzita Tomáše Bati ve Zlíně, Fakulta aplikované informatiky Nad Stráněmi 4511, 760 05 Zlín, Česká republika
2
Goldstarway.com Goldstarway Trading + MetaTrader 4 = Moderní a spolehlivé řešení připojení na burzu. Návod na používání platformy MetaTrader 4 v prostředí Goldstrway. Tato platforma funguje také v prostředí
MetaTrader Mobile Uživatelský manuál Operační systém Andorid HIGHSKY.CZ
MetaTrader Mobile Uživatelský manuál Operační systém Andorid HIGHSKY.CZ 1 OBSAH Instalace 3 Přihlášení 4 Trh 5 Symboly 4 Graf 6 Vlastnosti grafu 7 Nový pokyn okamžitá realizace 7 Nový pokyn čekající 8
TÉMATICKÝ OKRUH Softwarové inženýrství
TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 25. Otázka : Komponentní technologie - základní pojmy a principy, metody specifikace komponent. Obsah : 1. Základní pojmy 1.1 Komponenta Komponenta
8.2 Používání a tvorba databází
8.2 Používání a tvorba databází Slide 1 8.2.1 Základní pojmy z oblasti relačních databází Slide 2 Databáze ~ Evidence lidí peněz věcí... výběry, výpisy, početní úkony Slide 3 Pojmy tabulka, pole, záznam
TÉMATICKÝ OKRUH Softwarové inženýrství
TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 24. Otázka : Implementační fáze. Postupy při specifikaci organizace softwarových komponent pomocí UML. Mapování modelů na struktury programovacího
PRAVIDLA PRO PODÁVÁNÍ POKYNŮ
PRAVIDLA PRO PODÁVÁNÍ POKYNŮ Článek 1 Druhy pokynů (1) Poskytnutí služby RM-S na regulovaném trhu je možné na základě následujících pokynů: a) ke koupi investičních nástrojů (K-pokyn), b) k prodeji investičních
Mobilní aplikace pro WinSignals Online
Mobilní aplikace pro WinSignals Online Jak WinSignals fungují? WinSignals nejsou robot (AOS), využívají zkušeností reálných obchodníků pracujících se živými účty. Na základě aktuálního sledování trhu a
Jak používat statistiky položkové v systému WinShop Std.
Jak používat statistiky položkové v systému WinShop Std. Systém WinShop Std. využívá k zápisům jednotlivých realizovaných pohybů (příjem zboží, dodací listy, výdejky, převodky, prodej zboží na pokladně..)
Informace o pravidlech provádění pokynů
Informace o pravidlech provádění pokynů 1. Rozsah předmětu Za účelem dosažení nejlepšího možného výsledku při poskytování investičních služeb zákazníkům zavedla společnost Patria Finance, a.s. ( Patria
24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1
24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE AUTOR DOKUMENTU: MGR. MARTINA SUKOVÁ DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 UČIVO: STUDIJNÍ OBOR: PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) INFORMAČNÍ TECHNOLOGIE
Algoritmizace diskrétních. Ing. Michal Dorda, Ph.D.
Algoritmizace diskrétních simulačních modelů Ing. Michal Dorda, Ph.D. 1 Úvodní poznámky Při programování simulačních modelů lze hlavní dílčí problémy shrnout do následujících bodů: 1) Zachycení statických
MetaTrader 4 Builder. X-Trade Brokers DM S.A., organizační složka. Vzorové strategie. X-Trade Brokers DM S.A., organizační složka 1/9
MetaTrader 4 Builder Vzorové strategie 1/9 Obsah Otevření strategie... 3 Vzorové strategie... 6 Klouzavý průměr (MA.xtb)... 6 Moving Average (MA_Cross.xtb)... 6 RSI (RSI_positions_in_canal.xtb)... 6 RSI
SAMOSTATNÁ AUKCE A KONTINUÁLNÍ OBCHODOVÁNÍ
Burzovní pravidla - část III. SAMOSTATNÁ AUKCE A KONTINUÁLNÍ OBCHODOVÁNÍ v obchodním systému XETRA Praha Pravidla pro samostatnou aukci a kontinuální obchodování 11.12. 2014 Strana 1 Článek 1 Předmět ustanovení
1/1 ČESKÁ ZEMĚDĚLSKÁ UNIVERZITA V PRAZE PROVOZNĚ EKONOMICKÁ FAKULTA PŘIJÍMACÍ ŘÍZENÍ 2017/2018
ČESKÁ ZEMĚDĚLSKÁ UNIVERZITA V PRAZE PROVOZNĚ EKONOMICKÁ FAKULTA PŘIJÍMACÍ ŘÍZENÍ 2017/2018 Informační technologie 1 - Doporučená doba zpracování: 40 minut 1) Termín DCL v relačně databázové technologii
Channel EA: Nastavitelné hodnoty: Take Profit, SL, počet bodů, o které má být trend proražen, Lot size
Přijatý zip soubor rozbalte na plochu. Soubory s přílohou.ex4 (obchodní systémy) zkopírujte do instalační složky Metatraderu Složka MQL/Experts. Soubory s příponou.mq4 (skripty) kopírujte do složky MQL/Experts/Scripts
Kontingenční tabulky v MS Excel 2010
Kontingenční tabulky v MS Excel 2010 Autor: RNDr. Milan Myšák e-mail: milan.mysak@konero.cz Obsah 1 Vytvoření KT... 3 1.1 Data pro KT... 3 1.2 Tvorba KT... 3 2 Tvorba KT z dalších zdrojů dat... 5 2.1 Data
Mobilní aplikace pro WinSignals Online
Mobilní aplikace pro WinSignals Online Jak WinSignals fungují? WinSignals nejsou robot (AOS), využívají zkušeností reálných obchodníků pracujících se živými účty. Na základě aktuálního sledování trhu a
Pravidla a plánování
Administrátorský manuál TTC TELEKOMUNIKACE, s.r.o. Třebohostická 987/5 100 00 Praha 10 tel.: 234 052 111 fax.: 234 052 999 e-mail: ttc@ttc.cz http://www.ttc-telekomunikace.cz Datum vydání: 7. května 2013
Manuál k programu IDP 1.0
Příloha B Manuál k programu IDP 1.0 Toto je manuál k programu IDP - Interakční diagram průřezu 1.0, který byl vytvořen v rámci této diplomové práce za podpory grantu Studentské grantové soutěže ČVUT v
Vstupní požadavky, doporučení a metodické pokyny
Název modulu: Základy PHP Označení: C9 Stručná charakteristika modulu Modul je orientován na tvorbu dynamických stánek aktualizovaných podle kontextu volání. Jazyk PHP umožňuje velmi jednoduchým způsobem
Co je nového v aplikaci PaperPort 12?
Vítejte! Aplikace PaperPort společnosti Nuance je softwarový balíček pro správu dokumentů pracovní plochy, který vám usnadní skenování, uspořádání, sdílení, správu a přístup k papírovým a digitálním dokumentům
xmobile Operační systém Andorid Uživatelský manuál X-Trade Brokers DM S.A., organizační složka 1/12
xmobile Operační systém Andorid Uživatelský manuál 1/12 Návod xmobile OS Android Přihlášení... 3 Trh... 3 Symboly... 4 Graf... 5 Vlastnosti grafu... 6 Obchod... 6 Nový pokyn okamžitá realizace... 7 Nový
Nový způsob práce s průběžnou klasifikací lze nastavit pouze tehdy, je-li průběžná klasifikace v evidenčním pololetí a školním roce prázdná.
Průběžná klasifikace Nová verze modulu Klasifikace žáků přináší novinky především v práci s průběžnou klasifikací. Pro zadání průběžné klasifikace ve třídě doposud existovaly 3 funkce Průběžná klasifikace,
2 PŘÍKLAD IMPORTU ZATÍŽENÍ Z XML
ROZHRANÍ ESA XML Ing. Richard Vondráček SCIA CZ, s. r. o., Thákurova 3, 160 00 Praha 6 www.scia.cz 1 OTEVŘENÝ FORMÁT Jednou z mnoha užitečných vlastností programu ESA PT je podpora otevřeného rozhraní
Roční periodická zpráva projektu
WAK-1F44C-2005-2 WAK System Název projektu: Automatizovaná výměna dat mezi informačními systémy krizového řízení v dopravě s jednotným univerzálním a implementovaným rozhraním založeným na standardu webových
MQL4 COURSE. By Coders guru -12 Váš první indikátor Část 3
MQL4 COURSE By Coders guru www.forex-tsd.com -12 Váš první indikátor Část 3 Vítejte ve třetí části lekce Váš první indikátor. V předchozí lekci jsme studovali kódy našeho prvního indikátoru řádek po řádku
Pokročilé typové úlohy a scénáře 2006 UOMO 71
Pokročilé typové úlohy a scénáře 2006 UOMO 71 Osnova Interní model typové úlohy Vazby include a extend Provázanost typových úloh na firemní procesy a objekty Nejčastější chyby 2006 UOMO 72 Interní model
Simulační modely. Kdy použít simulaci?
Simulační modely Simulace z lat. Simulare (napodobení). Princip simulace spočívá v sestavení modelu reálného systému a provádění opakovaných experimentů s tímto modelem. Simulaci je nutno považovat za
Vzorce. StatSoft. Vzorce. Kde všude se dá zadat vzorec
StatSoft Vzorce Jistě se Vám již stalo, že data, která máte přímo k dispozici, sama o sobě nestačí potřebujete je nějak upravit, vypočítat z nich nějaké další proměnné, provést nějaké transformace, Jinak
1. Webový server, instalace PHP a MySQL 13
Úvod 11 1. Webový server, instalace PHP a MySQL 13 Princip funkce webové aplikace 13 PHP 14 Principy tvorby a správy webového serveru a vývojářského počítače 14 Co je nezbytné k instalaci místního vývojářského
ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE
Vzorový příklad pro práci v prostředí MPLAB Zadání: Vytvořte program, který v intervalu 200ms točí doleva obsah registru reg, a který při stisku tlačítka RB0 nastaví bit 0 v registru reg na hodnotu 1.
6 Příkazy řízení toku
6 Příkazy řízení toku Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost příkazům pro řízení toku programu. Pro všechny tyto základní
8 Třídy, objekty, metody, předávání argumentů metod
8 Třídy, objekty, metody, předávání argumentů metod Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost třídám a objektům, instančním
1. Úvod 2. Ekonomický kalendář 3. Přizpůsobení kalendáře 4. Důležité ekonomické zprávy 5. Výhody používání kalendáře
od Admiral Markets 1. Úvod 2. Ekonomický kalendář 3. Přizpůsobení kalendáře 4. Důležité ekonomické zprávy 5. Výhody používání kalendáře Jeden z klíčových úspěchů na finančních trzích je vědět, proč se
5a. Makra Visual Basic pro Microsoft Escel. Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Kalina
5a. Makra Visual Basic pro Microsoft Escel Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Kalina Cyklické odkazy a iterativní výpočty Zde bude stránka o cyklických odkazech a iteracích.
Programujeme v softwaru Statistica
Programujeme v softwaru Statistica díl druhý Newsletter Statistica ACADEMY Téma: Programování, makra, skripty Typ článku: Návody V tomto článku si ukážeme další možnosti při psaní maker v softwaru Statistica.
VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu
VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632
Obsah. Zpracoval:
Zpracoval: houzvjir@fel.cvut.cz 03. Modelem řízený vývoj. Doménový (business), konceptuální (analytický) a logický (návrhový) model. Vize projektu. (A7B36SIN) Obsah Modelem řízený vývoj... 2 Cíl MDD, proč
Jak Admiral.MAC funguje?
Jak Admiral.MAC funguje? Účet Admiral.MAC je založen na principu zrcadlení obchodování, kdy jsou kopírovány otevírané a uzavírané pokyny, které jsou obchodované v jednom účtu (MAC-Manager, dále jen MACM)
Prostředky automatického řízení Úloha č.5 Zapojení PLC do hvězdy
VŠB-TU OSTRAVA 2005/2006 Prostředky automatického řízení Úloha č.5 Zapojení PLC do hvězdy Jiří Gürtler SN 7 Zadání:. Seznamte se s laboratorní úlohou využívající PLC k reálnému řízení a aplikaci systému
MBI - technologická realizace modelu
MBI - technologická realizace modelu 22.1.2015 MBI, Management byznys informatiky Snímek 1 Agenda Technická realizace portálu MBI. Cíle a principy technického řešení. 1.Obsah portálu - objekty v hierarchiích,
PRODUKTY. Tovek Tools
jsou desktopovou aplikací určenou k vyhledávání informací, tvorbě různých typů analýz a vytváření přehledů a rešerší. Jsou vhodné pro práci i s velkým objemem textových dat z různorodých informačních zdrojů.
Reliance 3 design OBSAH
Reliance 3 design Obsah OBSAH 1. První kroky... 3 1.1 Úvod... 3 1.2 Založení nového projektu... 4 1.3 Tvorba projektu... 6 1.3.1 Správce stanic definice stanic, proměnných, stavových hlášení a komunikačních
Kapitola 1: Úvod. Systém pro správu databáze (Database Management Systém DBMS) Účel databázových systémů
- 1.1 - Kapitola 1: Úvod Účel databázových systémů Pohled na data Modely dat Jazyk pro definici dat (Data Definition Language; DDL) Jazyk pro manipulaci s daty (Data Manipulation Language; DML) Správa
1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:
1. lekce 1. Minimální program do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: #include #include int main() { printf("hello world!\n"); return 0; 2.
Čtvrtek 3. listopadu. Makra v Excelu. Obecná definice makra: Spouštění makra: Druhy maker, způsoby tvorby a jejich ukládání
Čtvrtek 3. listopadu Makra v Excelu Obecná definice makra: Podle definice je makro strukturovanou definicí jedné nebo několika akcí, které chceme, aby MS Excel vykonal jako odezvu na nějakou námi definovanou
Dolování v objektových datech. Ivana Rudolfová
Dolování v objektových datech Ivana Rudolfová Relační databáze - nevýhody První normální forma neumožňuje vyjádřit vztahy A je podtypem B nebo vytvořit struktury typu pole nebo množiny SQL omezení omezený
Burzovní pravidla část IV. KONTINUÁLNÍ AUKCE. v obchodním systému Xetra Praha
Burzovní pravidla část IV. KONTINUÁLNÍ AUKCE v obchodním systému Xetra Praha Článek 1 Předmět ustanovení 3 Článek 2 Hlavní zásady tržního modelu 3 Článek 3 Produkty a segmentace 4 Článek 4 Účastníci trhu
Možnosti aplikace: Copyright 2001, COM PLUS CZ, Praha
Vyhodnocovací program CP TARIF 2001 umožňuje rychlé a podrobné sledování telefonního provozu pobočkových ústředen. Uživatel programu tak získává všechny potřebné údaje o odchozích telefonních hovorech,
Přehledový manuál aplikace GABVAR (verze )
Základní informace: Vývojová skupina Gabvar byla založena v roce 2007. Náplní skupiny je vývoj aplikací pro podporu procesů v oblasti managmentu, údržby a logistiky. Jsme skupinou pracovníků s praxí na
Databázové systémy. Doc.Ing.Miloš Koch,CSc. koch@fbm.vutbr.cz
Databázové systémy Doc.Ing.Miloš Koch,CSc. koch@fbm.vutbr.cz Vývoj databázových systémů Ukládání dat Aktualizace dat Vyhledávání dat Třídění dat Výpočty a agregace 60.-70. léta Program Komunikace Výpočty
Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:
Čtvrtek 8 prosince Pascal - opakování základů Struktura programu: 1 hlavička obsahuje název programu, použité programové jednotky (knihovny), definice konstant, deklarace proměnných, všechny použité procedury
ČESTNÉ PROHLÁŠENÍ. Jméno, Příjmení, titul. Bytem. Datum narození
ČESTNÉ PROHLÁŠENÍ Já, níže podepsaný Jméno, Příjmení, titul Bytem Datum narození tímto čestně prohlašuji: - že jsem byl před podpisem Komisionářské smlouvy, na základě které mně budou poskytovány investiční
KAPITOLA 9 - POKROČILÁ PRÁCE S TABULKOVÝM PROCESOREM
KAPITOLA 9 - POKROČILÁ PRÁCE S TABULKOVÝM PROCESOREM CÍLE KAPITOLY Využívat pokročilé možnosti formátování, jako je podmíněné formátování, používat vlastní formát čísel a umět pracovat s listy. Používat
WR Reality. Web Revolution. Uživatelský manuál administračního rozhraní
WR Reality Web Revolution Uživatelský manuál administračního rozhraní Web Revolution s. r. o. 2010 WR Reality Administrace uživatelský manuál Praktický průvodce administrací webové aplikace WR Reality
ucetni-program-pohoda.cz Uživatelský návod a nastavení Instalace str. 2 Uživatelské práva str. 3
ucetni-program-pohoda.cz 2010 PVM výrobní modul pro ekonomický systém POHODA Vaše konkurenční výhoda při vyřizování odběratelských objednávek, plánování a realizaci výroby, nákupu materiálu a služeb. Uživatelský
GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER. váš partner na cestě od dat k informacím
GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER váš partner na cestě od dat k informacím globtech spol. s r.o. karlovo náměstí 17 c, praha 2 tel.: +420 221 986 390 info@globtech.cz
xmobile Mobilní telefony iphone Uživatelský manuál X-Trade Brokers DM S.A., organizační složka 1/14
xmobile Mobilní telefony iphone Uživatelský manuál 1/14 Návod xmobile iphone Přihlášení... 3 Trh... 4 Seznam symbolů... 5 Graf... 6 Vlastnosti grafu... 7 Obchod... 8 Nový pokyn - okamžitý... 9 Nový pokyn
RELAČNÍ DATABÁZE ACCESS
RELAČNÍ DATABÁZE ACCESS 1. Úvod... 2 2. Základní pojmy... 3 3. Vytvoření databáze... 5 4. Základní objekty databáze... 6 5. Návrhové zobrazení tabulky... 7 6. Vytváření tabulek... 7 6.1. Vytvoření tabulky
Česká republika Ministerstvo financí
Česká republika Ministerstvo financí Odbor řízení státního dluhu a finančního majetku HODNOCENÍ PRIMÁRNÍCH DEALERŮ ČESKÝCH STÁTNÍCH DLUHOPISŮ Březen 2013 Ministerstvo financí (dále jen Ministerstvo ) předkládá
Programovací jazyk Pascal
Programovací jazyk Pascal Syntaktická pravidla (syntaxe jazyka) přesná pravidla pro zápis příkazů Sémantická pravidla (sémantika jazyka) pravidla, která každému příkazu přiřadí přesný význam Všechny konstrukce
Informace o pravidlech provádění pokynů
Informace o pravidlech provádění pokynů 1. Rozsah předmětu Za účelem dosažení nejlepšího možného výsledku při poskytování investičních služeb zákazníkům zavedla společnost Patria Finance, a.s. ( Patria
Kurz Databáze. Obsah. Dotazy. Zpracování dat. Doc. Ing. Radim Farana, CSc.
1 Kurz Databáze Zpracování dat Doc. Ing. Radim Farana, CSc. Obsah Druhy dotazů, tvorba dotazu, prostředí QBE (Query by Example). Realizace základních relačních operací selekce, projekce a spojení. Agregace
Administrace Oracle. Práva a role, audit
Administrace Oracle Práva a role, audit Filip Řepka 2010 Práva (privileges) Objekty (tabulky, pohledy, procedury,...) jsou v databázi logicky rozděleny do schémat. Každý uživatel má přiděleno svoje schéma
Load Balancer. RNDr. Václav Petříček. Lukáš Hlůže Václav Nidrle Přemysl Volf Stanislav Živný
Load Balancer RNDr. Václav Petříček Lukáš Hlůže Václav Nidrle Přemysl Volf Stanislav Živný 1.4.2005 Co je Load Balancer Nástroj pro zvýšení výkonnosti serverů Virtuální server skrývající farmu skutečných
4a. Makra Visual Basic pro Microsoft Excel Cyklické odkazy a iterace Makra funkce a metody
4a. Makra Visual Basic pro Microsoft Excel Cyklické odkazy a iterace Makra funkce a metody Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Kalina Cyklické odkazy a iterativní výpočty
Koncepce (větších) programů. Základy programování 2 Tomáš Kühr
Koncepce (větších) programů Základy programování 2 Tomáš Kühr Parametry a návratová hodnota main Již víme, že main je funkce A také tušíme, že je trochu jiná než ostatní funkce v programu Funkce main je
Neuronové časové řady (ANN-TS)
Neuronové časové řady (ANN-TS) Menu: QCExpert Prediktivní metody Neuronové časové řady Tento modul (Artificial Neural Network Time Series ANN-TS) využívá modelovacího potenciálu neuronové sítě k predikci
PALSTAT s.r.o. systémy řízení jakosti PALSTAT CAQ verze. 3.00.01.09 Kontakty 08/2010. 1 Obsah
1 Obsah 1 Obsah... 1 2 Úvod a spouštění SW Palstat CAQ... 2 2.1.1 Návaznost na další SW moduly Palstat CAQ... 2 2.2 Přihlášení do programu... 2 2.2.1 Stanovení přístupu a práv uživatele... 2 2.2.2 Spuštění
Instalace. Produkt je odzkoušen pro MS SQL server 2008 a Windows XP a Windows 7. Pro jiné verze SQL server a Windows nebyl testován.
Instalace Produkt se neinstaluje. Stačí soubor uložit na libovolné místo na Vašem počítací (klikněte pravým tlačítkem a dejte 'uložit cíl jako ), pak jen spustit. Požadavky na software Produkt je odzkoušen
Řízení prací na vodovodních sítích
Řízení prací na vodovodních sítích Ing. Josef Fojtů 1) Ing. Jiří Tajdus 1), Ing. Milan Koníř 2) 1) QLine a.s., 2) Severomoravské vodovody a kanalizace Ostrava a.s. Cílem příspěvku je představení základních
Ukládání a vyhledávání XML dat
XML teorie a praxe značkovacích jazyků (4IZ238) Jirka Kosek Poslední modifikace: $Date: 2014/12/04 19:41:24 $ Obsah Ukládání XML dokumentů... 3 Ukládání XML do souborů... 4 Nativní XML databáze... 5 Ukládání
Příručka k měsíčním zprávám ING fondů
Příručka k měsíčním zprávám ING fondů ING Investment Management vydává každý měsíc aktuální zprávu ke každému fondu, která obsahuje základní informace o fondu, jeho aktuální výkonnosti, složení portfolia
Obsah. 1.1 Práce se záznamy... 3 1.2 Stránka Dnes... 4. 2.1 Kontakt se zákazníkem... 5
CRM SYSTÉM KORMORÁN UŽIVATELSKÁ PŘÍRUČKA Obsah 1 Základní práce se systémem 3 1.1 Práce se záznamy................................. 3 1.2 Stránka Dnes.................................... 4 1.3 Kalendář......................................
PROHLÁŠENÍ O SEZNÁMENÍ SE S INVESTIČNÍMI RIZIKY
PROHLÁŠENÍ O SEZNÁMENÍ SE S INVESTIČNÍMI RIZIKY ze dne 14. ledna 2015 I. OBECNÁ USTANOVENÍ 1. Prohlášení o seznámení se s investičními riziky (dále jen Prohlášení ) je nedílnou součástí Pravidel poskytování
METATRADER 4 PRŮVODCE ZAČÁTEČNÍKA
METATRADER 4 PRŮVODCE ZAČÁTEČNÍKA OBSAH Stažení MetaTrader 4 3 První přihlášení k MetaTrader 4 7 Přihlášení k MetaTrader 4 7 Změna jazyka 8 Změna vašeho hesla 9 Zapomenuté heslo 9 Obchodování s MetaTrader
Úvod do programování - Java. Cvičení č.4
Úvod do programování - Java Cvičení č.4 1 Sekvence (posloupnost) Sekvence je tvořena posloupností jednoho nebo více příkazů, které se provádějí v pevně daném pořadí. Příkaz se začne provádět až po ukončení
VYUŽITÍ PRAVDĚPODOBNOSTNÍ METODY MONTE CARLO V SOUDNÍM INŽENÝRSTVÍ
VYUŽITÍ PRAVDĚPODOBNOSTNÍ METODY MONTE CARLO V SOUDNÍM INŽENÝRSTVÍ Michal Kořenář 1 Abstrakt Rozvoj výpočetní techniky v poslední době umožnil také rozvoj výpočetních metod, které nejsou založeny na bázi
Úvod do počítačových sítí
Úvod do počítačových sítí Jméno a příjmení: Jan Tichava Osobní číslo: Studijní skupina: středa, 3 4 Obor: INIB INF E-mail: jtichava@students.zcu.cz Datum odevzdání: 19.12.06 Základní charakteristika Jednoduchá
Program pro tvorbu technických výpočtů. VIKLAN - Výpočty. Uživatelská příručka. pro seznámení se základními možnostmi programu. Ing.
Program pro tvorbu technických výpočtů VIKLAN - Výpočty Uživatelská příručka pro seznámení se základními možnostmi programu Ing. Josef Spilka VIKLAN - Výpočty Verse 1.10.5.1 Copyright 2010 Ing. Josef Spilka.
Uživatelský manuál. Aplikace GraphViewer. Vytvořil: Viktor Dlouhý
Uživatelský manuál Aplikace GraphViewer Vytvořil: Viktor Dlouhý Obsah 1. Obecně... 3 2. Co aplikace umí... 3 3. Struktura aplikace... 4 4. Mobilní verze aplikace... 5 5. Vytvoření projektu... 6 6. Části
OSTRAVSKÁ UNIVERZITA V OSTRAVĚ PŘÍRODOVĚDECKÁ FAKULTA
OSTRAVSKÁ UNIVERZITA V OSTRAVĚ PŘÍRODOVĚDECKÁ FAKULTA BAKALÁŘSKÁ PRÁCE 2002 SEDLÁK MARIAN - 1 - OSTRAVSKÁ UNIVERZITA PŘÍRODOVĚDECKÁ FAKULTA KATEDRA INFORMATIKY A POČÍTAČŮ Vizualizace principů výpočtu konečného
Příručka k měsíčním zprávám ING fondů
Příručka k měsíčním zprávám ING fondů ING Investment Management vydává každý měsíc aktuální zprávu ke každému fondu, která obsahuje základní informace o fondu, jeho aktuální výkonnosti, složení portfolia
Nová áplikáce etesty zá te z ove testová ní
Nová áplikáce etesty zá te z ove testová ní Verze 0.4 Datum aktualizace 28. 11. 2014 1 Obsah 1 Úvod... 2 1.1 Podpora - kontakty... 2 1.2 Zdroje... 2 1.3 Zkratky... 2 2 Předpoklady pro testování... 3 2.1
Příprava dat v softwaru Statistica
Příprava dat v softwaru Statistica Software Statistica obsahuje pokročilé nástroje pro přípravu dat a tvorbu nových proměnných. Tyto funkcionality přinášejí značnou úsporu času při přípravě datového souboru,
PHP framework Nette. Kapitola 1. 1.1 Úvod. 1.2 Architektura Nette
Kapitola 1 PHP framework Nette 1.1 Úvod Zkratka PHP (z anglického PHP: Hypertext Preprocessor) označuje populární skriptovací jazyk primárně navržený pro vývoj webových aplikací. Jeho oblíbenost vyplývá
MultiCharts Integration Guide A S S E T M A N A G E M E N T P R O J E C T. Verze 1.0 Česky
www.faunus-am.com www.faunusanalytics.com MultiCharts Integration Guide A S S E T M A N A G E M E N T P R O J E C T Verze 1.0 Česky I Copyright 2012 Faunus Analytics LLC. Všechna práva vyhrazena. Daný