SlideShare a Scribd company logo
1 of 40
Programowanie automatycznych
strategii transakcyjnych
Część 1 – szkolenie podstawowe (13.10.2015)
Tomasz Waszczyk
O autorze
2 Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego 2015-10-15
Tomasz Waszczyk
Autor książki „Trading Automatyczny”
Programista
Trader instytucjonalny
Disclaimer
2015-10-15Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego3
 „Niniejsza prezentacja jest efektem wspólnych prac Domu Maklerskiego TMS Brokers S.A. oraz Pana Tomasza Waszczyka

 Materiały zawarte w niniejszej prezentacji mają charakter edukacyjny i nie stanowią działalności maklerskiej polegającej na doradztwie
inwestycyjnym lub wydawaniu rekomendacji o charakterze ogólnym. Zaprezentowane podczas warsztatów (w tym w niniejszej prezentacji)
algorytmy mają charakter jedynie poglądowy w celu zobrazowania i nauki języka programowania modułu Expert Advisor dla systemu
transakcyjnego MetaTrader. Korzystając z algorytmów klient powinien mieć na względzie, że:
 1. Klient wykorzystuje mechanizmy algorytmiczne na własne ryzyko i odpowiedzialność.
 2. Klient ponosi pełną odpowiedzialność za straty lub utracone korzyści związane z realizacją zleceń za pomocą mechanizmów
algorytmicznych. Dotyczy to także prowizji, jakie Klient będzie zobowiązany pokryć w związku z transakcjami, które będą zawierane w
oparciu o algorytm, nawet przy ich znacznej ilości.
 3. Klient odpowiada za opóźnione wygenerowanie lub niewygenerowanie lub błędne wygenerowanie zleceń za pomocą mechanizmów
algorytmicznych. W szczególności Klient ponosi odpowiedzialność za ww. zdarzenia powstałe w wyniku błędów w oprogramowaniu
mechanizmów algorytmicznych.
 4. Nie można zagwarantować osiągnięcia określonego wyniku finansowego na transakcjach zawartych z wykorzystaniem
mechanizmów algorytmicznych.
 5. Transakcje realizowane za pomocą mechanizmów algorytmicznych traktowane są jako transakcje zawierane przez Klienta.
 6. Składanie, usuwanie lub modyfikowanie zleceń z wykorzystaniem mechanizmów algorytmicznych traktowane jest jako zlecenia
złożone przez Klienta.
 7. W wersji webowej oraz mobilnej systemu transakcyjnego może nie istnieć możliwość uruchomienia strategii automatycznych.
 8. Wszelkie przykładowe strategie algorytmiczne zaprezentowane w czasie niniejszego szkolenia mają jedynie charakter edukacyjny i
nie powinny być stosowne na rachunkach rzeczywistych.

 Dom Maklerski TMS Brokers S.A. podlega nadzorowi Komisji Nadzoru Finansowego i prowadzi działalność maklerską na podstawie
zezwolenia z dnia 26 kwietnia 2004 r. (KPWiG-4021-54-1/2004). Kontakt: Skylight Ul. Złota 59; 00-120 Warszawa, Polska; Tel.: +48 22 27
66 200”
Agenda
 Co to jest automat transakcyjny ?
 Platforma MetaTrader od strony programisty
 Wady i zalety automatów transakcyjnych
 Wprowadzenie do MetaEditor oraz języka MQL
 Struktura świeczki w języku MQL
 Omówienie najprostszego automatu transakcyjnego
 Wysyłanie zleceń transakcyjnych oraz obliczanie
poziomów stop loss w praktyce
 W jaki sposób testować nasz automat – Tester Strategii
wady i zalety
4 Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego 2015-10-15
Założenia prezentacji
2015-10-15Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego5
 Dla każdego kto jest zainteresowany handlem
automatycznym, adresatami prezentacji są osoby
początkujące
 Pracownikom oraz osobom związanym z IT będzie
łatwiej (na początku)
 Sesja pytań i odpowiedzi na koniec prezentacji
 Przedstawione treści są subiektywnym zdaniem autora
 Prezentacja przeprowadzona na platformie
TMS Trader (build 890)
Cel prezentacji
2015-10-15Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego6
 Każdy uczestnik po skończeniu prezentacji będzie
wiedzieć jak uczyć się dalej języka MQL4 i rozwijać
swoje umiejętności w tej dziedzinie.
 Zachęcić do eksperymentowania, programowania
oraz rozwoju.
Kontekst prezentacji
7 Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego 2015-10-15
https://www.youtube.com/watch?v=Xmudle0HjWk
Struktura działu handlu w instytucji.
Co to jest algorytm?
2015-10-15Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego8
 Algorytm – jednoznaczny przepis obliczenia w
skończonym czasie pewnych
danych wejściowych do pewnych
danych wynikowych.
 https://pl.wikipedia.org/wiki/Algorytm
 „Algorytmika to serce inżynierii oprogramowania.”
Handel algorytmiczny
Cena
rynkowa
9 Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego 2015-10-15
Automat
transakcyjny
Decyzja
transakcyjna
Handel Algorytmiczny – analiza oraz składanie zleceń transakcyjnych za pomocą
programu komputerowego dzięki wcześniej zdefiniowanym i zaimplementowanym
instrukcjom.
Handel manualny
Handel
automatyczny
(wspomagany
oprogramowaniem)
Przejście z handlu manualnego na automatyczny:
Automatyzacja handlu
2015-10-15Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego10
 Rozwijanie funkcjonalności platformy MetaTrader:
