Standardní funkce

Standardní funkce jsou z hlediska programátora nejpohodlnější. Není potřeba definovat ani jejich název, ani množství a typ parametrů, ani datový typ. To vše je již definováno tvůrci jazyka. Stačí prostě jen v programu na tuto funkci zavolat, tedy napsat její název, do závorky zadat správné hodnoty parametrů (pokud jsou vyžadovány) a program už bude vědět, co má udělat.

Při psaní kódu se předdefinované funkce barevně odliší. Funkcí tohoto typu je kolem 250. Jak se ale dozvíme, které parametry funkce chce, v jakém pořadí a jakého jsou typu? A jak se vůbec dozvíme, co která funkce dělá?

Činnost funkce obvykle plyne z názvu, počet parametrů a jejich typ potom vidíme v tooltipu při psaní kódu. Konkrétně se objeví po napsání otevírací závorky funkce a aktuální parametr se zvýrazní tučně:

Tooltip

Přesto je obvykle o něco pohodlnější, zvlášť pokud funkci ještě neznáme, vyhledat si svou funkci na stránkách docs.mql4.com. V levém menu si můžeme vybrat kategorii funkce a získáme všechny dostupné funkce dané kategorie. Po rozkliknutí funkce pak najdeme veškeré potřebné informace k jejímu použití. Například v kategorii Technical Indicators najdeme všechny funkce, které vracejí hodnoty technických indikátorů, což jsou mimochodem velice užitečné funkce pro obchodní systémy, které využívají nějakého indikátoru. Podívejme se, co zjistíme, když otevřeme například funkci iMA. Pochopitelně v této fázi už nebude stačit čeština, ale je potřeba základní znalost angličtiny, ruštiny nebo čínštiny. Možná tvůrci stránek jazykovou nabídku do budoucna rozšíří, ale s češtinou bych moc nepočítal navzdory tomu, že MetaEditor byl nedávno přeložen i do češtiny.

Popis fce

První odstavec stručně a jasně popisuje, co má funkce za úkol. V tomto případě je úkolem funkce vypočítat ze zadaných parametrů klouzavý průměr a vrátit jeho hodnotu. Následuje tvar funkce, ze kterého poznáme datový typ funkce a pořadí a datové typy parametrů. Pro přehlednost a kvůli vysvětlujícím komentářům zde má každý parametr jeden řádek, v praxi je lze samozřejmě psát za sebe do jednoho řádku.

Další blok je výčtem jednotlivých parametrů s popisem a většinou i s hodnotami, které za tento parametr lze dosadit. Například o prvním parametru „symbol“ typu string, tedy textový řetězec, se dozvíme, že označuje název symbolu, z jehož dat je hodnota indikátoru vypočítána. Pokud dosadíme NULL, vezme se symbol grafu, na kterém strategie běží. Nebo za parametr „ma_method“ typu celé číslo musíme dosadit kód metody, na základě kterého se průměr bude počítat. Připojen je i odkaz na tabulku, kde je rozepsáno, který kód přísluší které metodě.

Velice důležitý je řádek Returned value, ve kterém se dozvíme, jakou hodnotu nám funkce vrátí. V tomto případě vrátí numerickou hodnotu klouzavého průměru typu double, tedy ve formě desetinného čísla.

V posledním bloku je potom příklad použití dané funkce.

Na závěr si ještě uveďme přehled často používaných standardních funkcí se stručným popisem jejich použití.

AccountInfoDouble() – slouží pro vracení různých informací o účtu, které mají formu desetinného čísla jako equity, profit apod. Typ informace zadáváme do parametru. Podobné jsou ještě AccountInfoInteger() a AccountInfoString(), které vracejí informace celočíselné a textové. Například funkce AccountInfoString(ACCOUNT_CURRENCY) vrátí zkratku měny účtu.

Alert() – zobrazí uživateli klasické okno s upozorněním a přehraje zvukový tón. Parametry funkce jsou argumenty zobrazené v upozornění. Text musí být uveden v uvozovkách. Např. Alert(„Otevřen “,SmerPozice,“ za “,OteviraciCena). Takto postavená funkce upozorní tradera na směr a otevírací cenu nové pozice, pakliže jsou samozřejmě uloženy příslušné hodnoty v proměnných SmerPozice a OteviraciCena.

Alert

Comment() – zobrazí nápis v levé horní části grafu. Pro parametry platí totéž co u funkce Alert().

Comment

DoubleToStr() – zaokrouhlí hodnotu typu double na určitý počet desetinných míst. Prvním parametrem je hodnota, druhým výsledný počet desetinných míst.

MarketInfo() – podobně jako AccountInfo() tato funkce umožňuje vyvolat informace o instrumentech, které jsou zobrazeny v panelu Trh, jako například jejich spread, ceny, minimální velikost pozice, minimální vzdálenost stop příkazů apod.

ObjectCreate() – slouží pro tvorbu různých grafických prvků do grafu (tvary, texty, šipky atd.). Parametry určují typ předmětu, jeho umístění a další vlastnosti.

Print() – zapíše záznam do programového logu (záložka Deník v terminálu). Parametr viz funkce Alert()

SendMail() – Odešle email na adresu nastavenou v terminálu (Nástoje -> Možnosti -> Email). Parametry jsou předmět a text emailu. Ideální třeba na upozornění na určitou situaci na trhu.

StringConcatenate() – Ze zadaných argumentů vytvoří textový řetězec. Využití najde třeba pro sestavení řetězce k použití ve funkci SendMail().

TimeCurrent() – vrátí aktuální čas serveru brokera ve formátu datetime. Žádný parametr nepotřebuje. Obdobou je funkce TimeLocal(), která vrátí čas počítače.

Záměrně jsem vynechal funkce obchodní, kterým příště věnuji samostatný díl. Předpokládám, že většina z vás se tento jazyk učí pro programování obchodních systémů, proto se na tyto funkce podíváme podrobně.