Nový program, typy programů

Jak začnu v MetaEditoru tvořit svůj program? Jaké jsou typy programů a jejich specifika? Který program si mám vybrat?

V minulém díle jsme si popsali jednotlivé prvky MetaEditoru, jsme proto připraveni pustit se do tvorby prvního programu. Tvorbu programu začneme kliknutím na ikonu vlevo v panelu nástrojů nebo na tlačítko se stejným názvem v nabídce File (Soubor). Jako první budeme muset vybrat typ programu, který chceme tvořit. Předvybranou máme volbu Expert Advisor, neboli obchodní strategie, dále můžeme zvolit program typu indikátor nebo skript. MetaEditor nám podle vybraného typu předpřipraví kód programu, ale není to volba nevratná, kód si potom můžeme libovolně změnit, tedy i s typem programu. Poslední tři typy ponecháme dále bez povšimnutí, v tomto seriálu je nebudeme potřebovat. Jedná se o přídavné kódy pro složitější programy. Nyní, když si máme vybrat typ programu, je na místě vysvětlit základní rozdíly mezi strategií, indikátorem a skriptem. Poté tvorbu programu dokončíme.

Wizard

Skript

Skript je nejjednodušším typem programu, který slouží k jednorázovému vykonání nějakého úkolu. Po spuštění se exekuuje pouze jednou a vypne se. Celý kód k exekuci je součástí speciální funkce OnStart(), jiné nemají ve skriptu smysl. Žádnou paniku, o speciálních funkcích si blíže povíme v dalších dílech. Příkladem skriptu mohou být programy, které jednorázově vykreslí do grafu nějaký grafický prvek, programy, které otevřou nebo uzavřou pozice s určitými specifiky a podobně. Skript v sobě tedy může obsahovat obchodní funkce, které mohou otevírat nebo uzavírat či modifikovat pozice. Nejdůležitější ovšem je, že celý kód se exekuuje pouze jednou. Jakmile je kód proveden do konce, program končí.

Automatický obchodní systém (Expert Advisor)

Program typu strategie slouží primárně k psaní obchodních systémů, ale může být použit i k tvorbě jiných podpůrných programů, které se mají exekuovat neustále dokola, například informačních. Na rozdíl od skriptu se kód exekuuje pravidelně, obvykle při každém příchozím ticku, tedy při každé nové příchozí ceně (jedinou výjimkou jsou ticky, které přišly v době, kdy ještě nedoběhla předchozí exekuce programu). Hlavní část programu je obvykle součástí speciální funkce OnTick(), přítomny jsou obvykle ještě funkce OnInit() a OnDeinit(), kde je umístěna část kódu, která se exekuuje při spouštění, respektive vypínání strategie. Do programu je možné přidat ještě další speciální funkce, o kterých bude řeč v dalších dílech. Většinu z nich ale pravděpodobně nebudete potřebovat, zvlášť pokud s MQL začínáte. Součástí strategie mohou samozřejmě rovněž být obchodující funkce. Strategie po zapnutí běží, dokud není vypnuta.

Indikátor (Custom indicator)

Program typu indikátor slouží pro tvorbu vlastních grafických indikátorů. Hlavní speciální funkcí tohoto typu je funkce OnCalculate(), která je rovněž exekuována při každé příchozí ceně. I zde bývají časté funkce OnInit() a OnDeinit(), případně některé další ze speciálních funkcí. Na rozdíl od strategie tento typ nemůže obsahovat obchodující funkce. Lépe řečeno může, ale bude je ignorovat.

Jakmile víme, který typ programu chceme tvořit, můžeme přejít do další nabídky. V následujícím okně je potřeba program pojmenovat, to je jediné povinné pole. Můžeme také přidat autorství a link na webovou stránku. Do největšího pole lze přidat již známé parametry (proměnné), které budou v programu účinkovat. I zde platí, že všechny (ne)zadané hodnoty kromě názvu lze poté v kódu bez problému upravovat, mazat a přidávat. Pokud jsme na začátku zvolili skript, průvodce novým programem bude v tuto chvíli ukončen. Máme-li v plánu tvořit jiný program, bude po nás průvodce chtít ještě další informace týkající se speciálních funkcí. Pokud s MQL začínáte, tyto nabídky vás vůbec nemusí rozptylovat a můžete je s klidem proklikat tak jak jsou. Budou se hodit až u složitějších programů. Pokud tvoříte indikátor, na konci průvodce ještě můžete zadat plánované linie indikátoru s jejich stylem, barvou a názvem. Rovněž můžete definovat, zda budou v odděleném okně nebo přímo v grafu a případně jestli budou mít minimum a maximum. Opět se ale nejedná o nic, co by nešlo měnit přímo v kódu.

Po dokončení průvodce na vás již vyskočí v editoru přednastavený kód, jehož tvar se odvíjí od toho, co jste zadali v průvodci. Abyste začali poznávat určité části kódu shodné všem programům a mohli si začít organizovat kód svého programu, ve čtvrtém díle se budeme věnovat struktuře programu.