- Zamykanie zleceń o konkretnej godzinie
- Szybsze składanie zleceń, piramidowanie
- Automatyzacja analizy wykresów
- Ukrywanie poziomów SL oraz TP
- Wyliczanie ryzyka mając wiele rachunków
Cel: Maksymalne uproszczenie pracy tradera aby
mógł skupić się jedynie na tym co dla niego
najważniejsze.
Wady i zalety handlu automatycznego
2015-10-15Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego11
 Automat pozwala generować sygnały transakcyjne
według określonych przez programistę reguł oraz
składać zlecenia.
Zalety:
-Nigdy się nie męczy, może
pracować 24h/dobę
-Szybkość reakcji
-Konsekwencja w działaniu
Wady:
-Umiejętność programowania
-Trudności technologiczne
-Wydarzenia losowe (przerwa w
dostawie energii elektrycznej)
-Czas potrzebny na testowanie
-Redukcja emocji (?)
Czym jest MQL4?
2015-10-15Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego12
 MQL4 – MetaQuotes Language 4 – jest częścią
platformy MetaTrader 4
 Środowisko uruchomieniowe programów napisanych
w MQL ogranicza się do platformy Meta Trader 4,
język ten jest bardzo podobny do popularnych
języków takich jak C/C++
Historia rozwoju języka MQL
2015-10-15Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego13
 Rewolucja w języku podczas wydania oznaczonego
„Build 600”
 W MQL4 mamy dostęp do programowania
obiektowego
 Dostęp do MQL5 Storage
 http://docs.mql4.com/mql4changes#compiler_differe
nce
Kod źródłowy a plik wykonywalny
2015-10-15Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego14
Kompilator
Kod źródłowy – plik tekstowy z rozszerzeniem *.mq4
Plik wykonywalny – plik z rozszerzeniem *.ex4 który jest wykonywany w
środowisku MetaTrader 4
Typy programów jakie możemy tworzyć w
MQL4
2015-10-15Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego15
 Automatyczne systemy transakcyjne (Expert
Advisors)
 Wskaźniki własne (Custom Indicators)
 Skrypty (Scripts)
 Biblioteki
 Pliki wsadowe *.mqh
Expert Advisors w MetaTrader 4
2015-10-15Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego16
 Programy mające możliwość generowania sygnałów
transakcyjnych, ściśle zintegrowane z wykresem
konkretnego waloru na którym chcemy handlować.
Podczas implementacji należy określić ściśle
warunki wejścia w pozycję, wyjścia z niej oraz
poziomów SL oraz TP. Strategia automatyczna
wykonuje się przy każdorazowym odświeżeniu ceny.
 Przykład użycia: automatyzacja strategii bazującej
na podążaniu za trendem
Wskaźniki własne (Custom Indicators)
2015-10-15Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego17
 Programy zintegrowane z konkretnym wykresem,
wykonujące obliczenia przy każdorazowym
odświeżeniu ceny analizowanego waloru.
 Przykład użycia: pokazanie graficzne ATR,
pokazanie czasu do końca świeczki
 Przy korzystaniu ze wskaźników należy zwrócić
uwagę na tzw. “repaiting”.
Skrypty (Scripts)
2015-10-15Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego18
 Skrypty przeznaczone są do wykonania jednego lub
większej ilości zadań na „polecenie” użytkownika
poczym wyłączenie się.
 Przykład użycia: zamknięcie wszystkich transakcji.
Zaczynamy programować czyli „Hello World”
w użyteczny sposób…
2015-10-15Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego19
 Skrypt – usunięcie wszystkich elementów z wykresu
Konfiguracja Meta Trader
2015-10-15Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego20
Konfiguracja Meta Trader c.d.
2015-10-15Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego21
Handel zezwolono, strategia
automatyczna włączona:
Handel nie zezwolono, strategie
automatyczne wyłączone:
Meta Editor – miejsce programisty MQL
2015-10-15Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego22
 Edytor kodu źródłowego, wbudowany w Meta Trader
 Wspomaga tworzenie i edycję kodu źródłowego
MQL4 (podpowiadanie kodu)
 Pozwala na kompilację kodu źródłowego w kod
wykonywalny
 Zintegrowany z MQL4 Community
 Możliwości uruchomienia:
- nacisnąć klawisz F4 z poziomu Meta Trader 4
- klikając w ikonę
- „Narzędzia” -> „Edytor języka MQL”
Podstawowe elementy języka MQL
2015-10-15Tomasz Waszczyk - Wprowadzenie do
Handlu Automatycznego
23
 Typy danych, stałe, zmienne
 Deklaracje zmiennych
 Tablice
 Operacje na danych
 Zmienne predefiniowane
 Deklaracja i definicja funkcji
 Pętle
 Komentarze
Proste typy danych
2015-10-15Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego24
 Liczby całkowiete(char, short, int, long, uchar, ushort,
uint, ulong);
 Logiczny (bool);
 0-255 (ushort);
 Napisy (string);
 Liczby zmiennorzpecinkowe (double, float);
 Kolor (color);
 Data i czas (datetime);
 Wyliczenia (enum).
Złożone typy danych (abstrakcyjne)
2015-10-15Tomasz Waszczyk - Wprowadzenie do
Handlu Automatycznego
25
 Struktury
 Klasy
