Home » AOS » 2. AOS – první jednoduchý skript

2. AOS – první jednoduchý skript

Dnes si představíme platformu pro programování AOS a napíšeme první jednoduchý skript.


Tento článek plynule navazuje na Úvod do programování AOS, pokud jste ho ještě nečetli, doporučuji tím začít.

Programovat budeme v jazyce MQL v programu MetaTrader 4. Předpokládám, že máte program nainstalovaný. Pokud ne, tak tady je kompletní návod, jak MetaTrader nainstalovat.

Veškeré články budu psát co nejjednodušší, aby je snadno pochopil každý, proto budu vždy uvádět jen nezbytné informace. Pojďme na to.

1. Zapnutí MetaEditoru

Spusťte si MetaTrader a stiskňete klávesu F4, tím se dostanete do MetaEditoru ve kterém budeme programovat. Případně se do editoru můžete dostat i z horního menu.

aos--1

2. Vytvoření skriptu

Soubor => Nový => Skript

aos-skript

Prozatím budeme používat jen „Skript“, postupem času vám vysvětlím, co znamenají další volby.

aos-skript-2

Vytvoříme si tedy nový skript, název mu zvolte podle sebe.

Následně se vám zobrazí stránka s editací skriptu. Vypadá takto:

aos-skript-3

void OnStart() je funkce, která se spustí ihned po startu programu, slovo „void“ znamená, že funkce nevrací žádnou hodnotu. Pojďme si tedy zkusit napsat testovací kód do funkce OnStart.

Například:

void OnStart()
 {
 Alert("Aktuální Bid cena pro měnový pár ", Symbol(), " je ", Bid); 
 }

Pokud chceme náš skript spustit, musíme ho nejprve uložit (ctrl + s) a následně zkompilovat (horní lišta, tlačítko „Kompilovat“). Pokud vše dopadne dobře, tak vespodu stránky editoru vidíme, že kompilace proběhla bez chyb.

Následně přepne okno na MetaTrader, v levém spodním boxu rozklikneme záložku „Skripty“ a najdeme náš testovací skript, můj se jmenuje „Testovací skript forbino.com“ přetáhneme ho do grafu s měnovým párem, následně by se vám mělo zobrazit toto:

aos-skript-5

Toto byl jen naprostý začátek, doufám, že jsem vás navnadil. Nyní se podíváme na trochu teorie, protože bez ní se neobejdeme.

Datové typy a proměnné

Proměnná je místo v paměti, můžete do ní ukládat potřebná data. Každá proměnná musí mít definovaný typ.

Typy proměnných:

  • bool – lze do něj ukládá pouze hodnoty 0, 1 nebo také False a True
  • int – používá se pro ukládání celých čísel, například 12345
  • double – ukládá desetinná čísla, např.: 123.45
  • string – ukládá tzv. řetezce neboli text, např.: „nějaký text“
  • datetime – ukládá datum a čas ve tvaru rok.měsíc.den hodina:minuta:sekunda, např.: 2016.02.12 8:53:50

Použití proměnných v praxi

Do proměnných se hodnoty ukládají takto: typ NazevPromenne = hodnota

Například:

int cislo = 12345;
string testRetezce = „testovací řetezec“;

Název proměnné nesmí obsahovat čárky, háčky a speciální znaky. Pojďme si to vyzkoušet v praxi, vepište si do vašeho skriptu tento kód:

void OnStart()
{
Alert("Aktuální Bid cena pro měnový pár ", Symbol(), " je ", Bid);

int cislo = 12345;
string testRetezce = "testovací řetezec";
Alert(cislo, " ",testRetezce);
}

Skript uložte, dejte „Kompilovat“ a spusťte v MetaTraderu (přetáhnete do grafu s měnovým párem), následně by se vám mělo zobrazit toto:

aos-skript-6

