MetaTrader: narzędzia i nauka programowania

Na stronach internetowych wielu brokerów forexowych jest możliwość pobrania platformy transakcyjnej MetaTrader i wypróbowania rachunku demo.

Aktualizacja: 06.02.2017 14:36 Publikacja: 31.10.2016 07:17

Zrzut ekranu przedstawia przykładowy wygląd okna platformy Meta Trader. Czarnym kółkiem zaznaczona j

Zrzut ekranu przedstawia przykładowy wygląd okna platformy Meta Trader. Czarnym kółkiem zaznaczona jest ikonka książki, która otwiera Meta Editora. Na czarnym tle znajduje się wykres USD/PLN wraz ze wskaźnikiem MACD. W oknach po lewej stronie mamy tabelę kwotowań innych instrumentów oraz nawigator, czyli listę skryptów, wskaźników i EA, które możemy uruchomić. Na samym dole znajduje się panel testujący, w którym możemy ustawić parametry testowania zaprogramowanej strategii (EA).

Foto: Archiwum

Jest to całkowicie darmowa usługa, która oddaje w ręce inwestora ciekawe narzędzie analityczne i programistyczne. Platforma jest bowiem wyposażona w wiele gotowych wskaźników i funkcji, które znacznie ułatwiają kontrolę rynku i zarządzanie inwestycjami. Najważniejsze narzędzie to jednak MetaEditor, czyli edytor kodu źródłowego. To w nim można programować własne skrypty, wskaźniki i strategie za pomocą wbudowanego języka MQL (od ang. Meta Qutes Language). Opanowanie tego języka pozwala na automatyzację indywidualnych procesów analitycznych i decyzyjnych, ich testowanie na danych historycznych, a w razie pomyślnych wyników – ich implementację na rzeczywistym rachunku. W tym artykule prezentujemy wstęp do programowania w języku MQL, który może stać się dobrą bazą do pogłębiania tego tematu.

Skrypty, wskaźniki i EA

