Część 13: Jak uczyć się programowania algorytmów inwestycyjnych w języku MQL? Wskazujemy na źródła wiedzy, z których sami korzystaliśmy i możemy je śmiało polecić.

Tekst poświęcony nauce programowania to naszym zdaniem dobry sposób na zakończenie tego dodatku, poświęconego w całości podstawom kodowania w języku MQL.

Aktualizacja: 06.02.2017 14:31 Publikacja: 31.10.2016 14:15

Część 13: Jak uczyć się programowania algorytmów inwestycyjnych w języku MQL? Wskazujemy na źródła wiedzy, z których sami korzystaliśmy i możemy je śmiało polecić.

Foto: Archiwum

Postanowiliśmy więc, że na koniec opiszemy, jak może wyglądać przykładowa ścieżka edukacji. Pokażemy więc krok po kroku, jak można się uczyć i z jakich źródeł korzystać. Zaznaczamy od razu, że nasza propozycja wynika tylko z naszych doświadczeń i jest jedną z wielu możliwych.

Na start C++

Osoba, która po raz pierwszy zobaczy przykładowy kod, czy to algorytmu inwestycyjnego, czy jakiejkolwiek aplikacji, zazwyczaj nic z tego zupełnie nie rozumie. Składnia przyjmuje różne kolory, a poszczególne wyrazy, choć są w języku angielskim, trudno zinterpretować. Do tego dochodzą dziwnie wyglądający układ poszczególnych linijek kodu i specyficzne użycie interpunkcji. Nic dziwnego, że większość osób już po pierwszym zetknięciu z takim kodem skutecznie się zniechęca do nauki programowania. Zaczynać należy bowiem od podstaw, jak z większością nowych zagadnień. Naszym zdaniem, aby w miarę dobrze oswoić się ze składnią języka MQL, warto na starcie nauczyć się podstaw jednego z najpopularniejszych języków programowania, czyli C++, C#, Java czy Python. To trochę tak jak z nauką języków obcych – jeśli ktoś dobrze zna angielski, to łatwiej będzie mu się uczyć innych języków.