Tablice
2015-10-15Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego26
 To zbiór uporządkowanych zmiennych określonego
typu danych.
 int mojaTablica[5];
 Indeksy rozpoczynają się od zera ! !
Wykres z punktu widzenia MQL4
2015-10-15Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego27
Zmienne tablicowe:
•Open
•High
•Low
•Close
Rysowana cena w Meta Trader to
zawsze cena Bid !
Świeca z punktu widzenia kodu MQL
2015-10-15Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego28
Za pomocą zmiennych tablicowych możemy pobrać cenę
historyczną świecy: Open, High, Low, Close
Operacje na danych
2015-10-15Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego29
 Operacje arytmetyczne: +, -, *, /, ++, --
 Operacje relacji: ==, !=, <, >, <=, >=
 Operacje logiczne: &&, ||, !
Zmienne predefiniowane
2015-10-15Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego30
 Do zmiennych predefiniowanych mamy dostęp
automatycznie, nie musimy się martwić o to dana
zmienna została zainicjalizowana.
 Dzięki zmiennym predefiniowanym mamy dostęp do
informacji na temat wykresu.
 Open, High, Low, Close to zmienne tablicowe.
Deklaracja i definicja funkcji
2015-10-15Tomasz Waszczyk - Wprowadzenie do
Handlu Automatycznego
31
int dodawanie(int a, int b){
return a + b;
}
Pętle
2015-10-15Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego32
 If-else
 for
 Podczas następnego szkolenia przedstawię kolejne
rodzaje pętli.
Komentarze
2015-10-15Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego33
 Jednoliniowe
 Blokowe
Ogólna struktura programu typu Expert
Advisor
2015-10-15Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego34
OnInit();
OnDeinit();
OnTick();
Implementujemy naszą pierwszą strategię
automatyczną, założenia
2015-10-15Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego35
 Warunek kupna:
Implementujemy naszą pierwszą strategię
automatyczną, założenia
2015-10-15Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego36
 Warunek sprzedaży:
Wykorzystane mechanizmy oraz funkcje w
strategii
2015-10-15
Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego
37
 Dyrektywy preprocesora
 void MaAktualneWartosci()
 iMA()
 OnTick()
 Print()
 OrderSend() + Magic Number
 Obsługa poślizgu cenowego
Często pojawiające się pytania
 Od czego należy rozpocząć naukę programowania
dla osoby zielonej w programowaniu ?
 Czy kompletny laik może nauczyć się pisać w MQL?
 Jakie jest najlepsze źródło informacji na temat
języka MQL ?
38 Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego 2015-10-15
Dziękuję za poświęcony czas oraz uwagę
2015-10-15Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego39
 Zapraszam do dyskusji
Tomasz Waszczyk
tomasz@waszczyk.com
Disclaimer
2015-10-15Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego40
 „Niniejsza prezentacja jest efektem wspólnych prac Domu Maklerskiego TMS Brokers S.A. oraz Pana Tomasza Waszczyka

 Materiały zawarte w niniejszej prezentacji mają charakter edukacyjny i nie stanowią działalności maklerskiej polegającej na doradztwie
inwestycyjnym lub wydawaniu rekomendacji o charakterze ogólnym. Zaprezentowane podczas warsztatów (w tym w niniejszej prezentacji)
algorytmy mają charakter jedynie poglądowy w celu zobrazowania i nauki języka programowania modułu Expert Advisor dla systemu
transakcyjnego MetaTrader. Korzystając z algorytmów klient powinien mieć na względzie, że:
 1. Klient wykorzystuje mechanizmy algorytmiczne na własne ryzyko i odpowiedzialność.
 2. Klient ponosi pełną odpowiedzialność za straty lub utracone korzyści związane z realizacją zleceń za pomocą mechanizmów
algorytmicznych. Dotyczy to także prowizji, jakie Klient będzie zobowiązany pokryć w związku z transakcjami, które będą zawierane w
oparciu o algorytm, nawet przy ich znacznej ilości.
 3. Klient odpowiada za opóźnione wygenerowanie lub niewygenerowanie lub błędne wygenerowanie zleceń za pomocą mechanizmów
algorytmicznych. W szczególności Klient ponosi odpowiedzialność za ww. zdarzenia powstałe w wyniku błędów w oprogramowaniu
mechanizmów algorytmicznych.
 4. Nie można zagwarantować osiągnięcia określonego wyniku finansowego na transakcjach zawartych z wykorzystaniem
mechanizmów algorytmicznych.
 5. Transakcje realizowane za pomocą mechanizmów algorytmicznych traktowane są jako transakcje zawierane przez Klienta.
 6. Składanie, usuwanie lub modyfikowanie zleceń z wykorzystaniem mechanizmów algorytmicznych traktowane jest jako zlecenia
złożone przez Klienta.
 7. W wersji webowej oraz mobilnej systemu transakcyjnego może nie istnieć możliwość uruchomienia strategii automatycznych.
 8. Wszelkie przykładowe strategie algorytmiczne zaprezentowane w czasie niniejszego szkolenia mają jedynie charakter edukacyjny i
nie powinny być stosowne na rachunkach rzeczywistych.

 Dom Maklerski TMS Brokers S.A. podlega nadzorowi Komisji Nadzoru Finansowego i prowadzi działalność maklerską na podstawie
zezwolenia z dnia 26 kwietnia 2004 r. (KPWiG-4021-54-1/2004). Kontakt: Skylight Ul. Złota 59; 00-120 Warszawa, Polska; Tel.: +48 22 27
66 200”

