Nové typy dat v aktualizovaném jazyce MQL4

S aktualizovaným jazykem MQL4 přišlo také mnoho nových typů dat. Většinou se ale jedné pouze o odvozené typy již existujících dat, aby bylo možno efektivněji využívat výpočetní zdroje. Ve starém MQL bylo možné rozlišit pouze následujících 6 typů dat:

Identifikátor Anglicky Česky
int integer celé číslo
bool logical pravda/nepravda
string string řetězec
double floating-point number desetinné číslo
color color barva
datetime date and time datum a čas
enum enumeration výčet

Jsou to typy čtenářům základní série dobře známé, setkali jsme se s nimi v pátém díle. Známé jsou i všem programátorům, ne každý už ale ví o odvozených typech dat. Jejich neznámost nebo nepoužívání obvykle nevede k žádným problémům. V případě programů náročných na výkon ale mohou ušetřit značné množství výpočetního výkonu a program tak zefektivnit. V jiných případech nesprávné použití typů dat může vést dokonce k chybám. Následující tabulka popisuje nové typy dat, které přišly s aktualizací jazyka MQL4. Všechno to jsou odvozeniny typu int a liší se pouze tím, kolik paměti si berou. To se projeví v rozsahu hodnot, který je do nich možné uložit.

Identifikátor Nejnižší hodnota Nejvyšší hodnota Paměť
char -128 127 1 byte
uchar 0 255 1 byte
short -32 768 32 767 2 byty
ushort 0 65 535 2 byty
int -2 147 483 648 2 147 483 647 4 byty
uint 0 4 294 967 295 4 byty
long -9 223 372 036 854 775 808 9 223 372 036 854 775 807 8 bytů
ulong 0 18 446 744 073 709 551 615 8 bytů

Je zřejmé, že podle toho, jaké hodnoty očekáváme v dané celočíselné proměnné můžeme pracovat s pamětí. Pokud moje proměnná bude nabývat pouze hodnot od jedné do deseti, nemusím se obávat jí přidělit typ char nebo uchar. Naopak u jiných proměnných, například číslo loginu u některých brokerů, už nemusí stačit ani typ int a bude potřeba long nebo ulong.

Novým typem dat je ale také enum (výčet), který jsme již krátce nakousli ve zmiňovaném pátém díle. V tomto článku je možnost se na něj podívat blíže a naučit se s ním pracovat.

Výčet (enum)

Tento typ dat slouží k vytvoření skupiny dat stejného typu. Datům můžeme přidělit hodnoty, ale nemusíme, pak budou přiděleny automaticky. Výčet musí být deklarován uvnitř složených závorek. Příklad:

enum Dny {Pondeli=1,Utery,Streda,Ctvrtek,Patek=5,Sobota,Nedele};

Možné použití výčtu si ukážeme na příkladu vytvoření roletky pro zadávání parametru uživatelem programu.
Následující skript sečte dvě zadané hodnoty, přičemž uživatel má možnost z roletky vybrat pouze hodnoty 1 až 5 dané proměnnými Jedna až Pet.

Podle toho, co uživatel vybere v roletce, taková hodnota se uloží do jednotlivých sčítanců. Číselné ekvivalenty jednotlivým položkám enum můžeme přidělit již při deklaraci. Položky musí být typu int, tedy celočíselné. Pokud je nepřidělíme, přidělí se indexy automaticky, kdy první hodnota bude mít 0, druhá 1 atd. Aby uživateli vznikla roletka, za identifikátor input vložíme název výčtu a teprve poté proměnnou, do které bude vybraná hodnota uložena.