MetaTrader 4 - Przykłady Jak zbudować i przetestować strategię opcji binarnych z MetaTrader 4 Strategy Tester Spis treści 1. Wprowadzenie W tym artykule przedstawiono sposób budowania strategii opcji binarnych i przetestowanie jej w strategii-testerze Metatrader 4 przy użyciu opcji binarnych - Narzędzie Strategy-Tester. Domyślnie Strateg-Tester Metatrader 4 może przetestować ekspertyzy i wskaźniki dotyczące danych historycznych, ale nie może obsługiwać opcji binarnych z upływem czasu. Ponieważ potrzebna jest możliwość testowania strategii Binary Options zautomatyzowanych w programie Strategy-Tester programu MetaTrader 4, to narzędzie typu Binary-Options-Strategy-Tester zostało zaprojektowane tak, aby spełniał te potrzeby. Koncepcja zawiera następujące części: Oto przykład krok po kroku, jak zbudować strategię opcji binarnych przechowywaną w wskaźniku (oznaczonym jako czerwony na obrazku powyżej), aby komunikować się za pośrednictwem biblioteki Binary-Options-Strategy-Library (oznaczonej jako zielony na powyższym obrazku) ) za pomocą Binary-Options-Strategy-Tester (oznaczonego jako niebieski na obrazku powyżej), aby umieścić zamówienia wirtualne i liczyć ich wyniki z testami wstecznymi i testami do przodu. Pamiętaj: sprawdzanie danych historycznych nigdy nie stanowi prawdziwej przyszłości, ale może przydać się przybliżonej wartości, aby Twoja strategia była bardziej stabilna. Jakość testów zależy od danych historycznych. Dlatego zalecane jest użycie zestawu danych o wysokiej jakości. 2. Instalacja Pobieranie i zakup narzędzi Binary-Options-Strategy-Tester z rynku: Test-Framework do testowania strategii opcji binarnych w programie Strategy-Tester programu MetaTrader 4. Dlaczego zakupiona wersja narzędzia Binary-Options-Strategy-Tester Strategia Binary-Options musi wywołać funkcję Binary-Options-Strategy-Tester (poprzez Binary-Options-Strategy-Library), aby umieścić wirtualne transakcje. Podobne do koncepcji licencji MQL4 działa tylko wtedy, gdy produkt ma licencję na pracę. Dlatego musisz kupić produkt, aby przetestować strategie opcji typu binarnego lub ten przykład. Pobierz darmową bibliotekę BinaryOptionsStrategyLibrary. mqh i umieść ją w folderze Include (ścieżka do MetaTrader 4MQL4Include): Bezpłatna biblioteka dostarczy kilku funkcji, aby łatwo wygenerować strategię opcji Binary Options i komunikować się z Binary-Options-Strategy-Tester. Więcej informacji na temat biblioteki zawiera sekcja Binary-Options-Strategy-Library. Pobierz bezpłatny wskaźnik KVO. mq4 i umieść go (i skompilowany plik KVO. ex4) w folderze IndicatorsDownloads (ścieżka do MetaTrader 4MQL4IndicatorsDownloads): Wskaźnik KVO służy jako przykład pokazujący dostęp do zewnętrznych wskaźników i tam ex4 pliki w sekcji 3.2.6 Korzystanie z zewnętrznych wskaźników (plików ex4). Więcej informacji na temat wskaźnika zawiera mql5encode8677. Teraz możesz przejść dalej do sekcji 3. Przykład strategii opcji binarnych i samemu zbudować przykładowy kod lub po prostu pobrać kod z poniższego przykładu. Opcjonalnie pobierz BinaryOptionsStrategyExample. mq4 i umieść go (i skompilowany plik BinaryOptionsStrategyExample. ex4) w folderze Indicators (ścieżka do MetaTrader 4MQL4Indicators): Pobierz kod tego przykładu strategii Binary Options, aby uruchomić go bez jego budowy. Aby skompilować potrzebne pliki. ex4, otwórz pliki. mq4 (KVO. mq4 i BinaryOptionsStrategyExample. mq4 - NIE Binary-Options-Strategy-Library. mqh) w edytorze języków MetaQuotes i kliknij przycisk Kompiluj lub po prostu zrestartuj MetaTrader 4 po tych plikach są przechowywane w opisywanych folderach, a MetaTrader 4 automatycznie to uczyni. 3. Przykład strategii strategii Binarnych Poniższe kroki pomogą Ci zrozumieć, jak zbudować przykładową strategię opcji binarnych zapisaną w wskaźniku, aby komunikować się z programem Binary-Options-Strategy-Tester. Można go samodzielnie zbudować lub po prostu pobrać kod BinaryOptionsStrategyExample. mq4. Uwaga: Ta strategia nie jest opłacalną strategią opcji binarnych Jest to tylko przykład, jak zbudować strategię w wskaźniku komunikowania się z narzędziem Binary-Options-Strategy-Tester. Oczywiście musisz samemu zbudować korzystną strategię. Ale jak widać, to narzędzie pomoże Ci przetestować i ulepszyć strategię opcji binarnych. 3.1 Definiowanie strategii opcji binarnych Przede wszystkim musimy zdefiniować strategię i wartości zmienne (parametry wejściowe). Dokumentacja MQL4 zawiera wszystkie wskaźniki techniczne, które mogą być wyświetlane w interfejsie iCustom: docs. mql4indicators. Powiedzmy, że chcielibyśmy stworzyć prostą strategię przecięcia średniej ruchomości z jedną szybką i jedną wolną średnią ruchową, aby móc handlować następną świeczką po przekroczeniu siebie. Dokumentacja mówi, w jaki sposób możemy uzyskać wartość jednej Ruchomej Średniej: docs. mql4indicatorsima. Powiedzmy jeszcze, że chcemy wybrać wartości dla okresu uśredniania MA (szybkiego i wolnego) oraz dla ceny stosowanej, a także metody uśredniania. Inne wartości (takie jak symbol, ramka czasowa i zmiana) zależą od testcase (np. Symbol tester uruchomiony) i powinien być ustawiony automatycznie. Dlatego potrzebujemy zasadniczo następujących zmiennych dla Moving Average: int maperiod int mamethod int usedprice Ponieważ potrzebujemy dwóch średnich kroczących, aby sprawdzić ich krzyże, potrzebujemy następujących parametrów wejściowych dla przykładu strategii z niektórymi wartościami domyślnymi: int periodfast 5 int periodload 10 int methodboth 0 int appliedpriceboth 0 3.2 Tworzenie strategii opcji binarnych Musisz zbudować wskaźnik, który przechowuje strategię opcji binarnych, aby przeciągnąć ją na wykresie, na którym działa Binary-Options-Strategy-Tester. Otwórz Edytor języków MetaQuotes (w MetaTrader 4 kliknij na Tools - gt MetaQuotes Language Editor lub po prostu naciśnij F4) i kliknij na New: pojawi się Kreator MQL. Wybierz opcję Niestandardowy wskaźnik, aby utworzyć pusty wskaźnik i kliknij Dalej: wprowadź nazwę, prawa autorskie i linię strategii, a także parametry wejściowe z ich typami i wartościami domyślnymi (wartości początkowe), klikając przycisk Add (Dodaj) i naciśnij Dalej: Na karcie obsługa zdarzeń zaznacz pole wyboru OnCalculate, ponieważ potrzebujemy tego zdarzenia, aby sprawdzić naszą strategię na każdym zaznaczeniu. Naciśnij Dalej: Właściwości rysowania na karcie Zaznacz pole wyboru Wskaźniki w oddzielnym oknie, ponieważ potrzebujemy oddzielnego okna, aby wydrukować wartości debugowania. Naciśnij przycisk Zakończ: początkowy kod Twojego wskaźnika pojawi się: -------------------------------------- ---------------------------- BinaryOptionsStrategyExample. mq4 Copyright 2018, martin mql5enusersmartin -------------- -------------------------------------------------- - własność praw autorskich Copyright 2018, martin property link mql5enusersmartin właściwość wersja 1.00 właściwość ścisła właściwość indicatorseparatewindow --- parametry wejściowe input int periodfast 5 wejścia int periodlow 10 input int methodboth 0 input int usedpriceboth 0 ----------- -------------------------------------------------- ----- Funkcja inicjalizacji wskaźnika niestandardowego ----------------------------------------- ------------------------- int OnInit () --- mapowanie buforów wskaźników 3.2.1 Parametry wejściowe Parametry początkowe są tworzone za pomocą Kreatora MQL (patrz 3.2 Tworzenie strategii opcji binarnych), a następnie wzmocnimy je następującymi krokami. Aby uniknąć wprowadzania int-wartości dla stosowanej metody ceny i uśredniania średnich kroczących dla parametrów wejściowych, typ metody methodboth i usedpriceboth jest zmieniany z int na typ wyliczenia z wartością domyślną. Dodatkowo komentarze dotyczące parametrów wejściowych są dodawane w celu wyświetlenia komentarzy jako etykiet zamiast nazw zmiennych: --- parametry wejściowe wejściowe int periodfast 5 szybkie wartości wejściowe wejściowych wartości wejściowych MA 10 powolne wejście wartości MA metoda ENUMMAMETHOD metoda metody MODESMA MA wartość ENUMAPPLIEDPRICE stosowana PRICECLOSE MA zastosowana cena Z tymi modyfikacjami parametry wejściowe udostępnia listę rozwijaną z dostępnymi wartościami do wyboru, jak również etykietami parametrów wejściowych: 3.2.2 Uwzględnij opcje binarne-opcje-strategia-biblioteka Jeśli biblioteka została pobrana i zapisana (zobacz 2. Instalacja ) do folderu Dołącz (ścieżka do MetaTrader 4MQL4Include), możesz umieścić bibliotekę w następujący sposób: ---------------------------- -------------------------------------- BinaryOptionsStrategyExample. mq4 Copyright 2018, martin mql5enusersmartin ---- -------------------------------------------------- ------------ prawo własności Copyright 2018, martin property link mql5enusersmartin property versi na 1.00 właściwych ścisłych wskaźnikach dotyczących nieruchomościbibliotekawindow Biblioteka będzie dostępna tylko w sposób opisany w powyższym przykładzie, jeśli umieścisz go w folderze Dołącz w programie MetaTrader 4. Zmiana biblioteki biblioteki nie jest potrzebna Binarnie-Opcje-Strategia-Biblioteka zwiększy wkład parametry z dwoma nowymi parametrami: Umieść tylko jedną transakcję SPRZEDAJ lub jeden KUP na świecę Sprawdź tylko na początku nowej świecy dla strategii 3.2.3 Dodawanie CallStrategy () Dodanie połączenia do CallStrategy () - funkcja w OnCalculate () strategicznego wskaźnika strategii dla każdego nowego kleszcza. CallStrategy () jest dostarczany przez bibliotekę Binary-Options-Strategy-Library zawierającą opisane powyżej: CallStrategy () wywołanie strategii, funkcja znajduje się w BinaryOptionsStrategyLibrary. mqh (włączona powyżej) CallStrategy () - funkcja w Binary-Options-Strategy - Biblioteka wywołuje funkcję wskaźnika CheckMyRules () w swoim wskaźniku, w którym można umieścić warunki dla strategii Binary Options. Dlatego musisz wdrożyć funkcję CheckMyRules () w wskaźniku strategii opcji Binary Options. 3.2.4 Implementacja CheckMyRules () i funkcji pomocniczej W funkcji CheckMyRules () - która jest wywoływana przez bibliotekę Binary-Options-Strategy-Library, wprowadzane są warunki dla strategii, a transakcje są umieszczane za pośrednictwem funkcji PlaceTrade () - funkcji biblioteka. Wartości obu średnich kroczących są tymczasowo przechowywane w zmiennych w celu porównania ich w stanach if, podczas gdy wartości średnich kroczących pobierane są z funkcji pomocniczej GetValuesForMA (): --- parametry wejściowe wejściowe periodfast 5 szybkie wartości wejściowe wejściowych wartości wejściowych MA 10 Powolna wartość wejścia MA Metoda ENUMMAMETHOD metoda metody MODESMA MA wartość ENUMAPPLIEDPRICE stosowana cena DI PRICECLOSE MA --------------------------------- --------------------------------- Umieść swoje zasady handlowe tutaj - patrz przykład poniżej. StrategyTester wywołuje tę funkcję w celu umieszczenia transakcji. NIE: - Zmień nazwę funkcji - dodaj paramatery funkcji, np. CheckMyRules (int a) - typ zwrotu typu change, np. int CheckMyRules () ---------------------------------------------- -------------------- void CheckMyRules () Zachowaj wartości MA z przesunięciem0 (aktualna świeca) - gt bieżącą świecę, funkcję pomocnika wywołania GetValueForMA (), aby uzyskać wartość - zobacz Funkcje pomocnika poniżej podwójnej emaSlowCurrent GetValueForMA (periodlow, 0) double emaFastCurrent GetValueForMA (periodfast, 0) Zapisywanie wartości MA z przesunięciem1 (ostatnia świeca) - gt ostatnia świeca, funkcja pomocnika wywołania GetValueForMA (), aby uzyskać jej wartość - zobacz pomocnicze funkcje poniżej double emaSlowPast GetValueForMA (periodlow, 1) double emaFastPast GetValueForMA (periodfast, 1) if (emaFastPast gt emaSlowPast ampamp emaFastCurrent lt emaSlowPast) Sprawdź, czy powolna macierz MA i szybka krzywa PlaceTrade (OPSELL) Miejsce SPRZEDAJ SPRZEDAJĄCEGO dla Strategy-Tester, w BinaryOptionsStrategyFunctions. mqh if (emaFastPast lt emaSlowPast ampamp emaFastCurrent gt emaSlowPast) Sprawdź, czy powolna macierz MA i szybka krzyżowa PlaceTrade (OPBUY) Miejsce KUP-Handel dla Strategy-Tester, funkcja i s znajduje się w BinaryOptionsStrategyFunctions. mqh 3.2.5 Drukowanie wartości debugowania Funkcja PrintDebugValue () umożliwia wydrukowanie wartości debugowania podczas uruchamiania testera. W poniższym przykładzie wartości średnich kroczących są drukowane z nazwami ich zmiennych jako etykietami: --- parametry wejściowe wejściowe periodfast 5 szybkie wartości wejściowe wejściowych wartości wejściowych MA 10 powolne wejście wartości MA metoda ENUMMAMETHOD metoda metody MODESMA MA wartość ENUMAPPLIEDPRICE stosowana wartość PRICECLOSE MA cena stosowana ------------------------------------------------ ------------------ Umieść tutaj swoje zasady handlowe - patrz przykład poniżej. StrategyTester wywołuje tę funkcję w celu umieszczenia transakcji. NIE: - Zmień nazwę funkcji - dodaj paramatery funkcji, np. CheckMyRules (int a) - typ zwrotu typu change, np. int CheckMyRules () ---------------------------------------------- -------------------- void CheckMyRules () Zachowaj wartości MA z przesunięciem0 (aktualna świeca) - gt bieżącą świecę, funkcję wywołania funkcji GetValueForMA (), aby uzyskać jej wartość - zobacz Funkcje pomocnika poniżej podwójnej emaSlowCurrent GetValueForMA (periodlow, 0) double emaFastCurrent GetValueForMA (periodfast, 0) Zapisywanie wartości MA z przesunięciem1 (ostatnia świeca) - gt ostatnia świeca, funkcja pomocnika wywołania GetValueForMA (), aby uzyskać jej wartość - zobacz pomocnicze funkcje poniżej double emaSlowPast GetValueForMA (periodlow, 1) double emaFastPast GetValueForMA (periodfast, 1) PrintDebugValue (emaSlowCurrent:, (ciąg) emaSlowCurrent, 0) etykieta i wartość w wierszu 0 PrintDebugValue (emaFastCurrent:, (ciąg) emaFastCurrent, 1) etykieta i wartość w wiersz 1 PrintDebugValue (emaSlowPast :, (ciąg) emaSlowPast, 2) etykieta i wartość w wierszu 2 PrintDebugValue (emaFastPast :, (string) emaFastPast, 3) etykieta i wartość w wierszu 3 jeśli (emaFastPast gt emaSlowPast ampamp emaFast Obecny lt emaSlowPast) Sprawdź, czy powoli MA i szybko przechodzi krzywe PlaceTrade (OPSELL) Miejsce SPRZEDAĆ SPRZEDAŻY dla Strategii-Tester, funkcja znajduje się w BinaryOptionsStrategyFunctions. mqh if (emaFastPast lt emaSlowPast ampamp emaFastCurrent gt emaSlowPast) Sprawdź, czy powolne MA i szybkie krzyże MA PlaceTrade (OPBUY) Miejsce KUP-Handel dla Strategy-Tester, funkcja znajduje się w BinaryOptionsStrategyFunctions. mqh 3.2.6 Użycie zewnętrznych wskaźników (pliki ex4) Dodatkowo można uzyskać dostęp do zewnętrznego wskaźnika, który przechowuje jego wartości w buforach, w strategii Binary Options , nawet jeśli istnieje tylko skompilowany plik ex4. Powiedzmy, że chcemy umieścić linię sygnału wskaźnika KVO mql5encode8677, aby zamawiać transakcje tylko wtedy, gdy linia sygnału przekracza wartość 0 dla transakcji kupna i poniżej 0 dla transakcji SPRZEDAJ. Pobierz wskaźnik KVO. mq4 i umieść skompilowany plik (ex4) w folderze IndicatorsDownloads (ścieżka do MetaTrader 4MQL4IndicatorsDownloads). Aby skompilować potrzebny plik. ex4, otwórz KVO. mq4 w edytorze języków MetaQuotes i kliknij przycisk Kompiluj lub po prostu zrestartuj MetaTrader 4 po zapisaniu pliku w opisanym folderze, a program MetaTrader 4 zrobi to automatycznie. Najpierw musimy zidentyfikować odpowiednie bufory, które przechowują odpowiednie wartości w celu uzyskania dostępu. Dlatego w oknie MetaTrader 4 wciśnij przycisk Data Window, aby wyświetlić wszystkie dostępne bufory wskaźników i przeciągnij wskaźnik KVO na wykresie. Powtarzając krzyżykiem na wykresie (naciskaj przycisk myszy na wykresie, aby wyświetlić krzyżyk), w oknie danych zostaną wyświetlone wartości buforu wskaźnika zawieszonego timeperiodu: etykiety okna danych informują o drugiej wartości buforu wskaźnika przechowuje linię sygnału. Jeśli bufory wskaźników nie mają etykiet, możemy znaleźć właściwą, porównując wartości buforu z wyświetloną wartością pod krzyżykiem na wykresie i wskaźniku. Bufory wskaźnika zaczynają się od 0, więc mamy wartość buforu 1 bufor 0, wartość buforu 2 bufor 1 itd. I musimy uzyskać dostęp do bufora 1, aby uzyskać wartość sygnału. Następnie musimy znać wszystkie parametry wejściowe zewnętrznego wskaźnika, który chcemy uzyskać. Przeciągając wskaźnik na wykresie widzimy wszystkie paramezy wejściowe: powiedzmy dalej, chcemy uzyskać dostęp do wskaźnika z wartościami (domyślnymi): 34, 55 i 13. Używamy funkcji pomocniczej (na podstawie iCostum), która daje nam możliwość pobierania wartości wskaźnika z parametrami buforu i przesunięcia, podczas gdy zmiana 0 będzie wartością aktualnej świecy, przesuń 1 wartość ostatniej świecy, przesuń 2 wartość drugiej na ostatnią świecę i wkrótce. Dodatkowo tymczasowo przechowujemy wartości bufora wskaźników i zwiększamy warunek, jeśli strategia: --- parametry wejściowe wejściowe periodfast 5 szybkie wartości wejściowe wejść wejściowych MA 10 niskie wejście wartości MA ENUMMAMETHOD metoda metody wejścia MODESMA MA wartość ENUMAPPLIEDPRICE stosowana wartość PRICECLOSE MA stosowana cena ----------------------------------------------- ------------------- Umieść tutaj swoje zasady handlowe - patrz przykład poniżej. StrategyTester wywołuje tę funkcję w celu umieszczenia transakcji. NIE: - Zmień nazwę funkcji - dodaj paramatery funkcji, np. CheckMyRules (int a) - typ zwrotu typu change, np. int CheckMyRules () ---------------------------------------------- -------------------- void CheckMyRules () Zachowaj wartości MA z przesunięciem0 (aktualna świeca) - gt bieżącą świecę, funkcję pomocnika wywołania GetValueForMA (), aby uzyskać wartość - zobacz Funkcje pomocnika poniżej podwójnej emaSlowCurrent GetValueForMA (periodlow, 0) double emaFastCurrent GetValueForMA (periodfast, 0) Zapisywanie wartości MA z przesunięciem1 (ostatnia świeca) - gt ostatnia świeca, funkcja pomocnika wywołania GetValueForMA (), aby uzyskać jej wartość - zobacz pomocnicze funkcje poniżej podwójny emaSlowPast GetValueForMA (periodlow, 1) podwójny emaFastPast GetValueForMA (okresowa, 1) Zapisuje wartość sygnału (bufor 1) wskaźnika KVO z aktualnej świecy (przesunięcie 0) podwójnie kvoSignal GetValuesFromIndicatorKVO (1. 0) PrintDebugValue (emaSlowCurrent :, (string) emaSlowCurrent , 1) Etykieta i wartość w wierszu 1 PrintDebugValue (emaSlowPast :, (ciąg) emaSlowPast, 2) Etykieta i wartość w wierszu 2 P (etykieta) i wartość w wierszu 0 PrintDebugValue (emaFastCurrent:, (string) emaFastCurrent, rintDebugValue (emaFastPast :, (string) emaFastPast, 3) etykieta i wartość w wierszu 3, jeśli (emaFastPast gt emaSlowPast ampamp emaFastCurrent lt emaSlowPast Sprawdź, czy powolna macierz MA i szybka krzyżowa ampli kvoSignal lt 0) Sprawdź, czy wartość sygnału KVO wynosi poniżej 0 PlaceTrade (OPSELL) Miejsce SPRZEDAM-Handel dla Strategii-Tester, funkcja znajduje się w BinaryOptionsStrategyFunctions. mqh if (emaFastPast lt emaSlowPast ampamp emaFastCurrent gt emaSlowPast Sprawdź, czy powolna MA i szybka krzyżowa krzywa MA amp; kvoSignal gt 0) Sprawdź, czy wartość sygnału KVO wynosi ponad 0 PlaceTrade (OPBUY) Miejsce KUP-Handel dla Strategy-Tester, funkcja znajduje się w BinaryOptionsStrategyFunctions. mqh ------------------------------ ------------------------------------ Zdobądź wartości MA dla okresu, metody, stosowanej ceny i zmiany. Szczegółowe informacje o iMA () znajduje się w doks. mql4indicatorsima ---------------------------------------- -------------------------- podwójny GetValueForMA (int okres, int shift) zwraca iMA (NULL 0, okres, 0, methodboth, usedpriceboth, przesunięcie) ------------------------------------------------ ----------------- Przykładowy sposób pobierania wartości z zewnętrznych wskaźników patrz docs. mql4indicatorsicustom Parametry: bufor int - bufor wskaźników (start z 0) int shift - wartość do przesunięcia 0 obecna świeca, 1 poprzednia świeca -------------------------------------------- ---------------------- podwójny GetValuesFromIndicatorKVO (bufor int, int shift 0) Zmiana KVO na wskaźnik nazwy wskaźnika (iCustom (NULL. NULL dla bieżącej ramki czasowej wybranej w testerze - NO CHANGES NEEDED 0. 0 dla bieżącego symbolu wybranego w testerze - ŻADNE ZMIANY NIE MOŻLIWIAJĄ BEGIN EDIT Pliki do pobraniaKVO. ex4.Pliki i nazwa pliku wskaźnika (plik. ex4) BEGIN WSKAŹNIKI WEJŚĆ 34. 55. 13. END FOR INPUTS END EDIT buffer, Indeks buforów (zaczynając od 0), buff (parametr 0 dla aktualnej świecy), przesunięcie jest nadpisywane przez parametr funkcji - NIE ZMIANY MOŻLIWOŚCI)) Możliwe jest również zwiększenie parametrów wejściowych naszego wskaźnika strategicznego z wartościami dla używanego parametru Wskaźnik KVO i ustawia wartości w funkcji pomocnika przez zmienne. Ponieważ ten samouczek powinien być tylko przykładem i tak prosty, jak to możliwe, ten wariant nie jest wyświetlany. 3.3 Kompletny kod Poniżej znajduje się pełny kod Binarnie-Opcje-Strategia-Przykład z wszystkich powyższych kroków, gotowych do przeciągania na Binary-Options-Strategy-Tester, aby przetestować i zobaczyć wyniki na wykresie: --- -------------------------------------------------- ------------- BinaryOptionsStrategyExample. mq4 Copyright 2018, martin mql5enusersmartin ----------------------------- ------------------------------------- prawo własności Copyright 2018, martin property link mql5enusersmartin property version 1.00 property ścisłe wskaźniki właściwości separatewindow ----------------------------------------------- ------------------- Tutaj wprowadź parametry wejściowe - patrz przykład poniżej ---------------------- -------------------------------------------- --- wprowadzanie parametrów wejściowych int periodfast 5 Szybkie wartości wejściowe wartości wejściowych MA 10 Slow MA value input Metoda ENUMMAMETHOD metoda metody MODESMA MA ENUMAPPLIEDPRICE stosowana cena PRICECLOSE MA stosowana cena CallStrategy () Ca ll strategia, funkcja jest locatet w BinaryOptionsStrategyLibrary. mqh (włączone powyżej) --- wartość zwracana prevcalculated dla następnego powrotu połączenia (ratestotal) --------------------- --------------------------------------------- Umieść swoje reguły handlowe tutaj - patrz przykład poniżej. StrategyTester wywołuje tę funkcję w celu umieszczenia transakcji. NIE: - Zmień nazwę funkcji - dodaj paramatery funkcji, np. CheckMyRules (int a) - typ zwrotu typu change, np. int CheckMyRules () ---------------------------------------------- -------------------- void CheckMyRules () Zachowaj wartości MA z przesunięciem0 (aktualna świeca) - gt bieżącą świecę, funkcję pomocnika wywołania GetValueForMA (), aby uzyskać wartość - zobacz Funkcje pomocnika poniżej podwójnej emaSlowCurrent GetValueForMA (periodlow, 0) double emaFastCurrent GetValueForMA (periodfast, 0) Zapisywanie wartości MA z przesunięciem1 (ostatnia świeca) - gt ostatnia świeca, funkcja pomocnika wywołania GetValueForMA (), aby uzyskać jej wartość - zobacz pomocnicze funkcje poniżej podwójny emaSlowPast GetValueForMA (periodlow, 1) podwójny emaFastPast GetValueForMA (okresowa, 1) Zapisuje wartość sygnału (bufor 1) wskaźnika KVO z aktualnej świecy (przesunięcie 0) podwójnie kvoSignal GetValuesFromIndicatorKVO (1. 0) PrintDebugValue (emaSlowCurrent :, (string) emaSlowCurrent , 1) Etykieta i wartość w wierszu 1 PrintDebugValue (emaSlowPast :, (ciąg) emaSlowPast, 2) Etykieta i wartość w wierszu 2 P (etykieta) i wartość w wierszu 0 PrintDebugValue (emaFastCurrent:, (string) emaFastCurrent, rintDebugValue (emaFastPast :, (string) emaFastPast, 3) etykieta i wartość w wierszu 3, jeśli (emaFastPast gt emaSlowPast ampamp emaFastCurrent lt emaSlowPast Sprawdź, czy powolna macierz MA i szybka krzyżowa ampli kvoSignal lt 0) Sprawdź, czy wartość sygnału KVO wynosi poniżej 0 PlaceTrade (OPSELL) Miejsce SPRZEDAM SPRZEDAJĄCEGO na strategię-tester, funkcja znajduje się w BinaryOptionsStrategyLibrary. mqh if (emaFastPast lt emaSlowPast ampamp emaFastCurrent gt emaSlowPast Sprawdź, czy powolna macierz MA i szybka przecina ampułkę kvoSignal gt 0) Sprawdź, czy wartość sygnału KVO przekracza 0 PlaceTrade (OPBUY) Miejsce KUP-Handel dla Strategy-Tester, funkcja znajduje się w BinaryOptionsStrategyLibrary. mqh ------------------------------ ------------------------------------ Zdobądź wartości MA dla okresu, metody, stosowanej ceny i zmiany. Szczegółowe informacje o iMA () znajduje się w doks. mql4indicatorsima ---------------------------------------- -------------------------- podwójny GetValueForMA (int okres, int shift) zwraca iMA (NULL 0, okres, 0, methodboth, usedpriceboth, przesunięcie) ------------------------------------------------ ------------------ Przykładowy sposób pobierania wartości z zewnętrznych wskaźników, patrz docs. mql4indicatorsicustom Parametry: bufor int - bufor wskaźników (start z 0) int shift - wartość do przesunięcia 0 obecna świeca, 1 przedwzmacniacz ------------------------------------------- ----------------------- podwójny GetValuesFromIndicatorKVO (bufor int, int shift 0) Zmiana KVO na wskaźnik nazwy wskaźnika (iCustom (NULL. NULL dla bieżącej ramki czasowej wybranej w tester - Żadne zmiany nie wymagały 0. 0 dla bieżącego symbolu wybranego w testerze - ŻADNE ZMIANY NIE POTRZEBUJĄCE EDYTUJ PobieranieKVO. ex4.Pliki i nazwa pliku wskaźnika (plik. ex4) BEGIN INDCATORS INPUTS 34, 55, 13, END FOR INPUTS END EDIT buffer , Indeks buforów (zaczynając od 0), b uffer jest nadpisany nad parametrem funkcji - NIE ZMIANY MUSZĄ przesunąć Shift (0 dla aktualnej świecy), przesunięcie jest nadpisywane przez parametr funkcji - NIE ZMIANY MOŻLIWOŚCI) ------------------- ---------------------------------------------- 4. Uruchom a backtest (video) Poniższy film przedstawia sposób uruchamiania testu strategii Binary Options w programie Strategy-Tester programu MetaTrader 4: Uruchom Binary-Options-Strategy-Tester w strategii-testerze MetaTrader 4 i ustaw parametry wejściowe Przeciągnij opcje binarne wskaż strategię na wykresie, ustaw parametry wejściowe i zaznacz opcję Zezwalaj na import z zewnętrznego eksperta na wspólnej karcie Przeciągnij wskaźniki z wykorzystanymi parametrami wejściowymi na wykresie, aby zobaczyć ich wartości podczas testowania (opcjonalne) Zapisz wszystkie ustawienia w szablonie ponownie uruchom test z wszystkimi ustawieniami - użyj przycisku pauzy Strategy-Tester (opcjonalnie) Zobacz rezultaty strategii Binary Options na wykresie Strategy-Tester 5. Uruchom test do przodu Aby wykonać test do przodu tylko przeciągnij narzędzie Binary-Options-Strategy-Tester i wskaźnik strategii na demo lub wykres na żywo swojego pośrednika, zamiast używać go w strategii-testerze: przeciągnij narzędzie Binary-Options-Strategy-Tester na demo lub na żywo, a następnie wprowadź dane wejściowe parametry Przeciągnij wskaźnik strategii Binary Options na wykresie, ustaw parametry wejściowe i zaznacz opcję Zezwalaj na import z zewnętrznego eksperta na wspólnej karcie Przeciągnij wskaźniki z wykorzystanymi parametrami wejściowymi na wykresie, aby zobaczyć ich wartości podczas wykonywania testu do przodu (opcjonalnie) Zapisz wszystkie ustawienia w szablonie, aby ponownie uruchomić test z wszystkimi ustawieniami (opcjonalnie) Zobacz rezultaty strategii opcji binarnych na demo lub na żywo wykresu Pytanie: Dlaczego pokazujesz przykład strategii non-profit Binary Options Answere: To tylko jak zbudować strategię w wskaźniku, aby komunikować się z narzędziem Binary-Options-Strategy-Tester na rynku, aby przetestować i ulepszyć strategię. Pytanie: Binary-Options-Strategy-Tester zatrzymuje się po dokładnej ilości strat z błędem Array poza zakresem. Dlaczego Answere: Binary-Options-Strategy-Tester może wzbudzić błąd po x stratach, aby zatrzymać Testera i analizować sytuację na wykresie. Jeśli nie chcesz, po prostu wyłącz opcję w ustawieniach. Pytanie: Żadne strzałki nie pojawiają się na wykresie po przeciągnięciu mojego wskaźnika na strategię. To, co się stało, musisz włączyć Umożliwienie zewnętrznego importu ekspertów na wspólnej karcie podczas przeciągania wskaźnika strategii na wykresie (w tym przypadku komunikat o błędzie wskazuje błąd). Pytanie: na wykresie nie widzę strzałek, po których przeciągnąłem wskaźnik ze strategią roboczą na nią, a włączono funkcję Zezwalaj na zewnętrzne importowanie ekspertów. Dlaczego Answere: strategia musi wywołać funkcję Binary-Options-Strategy-Tester, aby umieścić wirtualne transakcje. Pojęcie licencji MQL4 działa tylko wtedy, gdy produkt ma licencję na pracę. Dlatego musisz kupić produkt. Pytanie: Żadne strzały nie pojawiają się na wykresie po przeciągnięciu mojego wskaźnika na strategię i dostałem błędy, na przykład Nie można zadzwonić. lub Nie można załadować. w dzienniku MetaTrader 4. Co można zrobić Answere: Użyj najnowszej wersji (większa v1.00) BinaryOptionsStrategyLibrary. mqh. Sprawdź tag wersji w kodzie BinaryOptionsStrategyLibrary. mqh i zobacz changelog v1.01 BinaryOptionsStrategyLibrary. Pytanie: Nie widzę żadnych wyników na kartach Strategia-tester Wyniki, wykres, raport. Gdzie mogę zobaczyć wyniki Answere: Strateg-Tester MetaTrader 4 nie może obsłużyć opcji binarnych, więc te karty nie są używane. Dlatego to narzędzie oblicza wszystkie wygrane i straty i drukuje wyniki na wykresie. 7. Różne Ponieważ potrzebuję możliwości testowania strategii Binary Options zautomatyzowanych w programie Strategy-Tester programu MetaTrader 4 na długie okresy czasu w krótkim czasie i przeprowadzania testów na wykresie brokera, to narzędzie zostało zbudowane. Spędziłem mnóstwo czasu na koncepcję i wdrożenie Binary-Options-Strategy-Tester oraz dokumentację. Być może jest lepszy sposób na to, a może niektóre ulepszenia przybliżą Cię do Twoich potrzeb. Więc skontaktuj się ze mną, aby uzyskać pomysły na usprawnienia. Binarny wariant Strategia testera Binarnie-opcje-strategia-tester dla Metatrader 4: Tworzenie strategii opcji binarnych do testów wstecznych w Metatrader 4 Strategia-Tester Uruchamianie testów strategii opcji binarnych na długie okresy w krótkim czasie Ulepszaj strategie opcji binarnych, aby były stabilne w handlu. Uruchom testy strategii opcji binarnych z brokerem. Uruchom testy dowolnego symbolu (np. EURUSD, GBPUSD, EURJPY itd.) Lub dowolnego terminu (np. M1, M5, M15, M30, H1 itp. .) Strategia-tester Metatrader 4 nie może obsłużyć opcji binarnych. Dlatego narzędzie to będzie składać zamówienia wirtualne, liczyć ich wyniki i drukować informacje na wykresie, aby umożliwić testowanie i udoskonalanie strategii Binary Options. Koncepcja: Zobacz zrzut ekranu 1 dotyczący koncepcji narzędzia Binary-Options-Strategy-Tester. Pamiętaj: sprawdzanie danych historycznych nigdy nie stanowi prawdziwej przyszłości, ale może przydać się przybliżonej wartości, aby Twoja strategia była bardziej stabilna. Jakość testów zależy od danych historycznych. Dlatego zdecydowanie zaleca się używanie zestawu danych wysokiej jakości Instalacja Pobierz i kupno narzędzia Binary-Options-Strategy-Tester - potrzebna jest zakupiona wersja. Dlaczego potrzebna jest zakupiona wersja narzędzia Binary-Options-Strategy-Tester? Strategia Binary-Options musi wywołać funkcję Binary-Options-Strategy-Tester (poprzez Binary-Options-Strategy-Library), aby umieścić wirtualne transakcje zobacz zrzut ekranu 1). Podobne do koncepcji licencji MQL4 działa tylko wtedy, gdy produkt ma licencję na pracę. Dlatego musisz kupić produkt, aby przetestować strategie opcji binarnych lub przykładowy kod połączony w sekcji Tworzenie strategii. Zbuduj strategię: Zobacz Jak zbudować i przetestować strategię opcji binarnych z narzędziem strategii-testerze Metatrader 4 na przykład jak zbudować strategię dla binarnych opcji-strategii-tester i uruchomić testy wsteczne, a także testy na przyszłość. 1. Otwórz Metatrader 4 Strategy-Tester, wybierz Binary-Options-Strategy-Tester (folder Market), ustaw wymagane parametry wejściowe i uruchom Strategy-Tester. 2. Przeciągnij wskaźnik, w którym strategia jest zapisana na wykresie, ustaw wymagane parametry wejściowe dla strategii i zobacz wyniki na wykresie. 3. Udoskonal swoją strategię i zmień parametry wejściowe, aby uruchomić test testów wstecznych, dopóki strategia nie będzie trwała. 4. Uruchom testy przedwczesne, przeciągając narzędzie Binary-Options-Strategy-Tester i wskaźnik strategii na demo lub na żywo wykresie brokera. Oprócz wskaźnika z opcją Opcje binarne można umieścić wskaźniki używane przez strategię przy użyciu ich ustawień na wykresie, aby zobaczyć je w czasie rzeczywistym podczas testowania. Ponadto można zapisać wszystkie wskaźniki i ich ustawienia, zapisując szablon wykresu i załaduj je na następny test. To save or load all needed indicators with their settings on a template before tester runs, use the pause button of MetaTrader 4 Strategy-Tester. Input Parameters See screenshot 2 for input parameters. Further input parameters for your strategy will be stored in your strategy indicator file. Question: No arrows appear on chart after I draged my indicator with a working strategy on it. What happened Answere: You have to enable Allow external expert imports on the common tab while you drag your strategy on the chart (log message will show an error in this case). Question: No arrows appear on chart after I draged my indicator with a working strategy on it with Allow external expert imports enabled. Why Answere: A strategy has to call a function of Binary-Options-Strategy-Tester to place virtual trades. Related to the MQL4 license concept this only works if the product has a working license. Therefore you have to purchase the product. Question: No arrows appear on chart after I dragged my indicator with a working strategy on it and I got errors like Cannot call. or Cannot load. in the log of MetaTrader 4. What can I do Answere: Use the latest version (greater v1.00) of BinaryOptionsStrategyLibrary. mqh. Check version tag in code of your BinaryOptionsStrategyLibrary. mqh and see changelog v1.01 of BinaryOptionsStrategyLibrary. Question: I see no results on Strategy-Tester tabs Results, Graph, Report. Where can I see the results Answere: Strategy-Tester of Metatrader 4 can not handle Binary Options so these tabs can not be used. Therefore this utility calculates all wins and losses and prints the results on the chart. Further informations See How to build and test a Binary Options strategy with Strategy-Tester of Metatrader 4 for an example how to build a strategy for Binary-Options-Strategy-Tester and run backtests as well as forward tests. Miscellaneous If you have ideas for improvements, please feel free to contact meLike This Unlike David 15 Oct 2017 So as I have been asked several times about the MT4 strategy tester I use, I decided to make a little video about it showing how you can use it with some simple rules. (A BIG thanks for Ryan from SignalPush for coding this for us to use.) So here it is, as well as the file. I will try to answer questions, however please remember I am still a newbie at this as well. Wins: 195, Ties: 0 Losses. 43, Total: 238, Percentage: 81.9 It test all the way back to 09.19.2017 00:45 1 month test The only problem is that i do not understand how it work. This is the coding that i put in the test. if ( H0 lt Cl1 ) Downi Highi 5 Point if(OpenigtClosei-1) WinBufferi-1 Highi-1 5 Point Print(Win at TimeToStr(Timei)) total wins else if (Openi Closei-1) Print(Tie at TimeToStr(Timei)) LossBufferi-1 Highi-1 5 Point ties total else losses LossBufferi-1 Highi-1 5 Point Print(Loss at TimeToStr(Timei)) total if ( L0 gt Cl1 ) Upi Lowi - 5 Point if(OpeniltClosei-1) WinBufferi-1 Lowi-1 - 5 Point Print(Win at TimeToStr(Timei)) total wins else if (OpeniClosei-1) Print(Tie at TimeToStr(Timei)) LossBufferi-1 Highi-1 5 Point ties total else LossBufferi-1 Lowi-1 - 5 Point Print(Loss at TimeToStr(Timei)) total losses Any help to understand this will be great and how do i make this work, with out back testing or do i need to understand and just call and put as it comes out. Sorry I am very new to this have little understanding the termology. Like This Unlike David 20 Oct 2017 I have tried your indicator tester on USDJPY, 15min chart Wins: 195, Ties: 0 Losses. 43, Total: 238, Percentage: 81.9 It test all the way back to 09.19.2017 00:45 1 month test The only problem is that i do not understand how it work. This is the coding that i put in the test. if ( H0 lt Cl1 ) Downi Highi 5 Point if(OpenigtClosei-1) WinBufferi-1 Highi-1 5 Point Print(Win at TimeToStr(Timei)) total wins else if (Openi Closei-1) Print(Tie at TimeToStr(Timei)) LossBufferi-1 Highi-1 5 Point ties total else losses LossBufferi-1 Highi-1 5 Point Print(Loss at TimeToStr(Timei)) total if ( L0 gt Cl1 ) Upi Lowi - 5 Point if(OpeniltClosei-1) WinBufferi-1 Lowi-1 - 5 Point Print(Win at TimeToStr(Timei)) total wins else if (OpeniClosei-1) Print(Tie at TimeToStr(Timei)) LossBufferi-1 Highi-1 5 Point ties total else LossBufferi-1 Lowi-1 - 5 Point Print(Loss at TimeToStr(Timei)) total losses Any help to understand this will be great and how do i make this work, with out back testing or do i need to understand and just call and put as it comes out. Sorry I am very new to this have little understanding the termology. Anything using current bar 0 will not work in the back tester correctly because it will use the full bar and not use the exact entry correctly that you would have gotten. Like This Unlike Comedian 20 Oct 2017
No comments:
Post a Comment