More Related Content

Similar to Programowanie automatycznych strategii transakcyjnych czesc podstawowa

Forex 3-strategie-i-systemy-transakcyjne
Forex 3-strategie-i-systemy-transakcyjneForex 3-strategie-i-systemy-transakcyjne
Forex 3-strategie-i-systemy-transakcyjne
Przemysław Wolny
 
Forex - strategie inwestycyjne
Forex - strategie inwestycyjneForex - strategie inwestycyjne
Forex - strategie inwestycyjne
Ebooki za darmo
 
Forex strategie inwestycyjne
Forex strategie inwestycyjneForex strategie inwestycyjne
Forex strategie inwestycyjne
Radoslaw Wolny
 
Comarch optima marta czapczyk
Comarch optima  marta czapczykComarch optima  marta czapczyk
Comarch optima marta czapczyk
Marta Czapczyk
 
Case study eCommerce od OEX Divante
Case study eCommerce od OEX DivanteCase study eCommerce od OEX Divante
Case study eCommerce od OEX Divante
Divante
 
Piotr Surdel strategie i systemy transakcyjne
Piotr Surdel strategie i systemy transakcyjnePiotr Surdel strategie i systemy transakcyjne
Piotr Surdel strategie i systemy transakcyjne
Wolny Przemysław
 
Wybór platformy ecommerce Tomek Karwatka e-Handel 2011
Wybór platformy ecommerce Tomek Karwatka e-Handel 2011Wybór platformy ecommerce Tomek Karwatka e-Handel 2011
Wybór platformy ecommerce Tomek Karwatka e-Handel 2011
ekomercyjnie
 
Businesstoday - case study
Businesstoday - case studyBusinesstoday - case study
Businesstoday - case study
Divante
 

Similar to Programowanie automatycznych strategii transakcyjnych czesc podstawowa (20)

Wprowadzenie do Algotradingu
Wprowadzenie do AlgotradinguWprowadzenie do Algotradingu
Wprowadzenie do Algotradingu
 
Algo trading
Algo tradingAlgo trading
Algo trading
 
Forex 3-strategie-i-systemy-transakcyjne
Forex 3-strategie-i-systemy-transakcyjneForex 3-strategie-i-systemy-transakcyjne
Forex 3-strategie-i-systemy-transakcyjne
 
Forex - strategie inwestycyjne
Forex - strategie inwestycyjneForex - strategie inwestycyjne
Forex - strategie inwestycyjne
 
Forex strategie inwestycyjne
Forex strategie inwestycyjneForex strategie inwestycyjne
Forex strategie inwestycyjne
 
Comarch optima marta czapczyk
Comarch optima  marta czapczykComarch optima  marta czapczyk
Comarch optima marta czapczyk
 
IV Targi eHandlu Warsztaty Roman Baluta - Orba
IV Targi eHandlu Warsztaty Roman Baluta - Orba IV Targi eHandlu Warsztaty Roman Baluta - Orba
IV Targi eHandlu Warsztaty Roman Baluta - Orba
 
SALESmanago Marketing Automation Profil Produktu - Case Study, Efekty wdrożen...
SALESmanago Marketing Automation Profil Produktu - Case Study, Efekty wdrożen...SALESmanago Marketing Automation Profil Produktu - Case Study, Efekty wdrożen...
SALESmanago Marketing Automation Profil Produktu - Case Study, Efekty wdrożen...
 
Co Ty wiesz o Magento?
Co Ty wiesz o Magento?Co Ty wiesz o Magento?
Co Ty wiesz o Magento?
 
Case study eCommerce od OEX Divante
Case study eCommerce od OEX DivanteCase study eCommerce od OEX Divante
Case study eCommerce od OEX Divante
 
Piotr Surdel strategie i systemy transakcyjne
Piotr Surdel strategie i systemy transakcyjnePiotr Surdel strategie i systemy transakcyjne
Piotr Surdel strategie i systemy transakcyjne
 
Wybór platformy ecommerce Tomek Karwatka e-Handel 2011
Wybór platformy ecommerce Tomek Karwatka e-Handel 2011Wybór platformy ecommerce Tomek Karwatka e-Handel 2011
Wybór platformy ecommerce Tomek Karwatka e-Handel 2011
 
Integration framework dla SAP Business One
Integration framework dla SAP Business OneIntegration framework dla SAP Business One
Integration framework dla SAP Business One
 
Softmax
SoftmaxSoftmax
Softmax
 
Podsumowanie wyników finansowych - 1Q2021
Podsumowanie wyników finansowych - 1Q2021Podsumowanie wyników finansowych - 1Q2021
Podsumowanie wyników finansowych - 1Q2021
 
Podsumowanie wyników finansowych - 1Q2021
Podsumowanie wyników finansowych - 1Q2021Podsumowanie wyników finansowych - 1Q2021
Podsumowanie wyników finansowych - 1Q2021
 
Razem tworzymy, wspieramy, dostarczamy
Razem tworzymy, wspieramy, dostarczamyRazem tworzymy, wspieramy, dostarczamy
Razem tworzymy, wspieramy, dostarczamy
 
Ostatni krok na ścieżce wdrożenia MSSF 16. Jak wesprzeć proces zarządzania um...
Ostatni krok na ścieżce wdrożenia MSSF 16. Jak wesprzeć proces zarządzania um...Ostatni krok na ścieżce wdrożenia MSSF 16. Jak wesprzeć proces zarządzania um...
Ostatni krok na ścieżce wdrożenia MSSF 16. Jak wesprzeć proces zarządzania um...
 
