1. MQL4 dla początkujących. Część I.

1.2. Kod źródłowy i kompilacja

Po wygenerowaniu nowego skryptu, jak to zrobiliśmy w poprzednim rozdziale, widać że zawiera on już jakiś kod.

Rys. 1. Struktura skryptu.


W linijkach od 1 do 5 po symbolach podwójnego slash-a // znajduje się komentarz. Wpisy Test.mq4 to nazwa pliku i jego typ, a Maxim Khrolenko i www.naukamql.pl to informacje jakie zostały zapisane podczas generowania pliku. Więcej informacji o właściwościach komentarzy znajdziesz w rozdziale 1.4. Komentarze. Dalej w linijkach od 6 do 9 widać cztery wpisy, które zaczynają się od słowa #property. Jest to tzw. dyrektywa preprocesora. Ten zapis determinuje pewne właściwości przyszłego programu. Podczas generowania skryptu zostały automatyczne dodane 4 dyrektywy, które zawierają 4 właściwości: copyright - autor programu, link - link na stronę www autora. Następna właściwość version to wersja programu. Przy tworzeniu nowego programu automatycznie zostanie wpisana wersja "1.00". Czwarta właściwość strict jest bardzo ważnym elementem programu.


Wpis #property strict świadczy o zastosowaniu nowego kompilatora MQL4.

Jeśli dopiero zaczynasz swoją przygodę z MQL4 proponuję od razu uczyć się pracować w nowym środowisku. Pamiętaj o tym, aby w każdym twoim programie na początku był ten wpis. Jeśli go nie będzie, wtedy zostanie zastosowany kompilator poprzedniej wersji. Dla ciekawskich różnicy między starym a nowym kompilatorem, proponuję zapoznać się z informacją udostępnioną przez MetaQuotes Software Corp.

Zanim przystąpisz do pisania jakiegokolwiek programu musisz zrozumieć jedną bardzo ważną rzecz. To co napiszesz w MetaEditor 4 to kod źródłowy, czyli sekwencja poleceń, które będą wykonywane jeden po drugim. Jednak terminal nie może pracować bezpośrednio z kodem źródłowym. Taki kod jest zrozumiany dla człowieka, ale nie dla MetaTrader 4. Aby był on zrozumiały przez terminal, powinien być on ”przetłumaczony” na język maszynowy. Aby to zrobić na klawiaturze wciśnij F7 lub w pasku menu kliknij myszką na Plik a następnie na Kompiluj lub od razu kliknij na ikonkę Kompiluj.

Rys. 2. Kompilacja.



Kompilacja to proces transformacji pliku zawierającego kod źródłowy z rozszerzeniem *.mq4 do pliku z rozszerzeniem *.ex4, który będzie zrozumiały przez MetaTrader 4.

Żeby trochę skrócić kod bez szkody dla jego funkcjonalności usuńmy z niego komentarze oraz 3 pierwsze dyrektywy preprocesora. Zostawmy wpis #property strict oraz funkcję główną skryptu void OnStart().

Kod 1
#property strict
void OnStart()
  {
//---

  }

Jeśli teraz przejdziesz do folderu z plikami skryptów to znajdziesz tam nasze dwa pliki testowego skryptu: Test.mq4 - plik z kodem źródłowym i Test.ex4 - skompilowany plik (rys. 3).

Rys. 3. Pliki skryptu w folderze.


Ok, mamy już plik, działanie którego możemy sprawdzić w MetaTrader 4. Wróć teraz do terminala. W okienku Nawigator (rys. 4) można zobaczyć cztery główne foldery: Rachunki, Wskaźniki, Strategie i Skrypty. Jeśli z jakiegoś powodu tego okienka nie ma w terminalu, w pasku menu kliknij na Widok a następnie kliknij na Nawigator lub na klawiaturze naciśnij kombinację klawiszy Ctrl + N.

Po lewej stronie od Skrypty kliknij na plusik, aby ujawniła się zawartość tego folderu. Znajdź tam plik Test i aby go uruchomić kliknij dwa razy na jego nazwie lub przeciągnij go do okna notowań i puść. Nic się nie dzieje, ponieważ skrypt jest pusty. Jeśli klikniesz tylko raz na nazwę skryptu zaznaczając go, a następnie na klawiaturze wciśniesz Enter to otworzy się MetaEditor 4 z kodem źródłowym, pod warunkiem że w folderze z plikami skryptów (rys. 3) jest obecny plik Test.mq4.

Rys. 4. Skrypty w MetaTrader 4.


Teraz już wiesz na czym polega proces pisania programu: piszesz kod źródłowy -> kompilujesz -> uruchamiasz program w terminale -> patrzysz na wynik -> poprawiasz kod -> kompilujesz -> ... i tak do póki nie uzyskasz pożądany wynik.