Na początek wyjaśnijmy kilka terminów, które już padły na wstępie i mogą niektórych skutecznie zniechęcić do dalszej lektury. Język programowania MQL, który jest wbudowany w platformę MetaTrader, to w uproszczeniu zbiór funkcji (np. funkcje obliczające wartość wskaźników analizy technicznej), operatorów logicznych (np. „jeżeli"), operatorów matematycznych (np. mnożenie), stałych (np. kurs otwarcia lub zamknięcia) oraz zmiennych (np. liczba pipsów równa 10, czyli zmienna liczbowa typu całkowitego). Budując z elementów tego zbioru kod źródłowy, tworzymy program działający w pożądany przez nas sposób.

W tym miejscu warto wspomnieć, że pod względem składni MQL jest bardzo podobny do popularnego języka C++. Programiści posługujący się tym ostatnim, mający inwestycyjne zainteresowania, powinni bez trudu posługiwać się MQL.

Co możemy tworzyć za pomocą MQL? Na wstępie wspomnieliśmy o trzech typach narzędzi: skryptach, wskaźnikach oraz strategiach. Skrypt to zazwyczaj krótki program zawierający kilka zdefiniowanych czynności do wykonania, po których zakończeniu automatycznie przestaje działać. Aby ponownie go uruchomić, wymagana jest ingerencja użytkownika. Skrypty znacznie ułatwiają życie przy powtarzalnych i monotonnych czynnościach, które nie wymagają dodatkowych procesów decyzyjnych. Przykładem może być skrypt umożliwiający złożenie zlecenia stop loss o stałej wielkości pipsów za pomocą skrótu klawiszowego. Złożenie zlecenia metodą tradycyjną wymaga wybrania instrumentu, otwarcia okna zleceń itd. Napisanie skryptu ograniczy te czynności do wciśnięcia dwóch klawiszy.

Kolejną grupą narzędzi, które można tworzyć za pomocą MQL, są wskaźniki własne. Mowa tutaj zarówno o indykatorach analizy technicznej (np. kanał cenowy bazujący na maksymalnej i minimalnej cenie z dziesięciu ostatnich sesji), jak i o narzędziach informacyjnych (np. pokazujących aktualną liczbę otwartych pozycji). Wskaźniki znajdują się bezpośrednio na wykresie lub w osobnym, sąsiednim oknie. Uruchomiony wskaźnik zmienia swoją wartość z każdym nowym kwotowaniem (nie wyłącza się tak jak skrypty po wykonaniu zestawu czynności).

Trzecia grupa narzędzi to strategie automatyczne, zwane z angielska Expert Advisors (EA). Są to najbardziej zaawansowane programy, które zawierają cały schemat procesu decyzyjnego: od identyfikacji sygnału otwarcia pozycji, przez wysłanie zlecenia na rynek, ustalanie wielkości pozycji i zarządzanie nią, po wyjście z rynku w razie realizacji straty lub zysku. Zaprogramowanie strategii sprawia, że może ona działać jednocześnie na wielu instrumentach (np. EUR/USD i ropie naftowej) i wszystkie czynności związane z handlem wykonywać automatycznie.

MetaEditor

Pisanie kodu danego narzędzia odbywa się w programie MetaEditor, który jest wbudowany w platformę MetaTrader. Tak jak do napisania tekstu na komputerze potrzebujemy edytora tekstu, tak do napisania programu potrzebujemy programu typu IDE (od ang. Integreted Development Environment, czyli zintegrowane środowisko programowania). MetaEditor jest właśnie takim IDE. Wyróżnia go m.in. to, że ma funkcję podświetlania składni. Innymi kolorami zaznaczane są funkcje, a innymi zmienne i komentarze. Dzięki temu łatwiej jest zrozumieć i modyfikować kod.

Ponadto MetaEditor daje nam dostęp do bardzo przydatnej pomocy. Przykładowo, gdy nie znamy znaczenia funkcji "iMA", możemy ją zaznaczyć, a po wciśnięciu klawisza pomocy (F1) program wyświetli nam okno z dokładnym opisem tej funkcji. Warto też dodać, że MetaTrader wyposażony jest w  debugger oraz kompilator. Pierwsze narzędzie służy do wykrywania błędów w kodzie. Drugie natomiast zamienia język MQL na język zrozumiały dla platformy transakcyjnej. Chodzi bowiem o to, że MetaTrader rozpozna nasz skrypt, wskaźnik czy EA dopiero wtedy, gdy otrzyma go w odpowiednio skompilowanym pliku o odpowiednim rozszerzeniu.

Nauka programowania

W celu lepszego zrozumienia opisanych tu zagadnień zalecane jest zainstalowanie platformy MetaTrader oraz „zabawa" rachunkiem demo. Platforma jest dostępna chociażby na stronie DM BOŚ – bossafx.pl. W tym serwisie w zakładkach Narzędzia i Automatyzacja handlu znajdziemy też mnóstwo informacji na temat platformy, a także samego języka MQL (m.in. przetłumaczone na język polski definicje poszczególnych funkcji, operatorów itd.). Dla osób, które nigdy nie miały styczności z programowaniem, a chciałyby samodzielnie zbudować własny algorytm, dobrym wyjściem na początek będzie nauczenie się podstaw C++.

Warto pamiętać, że nauka programowania, w tym przypadku programowania narzędzi inwestycyjnych, pozwala usystematyzować myślenie na temat dokonywania i prowadzenia swoich transakcji. Oprócz nabywania samej wiedzy programistycznej można więc podnieść efektywność swoich rynkowych poczynań.

Podczas budowania EA musimy uwzględniać wiele różnych scenariuszy, o których na co dzień zupełnie nie myślimy. W testach na danych historycznych można zobaczyć wiele błędów we własnym procesie decyzyjnym i odpowiednio je skorygować. Programowanie zautomatyzowanych narzędzi pozwala więc lepiej zrozumieć rynek i własne postępowanie.

Warto też wspomnieć o innych zaletach automatycznych rozwiązań, głównie EA. Są one w stanie cały czas, bez udziału człowieka, monitorować rynek. Zawierają transakcje konsekwentnie, zgodnie z ustalonymi zasadami dotyczącymi wielkości pozycji i podejmowanego ryzyka. I co najważniejsze – nie ma tu miejsca na wpływ emocji. Pułapki behawioralne nie mają tutaj wpływu na podejmowanie decyzji.

[email protected]

Inwestycje
Promocja na ETF-y również w Noble Securities
https://track.adform.net/adfserve/?bn=77855207;1x1inv=1;srctype=3;gdpr=${gdpr};gdpr_consent=${gdpr_consent_50};ord=[timestamp]
Inwestycje
Tomasz Bursa, OPTI TFI: WIG ma szanse na rekord, nawet na 100 tys. pkt.
Inwestycje
Emil Łobodziński, BM PKO BP: Nasz rynek pozostaje atrakcyjny, ale...
Inwestycje
GPW i rajd św. Mikołaja. Czy to może się udać?
Materiał Promocyjny
Cyfrowe narzędzia to podstawa działań przedsiębiorstwa, które chce być konkurencyjne
Inwestycje
Co dalej z WIG20? Czy zbliża się moment korekty spadkowej?
Inwestycje
Ropa naftowa szuka pretekstu do ruchu w górę