Jak jste si všimli, tak používám funkci Alert(), tato funkce vypisuje svůj obsah, čárkami se oddělují jednotlivé proměnné. Kromě proměnných můžete pomocí Alert() vypisovat i vlastní text, jednoduše ho vložíte do uvozovek a oddělíte čárkou, například já jsem do tohoto skriptu vložil mezeru pomocí " ".

Proměnné můžeme rozdělit na dva další typy a to globální a privátní. Globální proměnné  lze používat v rámci celého kódu a privátní jen v rámci funkce.

string globalniPromenna = "přístupná z celého kódu";

void OnStart()
{
string privatniPrommena = "přístupná pouze z této funkce";
}

Předdefinované a vlastní funkce

Funkce provádí příkazy uvnitř svého těla, může vracet nějakou hodnot, ale nemusí. Jak víte, tak jsem používal předdefinovanou funkci Alert(), OnStart() (spustí se po startu skriptu) a Symbol() – (vrátí aktuální měnový pár). Tyto nám do začátku stačí.

Vlastní funkce

Úkolem vlastních funkcí je zpřehlednit kód, každá funkce by měla dělat určitou skupinu kroků. Například si napíšete funkci, co bude rozlišovat vzory svíček (patterny). Napsat takovou funkci je už složitější, na začátek vám ukáži jen naprosto jednoduchou funkci:

string testovaciFunkce(int vstupniParametr1,int vstupniParametr2,int vstupniParametr3)

{
int vysledek = vstupniParametr1 + vstupniParametr2 + vstupniParametr3;

return "vysledek testovaci funkce " + vysledek;
}

Jak vidíte, tak musíme určit typ návratové hodnoty funkce prvním slovem „string“, následuje název funkce a vstupní parametry. „Return vrací výsledek funkce.

Tuto funkci zavoláme v OnStart() takto:

void OnStart()
{
Alert("Aktuální Bid cena pro měnový pár ", Symbol(), " je ", Bid);

int cislo = 12345;
string testRetezce = "testovací řetezec";
Alert(cislo, " ",testRetezce);

string test = testovaciFunkce(1,2,3);
 Alert(test);
}

Skript uložíme, zkompilujeme a spustíme, výsledek:

aos-skript-8

Nechci vám toho ukazovat hodně najednou, abyste v tom neměli zmatek. Vyzkoušejte si vše, co jsem vysvětlil a příště budeme pokračovat.

Někteří z vás by mohli namítnout, že to co jsem dnes vytvořil není automatický obchodní systém a měli by pravdu, protože automatický systém neustále běží. Já vám však ukázal skript, který vypíše aktuální hodnoty, nejedná se tedy přímo o AOS. K AOS se postupně dopracujeme, ale na začátek je vhodnější začínat se skripty, je to jednodušší.

Nejsem si jistý, jestli tvorba AOS zajímá naše čtenáře, dejte mi prosím najevo svůj zájem „likem“ na FB nebo komentářem, v případě nejasností se klidně ptejte.

Líbil se vám článek?

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

Souhlasím s pravidly diskuze.

Pravidla diskuze

1) Nevkládejte e-mailové adresy, můžete se stát terčem různých lidí, co se z vás budou snažit dostat peníze, především se jedná o nabízení nefunkčních obchodních systémů. Pro vaši bezpečnost budou všechny e-mailové adresy a telefonní čísla z komentářů vymazány. Veškeré dotazy řešte přímo v diskuzi.

2) Nepřidávejte odkazy na konkurenční weby.

3) Pokud máte stížnost nebo nějaký dotaz na brokera , vložte váš e-mail, pod kterým máte registrovaný účet u brokera, do políčka e-mail. Můžeme se pak pokusit váš problém, řešit přímo s brokerem. Nicméně je to jen krajní řešení, nejprve se sami poraďte se zákaznickou podporou.

Pokud porušíte pravidla diskuze, bude váš komentář částečně nebo úplně smazán.