Businesstoday - case study
Businesstoday - case studyBusinesstoday - case study
Businesstoday - case study
 
Rozpocznij swój pierwszy projekt IoT i AR z Tranistion Technologies PSC
Rozpocznij swój pierwszy projekt IoT i AR z Tranistion Technologies PSCRozpocznij swój pierwszy projekt IoT i AR z Tranistion Technologies PSC
Rozpocznij swój pierwszy projekt IoT i AR z Tranistion Technologies PSC
 

More from Tomasz Waszczyk

Jens valloe christiansen
Jens valloe christiansenJens valloe christiansen
Jens valloe christiansen
Tomasz Waszczyk
 
Wzory portfel-inwestycyjnyrynek-kapitalowy
Wzory portfel-inwestycyjnyrynek-kapitalowyWzory portfel-inwestycyjnyrynek-kapitalowy
Wzory portfel-inwestycyjnyrynek-kapitalowy
Tomasz Waszczyk
 
2012 11-03-boersenfuehrerschein-teil6-technische-analyse
2012 11-03-boersenfuehrerschein-teil6-technische-analyse2012 11-03-boersenfuehrerschein-teil6-technische-analyse
2012 11-03-boersenfuehrerschein-teil6-technische-analyse
Tomasz Waszczyk
 
Quant congressusa2011algotradinglast
Quant congressusa2011algotradinglastQuant congressusa2011algotradinglast
Quant congressusa2011algotradinglast
Tomasz Waszczyk
 
C plus plus_for_quantitative_finance
C plus plus_for_quantitative_financeC plus plus_for_quantitative_finance
C plus plus_for_quantitative_finance
Tomasz Waszczyk
 
Sdv 0405 design-pattern_thc_jps_skript
Sdv 0405 design-pattern_thc_jps_skriptSdv 0405 design-pattern_thc_jps_skript
Sdv 0405 design-pattern_thc_jps_skript
Tomasz Waszczyk
 
In tech an-innovative_systematic_approach_to_financial_portfolio_management_v...
In tech an-innovative_systematic_approach_to_financial_portfolio_management_v...In tech an-innovative_systematic_approach_to_financial_portfolio_management_v...
In tech an-innovative_systematic_approach_to_financial_portfolio_management_v...
Tomasz Waszczyk
 
Sdv 0405 design-pattern_thc_jps_skript
Sdv 0405 design-pattern_thc_jps_skriptSdv 0405 design-pattern_thc_jps_skript
Sdv 0405 design-pattern_thc_jps_skript
Tomasz Waszczyk
 

More from Tomasz Waszczyk (20)

Codeconventions 150003
Codeconventions 150003Codeconventions 150003
Codeconventions 150003
 
Repeat after me_8_14_13
Repeat after me_8_14_13Repeat after me_8_14_13
Repeat after me_8_14_13
 
Jens valloe christiansen
Jens valloe christiansenJens valloe christiansen
Jens valloe christiansen
 
Vidyasagar rocond09
Vidyasagar rocond09Vidyasagar rocond09
Vidyasagar rocond09
 
Wzory portfel-inwestycyjnyrynek-kapitalowy
Wzory portfel-inwestycyjnyrynek-kapitalowyWzory portfel-inwestycyjnyrynek-kapitalowy
Wzory portfel-inwestycyjnyrynek-kapitalowy
 
2012 11-03-boersenfuehrerschein-teil6-technische-analyse
2012 11-03-boersenfuehrerschein-teil6-technische-analyse2012 11-03-boersenfuehrerschein-teil6-technische-analyse
2012 11-03-boersenfuehrerschein-teil6-technische-analyse
 
Lm mme090913
Lm mme090913Lm mme090913
Lm mme090913
 
Quant congressusa2011algotradinglast
Quant congressusa2011algotradinglastQuant congressusa2011algotradinglast
Quant congressusa2011algotradinglast
 
1108.1170
1108.11701108.1170
1108.1170
 
Efficient projections
Efficient projectionsEfficient projections
Efficient projections
 
Hsieh etal spl
Hsieh etal splHsieh etal spl
Hsieh etal spl
 
Comparison
ComparisonComparison
Comparison
 
C plus plus_for_quantitative_finance
C plus plus_for_quantitative_financeC plus plus_for_quantitative_finance
C plus plus_for_quantitative_finance
 
4587 11094-1-pb
4587 11094-1-pb4587 11094-1-pb
4587 11094-1-pb
 
G
GG
G
 
Sdv 0405 design-pattern_thc_jps_skript
Sdv 0405 design-pattern_thc_jps_skriptSdv 0405 design-pattern_thc_jps_skript
Sdv 0405 design-pattern_thc_jps_skript
 
Efficient projections
Efficient projectionsEfficient projections
Efficient projections
 
In tech an-innovative_systematic_approach_to_financial_portfolio_management_v...
In tech an-innovative_systematic_approach_to_financial_portfolio_management_v...In tech an-innovative_systematic_approach_to_financial_portfolio_management_v...
In tech an-innovative_systematic_approach_to_financial_portfolio_management_v...
 
Sdv 0405 design-pattern_thc_jps_skript
Sdv 0405 design-pattern_thc_jps_skriptSdv 0405 design-pattern_thc_jps_skript
Sdv 0405 design-pattern_thc_jps_skript
 
