You are on page 1of 16

z

MQL4
z
Osnovne osobine jezika

MetaQuotes Language 4 (MQL4) je objektno orijentisani


programski jezik na visokom nivou namijenjen pisanju
automatiziranih strategija trgovanja, prilagođenih tehničkih
pokazatelja za analizu različitih financijskih tržišta. Omogućava ne
samo pisanje različitih ekspertnih sistema, dizajniranih za rad u
stvarnom vremenu, već i stvaranje vlastitih grafičkih alata koji će
vam pomoći u donošenju trgovinskih odluka.
z
z
Sintaksa

Što se tiče sintakse, jezik MQL4 za programiranje strategija


trgovanja vrlo je sličan program‐skom jeziku C ++, osim nekih
karakteristika:

• Nema adresne aritmetike

• Nema goto operatora

• Anonimna enumeracija ne može biti deklarisana

• Nema višestrukog nasljedstva


z

Višeredni komentari počinju sa / * parom simbola, a završavaju sa *


/, dok jednoredni započinju s // parom simbola i završavaju se
znakom novog retka. Duljina identifikatora ne može biti većaod 63
znaka. Znakovi dozvoljeni za upis u identifikator: brojevi 0‐9,
latinična velika i mala slova a‐z i A‐Z, prepoznata kao različiti
znakovi, te znak ( _ ). Prvi znak ne može biti cifra. Identifikator se
ne smije podudarati sa rezerviranom riječju.
z
Tipovi podataka
Osnovni tipovi podataka:

• cijeli brojevi(char, short, int, long, uchar, ushort, uint, ulong)

• logički(bool)

• literali(ushort)

• znakovni nizovi(strings)

• brojevi u pokretnom zarezu(double, float)

• boje(color)

• datum i vrijeme(datetime)

• enumeracije(enum)
z

Kompleksni tipovi podataka:

• strukture(struct)

• klase(class)

Struktura je skup elemenata bilo kojeg tipa (osim tipa void). Dakle,
struktura kombinira logičkipovezane podatke različitih vrsta.
Struktura ima oblik:
z
Klase

Klase se razlikuju od struktura po sljedećem:

• za deklaraciju se koristi ključna riječ class

• prema zadanim postavkama, svi članovi klase imaju specifikator


pristupa private, dok članovi struktura imaju zadanu vrstu
pristupa public

• objekti klase uvijek imaju tabelu virtuelnih metoda, čak ako


nema virtualnih metoda deklarisanih u klasi. Strukture ne mogu
imati virtuelne metode.

• klase mogu biti naslijeđene samo iz klasa, strukture mogu biti


naslijeđene samo iz struktura
z
Operacije i izrazi

Neki znakovi i nizovi znakova su od posebne važnosti. To su


takozvani simboli operacija, naprimjer:

Simboli operacija koriste se u izrazima i imaju smisla kada im se


daju odgovarajući operandi. Naglašeni su i interpunkcijski znakovi.
To su zagrade, zarez, dvotačka i zarez.
z
z
Operatori

▪ Jezički operatori opisuju neke algoritamske operacije koje se


moraju izvršiti da bi se izvršio zadatak. Tijelo programa je niz
takvih operatora. Operatori koji slijede jedan po jedan odvojeni
su tačkom i zarezom.
z
z
Funkcije

Svaki zadatak može se podijeliti na podzadatke, od kojih se svaki


može direktno predstaviti u obliku koda ili podijeliti na manje
podzadatke.

Funkcije se koriste za pisanje koda podzadataka koje treba riješiti. Kôd


koji opisuje što funkcija radi naziva se definicija funkcije:

Sve što je prije prve zagrade je zaglavlje definicije funkcije, a ono što je
između zagrada je tijelo definicije funkcije.
Postoje dvije metode pomoću kojih
z
mašinski jezik može prosljeđivati
argumente potprogramu(funkciji).
Prva metoda je slanje parametra po
vrijednosti. Ova metoda kopira
vrijednost argumenta u formalni
parametar funkcije. Stoga, bilo kakve
promjene ovog parametra unutar
funkcije nemaju utjecaja na
odgovarajući argument poziva.
Druga metoda je prosljeđivanje
referencom. U tom se slučaju
referenca na parametar (a nenjegova
vrijednost) prenosi na parametar
funkcije. To znači da će promjene
parametra utjecati na argumentkoji
se koristi za pozivanje funkcije.
z
Varijable

Varijable moraju biti deklarisane prije nego što se koriste. Za


identifikaciju varijabli se koriste unikatni nazivi. Primjer:

Složeni tip:
z
Varijabla deklarisana unutar funkcije
je lokalna varijabla. Opseg lokalne
varijable je ograničenna opseg
funkcije unutar koje je deklarisana.
Parametri proslijeđeni funkciji su
također lokalni.

Klasa memorije static definira


statičku varijablu. Statički modifikator
je naznačen prije tipa podataka.
Statičke varijable postoje od trenutka
izvršavanja programa i inicijaliziraju
se samo jednom nakon učitavanja
programa. Ako početne vrijednosti
nisu specificirane, statičke varijable
uzimaju nulu kao početnu vrijednost.

You might also like