My sugerujemy, by zacząć od C++, a konkretnie od kursu Mirosława Zelenta, który znajduje się pod linkiem (http://miroslawzelent.pl/kurs-c++/). Jest to kilkanaście filmików z podkładem głosowym. Autor ma talent dydaktyczny – wszystko jest tłumaczone bardzo klarownie, a odcinki są tak konstruowane, by poszczególne zagadnienia łączyły się ze sobą i tworzyły całość. Dowiemy się stąd m.in., czym są zmienne, instrukcje warunkowe i pętle. Ponadto napiszemy kilka prostych programów, wykorzystując nabytą wiedzę. Po przejściu takiego kursu składnia przykładowego algorytmu inwestycyjnego nie będzie już dla nas tak tajemnicza.

Poznaj MQL

Znając podstawy C++, można przejść już do studiowania samego MQL. Fundamenty obu języków są bowiem bardzo podobne, z tą różnicą, że MQL wyposażony jest w dodatkową masę funkcji i zmiennych, dedykowanych właśnie procesowi inwestycyjnemu. Stąd m.in. funkcje informacyjne konta, funkcje do zarządzania zleceniami czy też specyficzne zmienne predefiniowane Bid i Ask, o których nie raz tutaj wspominaliśmy. Aby nauczyć się tego, w jaki sposób zastosować je podczas pisania swojego robota, zachęcamy do przejścia kolejnego kursu, tym razem jednak jest to kurs w języku angielskim. Jego autorem jest amerykański vloger Jim Dandy (link do strony: http://www.jimdandyforex.com/; link do filmików na YouTubie: https://www.youtube.com/user/Jimdandy1958/videos?sort=da&view=0&flow=grid). Warto zacząć od najstarszych nagrań („Mql4 Lesson 1") i oglądać każdy kolejny materiał. Filmy w serwisie YouTube są darmowe. Autor bardzo szczegółowo wyjaśnia poszczególne zagadnienia i co najważniejsze – pokazuje to podczas tworzenia przykładowego EA (Expert Advisor, czyli automatyczna strategia). Można więc oglądać filmy i jednocześnie tworzyć taki sam kod w swoim Meta Editorze. Z anglojęzycznych źródeł pomocny może okazać się podręcznik dostępny pod linkiem (https://book.mql4.com/).

Jednocześnie można też korzystać z polskich źródeł, wprawdzie mniej szczegółowych, ale w sam raz nadających się jako materiały uzupełniające. Polecamy interaktywny kurs w serwisie (https://fxwatch.eu/n,text,12538.html) i artykuły na tej stronie (http://www.forexadvisor.pl/jezyk-mql/). Wiele materiałów i definicji w języku polskim znajduje się również w serwisie Bossa.pl (http://bossafx.pl/fx/edukacja/slownik/). Dom Maklerski BOŚ jest jednym z niewielu w naszym kraju, który sporo miejsca w swojej ofercie poświęca automatyzacji handlu (zalecamy też śledzić kalendarz szkoleń, bo od czasu do czasu pojawia się tematyka programowania).

Do dyspozycji czytelników są też fora internetowe. Osobny wątek poświęcony programowaniu znajduje się tutaj (http://forex-nawigator.biz/forum/programowanie.html). Po liczbie wpisów i datach można wnioskować, że forumowicze są całkiem aktywni. Warto podłączać się do dyskusji, czytać i zadawać pytania.

Zachęcamy też do studiowania wszystkich artykułów zawartych w tym dodatku oraz innych publikacji w „Parkiecie" dotyczących automatyzacji handlu. Mamy tu na myśli m.in. cykl siedmiu artykułów publikowanych w ramach „Profesjonalnego inwestora" w okresie marzec–czerwiec 2015 r. Autorami materiałów są rynkowi praktycy wykorzystujący inwestycyjne roboty – Artur Górski i Tomasz Filipiak. Panowie pokazali tam, jak w rzeczywistości może wyglądać automatyzacja narzędzi inwestycyjnych.

Zacznij programować

Po nabyciu tak solidnych podstaw pozostaje już tylko praktyka, czyli pisanie własnych robotów i testowanie ich w module testującym MetaTradera (opisany na sąsiedniej kolumnie). Inspiracji można szukać w źródłach, które podaliśmy wyżej, lub na zagranicznych serwisach. Opcji jest mnóstwo – wystarczy w wyszukiwarce wpisać hasło zawierające słowa „MQL", „code", „programming" czy „EA". Przykładowym źródłem kodów może być ten serwis (https://www.mql5.com/en/code/mt4/experts). Można je testować we własnym edytorze, starając się zrozumieć sens poszczególnych linijek kodu. Można też próbować tworzyć własne narzędzia od podstaw, posiłkując się tylko fragmentami cudzych pomysłów (np. dotyczącymi zarządzania wielkością pozycji). Grunt, byśmy znali logikę działania naszego robota i to, za co odpowiadają poszczególne funkcje. Tylko wtedy będziemy w stanie identyfikować błędy w działaniu i odpowiednio je korygować.

Ułatwieniem w początkowych etapach nauki może być stosowanie komentarzy (piszemy o nich w Części 2 tego dodatku). Gdy kod rozrasta się do kilkudziesięciu lub kilkuset linijek, pewne jego elementy mogą pozostawać nieczytelne. Ponadto warto korzystać z modułu pomocy, który jest wbudowany w platformę MetaTrader. Aby z niego skorzystać, na przykład gdy nie rozumiemy jakiegoś wyrażenia w kodzie, można to wyrażenie zaznaczyć i wcisnąć klawisz F1. Wówczas powinno się pojawić okno zawierające wyjaśnienie terminu.

Standardowo – im więcej kodujemy, tym więcej się uczymy. Niektóre schematy wchodzą bowiem w nawyk i każdy kolejny robot będzie pisał się łatwiej. Nauka programowania, choć nie należy do najłatwiejszych, to z pewnością dobrze wykorzystany czas. Nawet jeśli nie uda nam się znaleźć idealnej strategii, to sama praca nad nią bardzo usystematyzuje nasze podejście do inwestowania. Będziemy bowiem zwracać uwagę na wiele szczegółów i przewidywać różne możliwe scenariusze. Lepiej poznamy rynek i będziemy na nim inwestować bardziej sprawnie, świadomie, i co istotne - z mniejszym obciążeniem emocjonalnym.

Inwestycje
Trzy warstwy regulacji
https://track.adform.net/adfserve/?bn=77855207;1x1inv=1;srctype=3;gdpr=${gdpr};gdpr_consent=${gdpr_consent_50};ord=[timestamp]
Inwestycje
Jak przeprowadzić spółkę przez spór korporacyjny?
Inwestycje
Porozumienia akcjonariuszy w spółkach publicznych
Materiał Promocyjny
Cyfrowe narzędzia to podstawa działań przedsiębiorstwa, które chce być konkurencyjne
Inwestycje
Unikanie sporów potransakcyjnych