Div dax d
Div dax dDiv dax d
Div dax d
 

Programowanie automatycznych strategii transakcyjnych czesc podstawowa

  • 1. Programowanie automatycznych strategii transakcyjnych Część 1 – szkolenie podstawowe (13.10.2015) Tomasz Waszczyk
  • 2. O autorze 2 Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego 2015-10-15 Tomasz Waszczyk Autor książki „Trading Automatyczny” Programista Trader instytucjonalny
  • 3. Disclaimer 2015-10-15Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego3  „Niniejsza prezentacja jest efektem wspólnych prac Domu Maklerskiego TMS Brokers S.A. oraz Pana Tomasza Waszczyka   Materiały zawarte w niniejszej prezentacji mają charakter edukacyjny i nie stanowią działalności maklerskiej polegającej na doradztwie inwestycyjnym lub wydawaniu rekomendacji o charakterze ogólnym. Zaprezentowane podczas warsztatów (w tym w niniejszej prezentacji) algorytmy mają charakter jedynie poglądowy w celu zobrazowania i nauki języka programowania modułu Expert Advisor dla systemu transakcyjnego MetaTrader. Korzystając z algorytmów klient powinien mieć na względzie, że:  1. Klient wykorzystuje mechanizmy algorytmiczne na własne ryzyko i odpowiedzialność.  2. Klient ponosi pełną odpowiedzialność za straty lub utracone korzyści związane z realizacją zleceń za pomocą mechanizmów algorytmicznych. Dotyczy to także prowizji, jakie Klient będzie zobowiązany pokryć w związku z transakcjami, które będą zawierane w oparciu o algorytm, nawet przy ich znacznej ilości.  3. Klient odpowiada za opóźnione wygenerowanie lub niewygenerowanie lub błędne wygenerowanie zleceń za pomocą mechanizmów algorytmicznych. W szczególności Klient ponosi odpowiedzialność za ww. zdarzenia powstałe w wyniku błędów w oprogramowaniu mechanizmów algorytmicznych.  4. Nie można zagwarantować osiągnięcia określonego wyniku finansowego na transakcjach zawartych z wykorzystaniem mechanizmów algorytmicznych.  5. Transakcje realizowane za pomocą mechanizmów algorytmicznych traktowane są jako transakcje zawierane przez Klienta.  6. Składanie, usuwanie lub modyfikowanie zleceń z wykorzystaniem mechanizmów algorytmicznych traktowane jest jako zlecenia złożone przez Klienta.  7. W wersji webowej oraz mobilnej systemu transakcyjnego może nie istnieć możliwość uruchomienia strategii automatycznych.  8. Wszelkie przykładowe strategie algorytmiczne zaprezentowane w czasie niniejszego szkolenia mają jedynie charakter edukacyjny i nie powinny być stosowne na rachunkach rzeczywistych.   Dom Maklerski TMS Brokers S.A. podlega nadzorowi Komisji Nadzoru Finansowego i prowadzi działalność maklerską na podstawie zezwolenia z dnia 26 kwietnia 2004 r. (KPWiG-4021-54-1/2004). Kontakt: Skylight Ul. Złota 59; 00-120 Warszawa, Polska; Tel.: +48 22 27 66 200”
  • 4. Agenda  Co to jest automat transakcyjny ?  Platforma MetaTrader od strony programisty  Wady i zalety automatów transakcyjnych  Wprowadzenie do MetaEditor oraz języka MQL  Struktura świeczki w języku MQL  Omówienie najprostszego automatu transakcyjnego  Wysyłanie zleceń transakcyjnych oraz obliczanie poziomów stop loss w praktyce  W jaki sposób testować nasz automat – Tester Strategii wady i zalety 4 Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego 2015-10-15
  • 5. Założenia prezentacji 2015-10-15Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego5  Dla każdego kto jest zainteresowany handlem automatycznym, adresatami prezentacji są osoby początkujące  Pracownikom oraz osobom związanym z IT będzie łatwiej (na początku)  Sesja pytań i odpowiedzi na koniec prezentacji  Przedstawione treści są subiektywnym zdaniem autora  Prezentacja przeprowadzona na platformie TMS Trader (build 890)
  • 6. Cel prezentacji 2015-10-15Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego6  Każdy uczestnik po skończeniu prezentacji będzie wiedzieć jak uczyć się dalej języka MQL4 i rozwijać swoje umiejętności w tej dziedzinie.  Zachęcić do eksperymentowania, programowania oraz rozwoju.
  • 7. Kontekst prezentacji 7 Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego 2015-10-15 https://www.youtube.com/watch?v=Xmudle0HjWk Struktura działu handlu w instytucji.
  • 8. Co to jest algorytm? 2015-10-15Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego8  Algorytm – jednoznaczny przepis obliczenia w skończonym czasie pewnych danych wejściowych do pewnych danych wynikowych.  https://pl.wikipedia.org/wiki/Algorytm  „Algorytmika to serce inżynierii oprogramowania.”
  • 9. Handel algorytmiczny Cena rynkowa 9 Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego 2015-10-15 Automat transakcyjny Decyzja transakcyjna Handel Algorytmiczny – analiza oraz składanie zleceń transakcyjnych za pomocą programu komputerowego dzięki wcześniej zdefiniowanym i zaimplementowanym instrukcjom. Handel manualny Handel automatyczny (wspomagany oprogramowaniem) Przejście z handlu manualnego na automatyczny:
  • 10. Automatyzacja handlu 2015-10-15Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego10  Rozwijanie funkcjonalności platformy MetaTrader: - Zamykanie zleceń o konkretnej godzinie - Szybsze składanie zleceń, piramidowanie - Automatyzacja analizy wykresów - Ukrywanie poziomów SL oraz TP - Wyliczanie ryzyka mając wiele rachunków Cel: Maksymalne uproszczenie pracy tradera aby mógł skupić się jedynie na tym co dla niego najważniejsze.
  • 11. Wady i zalety handlu automatycznego 2015-10-15Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego11  Automat pozwala generować sygnały transakcyjne według określonych przez programistę reguł oraz składać zlecenia. Zalety: -Nigdy się nie męczy, może pracować 24h/dobę -Szybkość reakcji -Konsekwencja w działaniu Wady: -Umiejętność programowania -Trudności technologiczne -Wydarzenia losowe (przerwa w dostawie energii elektrycznej) -Czas potrzebny na testowanie -Redukcja emocji (?)
  • 12. Czym jest MQL4? 2015-10-15Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego12  MQL4 – MetaQuotes Language 4 – jest częścią platformy MetaTrader 4  Środowisko uruchomieniowe programów napisanych w MQL ogranicza się do platformy Meta Trader 4, język ten jest bardzo podobny do popularnych języków takich jak C/C++
  • 13. Historia rozwoju języka MQL 2015-10-15Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego13  Rewolucja w języku podczas wydania oznaczonego „Build 600”  W MQL4 mamy dostęp do programowania obiektowego  Dostęp do MQL5 Storage  http://docs.mql4.com/mql4changes#compiler_differe nce
  • 14. Kod źródłowy a plik wykonywalny 2015-10-15Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego14 Kompilator Kod źródłowy – plik tekstowy z rozszerzeniem *.mq4 Plik wykonywalny – plik z rozszerzeniem *.ex4 który jest wykonywany w środowisku MetaTrader 4
  • 15. Typy programów jakie możemy tworzyć w MQL4 2015-10-15Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego15  Automatyczne systemy transakcyjne (Expert Advisors)  Wskaźniki własne (Custom Indicators)  Skrypty (Scripts)  Biblioteki  Pliki wsadowe *.mqh
  • 16. Expert Advisors w MetaTrader 4 2015-10-15Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego16  Programy mające możliwość generowania sygnałów transakcyjnych, ściśle zintegrowane z wykresem konkretnego waloru na którym chcemy handlować. Podczas implementacji należy określić ściśle warunki wejścia w pozycję, wyjścia z niej oraz poziomów SL oraz TP. Strategia automatyczna wykonuje się przy każdorazowym odświeżeniu ceny.  Przykład użycia: automatyzacja strategii bazującej na podążaniu za trendem
  • 17. Wskaźniki własne (Custom Indicators) 2015-10-15Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego17  Programy zintegrowane z konkretnym wykresem, wykonujące obliczenia przy każdorazowym odświeżeniu ceny analizowanego waloru.  Przykład użycia: pokazanie graficzne ATR, pokazanie czasu do końca świeczki  Przy korzystaniu ze wskaźników należy zwrócić uwagę na tzw. “repaiting”.
  • 18. Skrypty (Scripts) 2015-10-15Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego18  Skrypty przeznaczone są do wykonania jednego lub większej ilości zadań na „polecenie” użytkownika poczym wyłączenie się.  Przykład użycia: zamknięcie wszystkich transakcji.
  • 19. Zaczynamy programować czyli „Hello World” w użyteczny sposób… 2015-10-15Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego19  Skrypt – usunięcie wszystkich elementów z wykresu
  • 20. Konfiguracja Meta Trader 2015-10-15Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego20
  • 21. Konfiguracja Meta Trader c.d. 2015-10-15Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego21 Handel zezwolono, strategia automatyczna włączona: Handel nie zezwolono, strategie automatyczne wyłączone:
  • 22. Meta Editor – miejsce programisty MQL 2015-10-15Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego22  Edytor kodu źródłowego, wbudowany w Meta Trader  Wspomaga tworzenie i edycję kodu źródłowego MQL4 (podpowiadanie kodu)  Pozwala na kompilację kodu źródłowego w kod wykonywalny  Zintegrowany z MQL4 Community  Możliwości uruchomienia: - nacisnąć klawisz F4 z poziomu Meta Trader 4 - klikając w ikonę - „Narzędzia” -> „Edytor języka MQL”
  • 23. Podstawowe elementy języka MQL 2015-10-15Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego 23  Typy danych, stałe, zmienne  Deklaracje zmiennych  Tablice  Operacje na danych  Zmienne predefiniowane  Deklaracja i definicja funkcji  Pętle  Komentarze
  • 24. Proste typy danych 2015-10-15Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego24  Liczby całkowiete(char, short, int, long, uchar, ushort, uint, ulong);  Logiczny (bool);  0-255 (ushort);  Napisy (string);  Liczby zmiennorzpecinkowe (double, float);  Kolor (color);  Data i czas (datetime);  Wyliczenia (enum).
  • 25. Złożone typy danych (abstrakcyjne) 2015-10-15Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego 25  Struktury  Klasy
  • 26. Tablice 2015-10-15Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego26  To zbiór uporządkowanych zmiennych określonego typu danych.  int mojaTablica[5];  Indeksy rozpoczynają się od zera ! !
  • 27. Wykres z punktu widzenia MQL4 2015-10-15Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego27 Zmienne tablicowe: •Open •High •Low •Close Rysowana cena w Meta Trader to zawsze cena Bid !
  • 28. Świeca z punktu widzenia kodu MQL 2015-10-15Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego28 Za pomocą zmiennych tablicowych możemy pobrać cenę historyczną świecy: Open, High, Low, Close
  • 29. Operacje na danych 2015-10-15Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego29  Operacje arytmetyczne: +, -, *, /, ++, --  Operacje relacji: ==, !=, <, >, <=, >=  Operacje logiczne: &&, ||, !
  • 30. Zmienne predefiniowane 2015-10-15Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego30  Do zmiennych predefiniowanych mamy dostęp automatycznie, nie musimy się martwić o to dana zmienna została zainicjalizowana.  Dzięki zmiennym predefiniowanym mamy dostęp do informacji na temat wykresu.  Open, High, Low, Close to zmienne tablicowe.
  • 31. Deklaracja i definicja funkcji 2015-10-15Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego 31 int dodawanie(int a, int b){ return a + b; }
  • 32. Pętle 2015-10-15Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego32  If-else  for  Podczas następnego szkolenia przedstawię kolejne rodzaje pętli.
  • 33. Komentarze 2015-10-15Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego33  Jednoliniowe  Blokowe
  • 34. Ogólna struktura programu typu Expert Advisor 2015-10-15Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego34 OnInit(); OnDeinit(); OnTick();
  • 35. Implementujemy naszą pierwszą strategię automatyczną, założenia 2015-10-15Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego35  Warunek kupna:
  • 36. Implementujemy naszą pierwszą strategię automatyczną, założenia 2015-10-15Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego36  Warunek sprzedaży:
  • 37. Wykorzystane mechanizmy oraz funkcje w strategii 2015-10-15 Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego 37  Dyrektywy preprocesora  void MaAktualneWartosci()  iMA()  OnTick()  Print()  OrderSend() + Magic Number  Obsługa poślizgu cenowego
  • 38. Często pojawiające się pytania  Od czego należy rozpocząć naukę programowania dla osoby zielonej w programowaniu ?  Czy kompletny laik może nauczyć się pisać w MQL?  Jakie jest najlepsze źródło informacji na temat języka MQL ? 38 Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego 2015-10-15
  • 39. Dziękuję za poświęcony czas oraz uwagę 2015-10-15Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego39  Zapraszam do dyskusji Tomasz Waszczyk tomasz@waszczyk.com
  • 40. Disclaimer 2015-10-15Tomasz Waszczyk - Wprowadzenie do Handlu Automatycznego40  „Niniejsza prezentacja jest efektem wspólnych prac Domu Maklerskiego TMS Brokers S.A. oraz Pana Tomasza Waszczyka   Materiały zawarte w niniejszej prezentacji mają charakter edukacyjny i nie stanowią działalności maklerskiej polegającej na doradztwie inwestycyjnym lub wydawaniu rekomendacji o charakterze ogólnym. Zaprezentowane podczas warsztatów (w tym w niniejszej prezentacji) algorytmy mają charakter jedynie poglądowy w celu zobrazowania i nauki języka programowania modułu Expert Advisor dla systemu transakcyjnego MetaTrader. Korzystając z algorytmów klient powinien mieć na względzie, że:  1. Klient wykorzystuje mechanizmy algorytmiczne na własne ryzyko i odpowiedzialność.  2. Klient ponosi pełną odpowiedzialność za straty lub utracone korzyści związane z realizacją zleceń za pomocą mechanizmów algorytmicznych. Dotyczy to także prowizji, jakie Klient będzie zobowiązany pokryć w związku z transakcjami, które będą zawierane w oparciu o algorytm, nawet przy ich znacznej ilości.  3. Klient odpowiada za opóźnione wygenerowanie lub niewygenerowanie lub błędne wygenerowanie zleceń za pomocą mechanizmów algorytmicznych. W szczególności Klient ponosi odpowiedzialność za ww. zdarzenia powstałe w wyniku błędów w oprogramowaniu mechanizmów algorytmicznych.  4. Nie można zagwarantować osiągnięcia określonego wyniku finansowego na transakcjach zawartych z wykorzystaniem mechanizmów algorytmicznych.  5. Transakcje realizowane za pomocą mechanizmów algorytmicznych traktowane są jako transakcje zawierane przez Klienta.  6. Składanie, usuwanie lub modyfikowanie zleceń z wykorzystaniem mechanizmów algorytmicznych traktowane jest jako zlecenia złożone przez Klienta.  7. W wersji webowej oraz mobilnej systemu transakcyjnego może nie istnieć możliwość uruchomienia strategii automatycznych.  8. Wszelkie przykładowe strategie algorytmiczne zaprezentowane w czasie niniejszego szkolenia mają jedynie charakter edukacyjny i nie powinny być stosowne na rachunkach rzeczywistych.   Dom Maklerski TMS Brokers S.A. podlega nadzorowi Komisji Nadzoru Finansowego i prowadzi działalność maklerską na podstawie zezwolenia z dnia 26 kwietnia 2004 r. (KPWiG-4021-54-1/2004). Kontakt: Skylight Ul. Złota 59; 00-120 Warszawa, Polska; Tel.: +48 22 27 66 200”