Friday 15 December 2017

Binary options strategia tester


Opcje binarne Tester strategii Opcje binarne-Tester strategii dla Metatrader 4: Opracuj strategie opcji binarnych, aby przetestować w Metatrader 4 Tester strategii Wykonaj backtests strategii opcji binarnych na długie okresy w krótkim czasie Popraw strategie opcji binarnych, aby stały się stabilne Rozpocznij testy strategii opcji binarnych ze swoim brokerem Wykonaj testy dla dowolnego symbolu (np. EURUSD, GBPUSD, EURJPY itd.) Lub dowolnego okresu (np. M1, M5, M15, M30, H1 itd.) Tester strategii Metatrader 4 nie może obsłużyć Opcje binarne. Dlatego narzędzie to umieści wirtualne zamówienia, policzy ich wyniki i wydrukuje informacje na wykresie, aby dać ci możliwość przetestowania i ulepszenia strategii opcji binarnych. Koncepcja: Zobacz zrzut ekranu 1 dla koncepcji narzędzia Binary-Options-Strategy-Tester. Pamiętaj: analiza historyczna z danymi historycznymi nigdy nie będzie odzwierciedlać prawdziwej przyszłości, ale może dać ci przybliżoną wartość, aby strategia była bardziej stabilna. Jakość testu historycznego zależy od danych historycznych. Dlatego zdecydowanie zaleca się użycie zestawu wysokiej jakości danych Instalacja Pobierz i kup narzędzie Binary-Options-Strategy-Tester - wymagana 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ć transakcje wirtualne ( patrz koncepcja zrzutu ekranu 1). W związku z koncepcją licencji MQL4 działa to tylko wtedy, gdy produkt ma działającą licencję. Dlatego musisz kupić produkt, aby przetestować strategie opcji binarnych lub przykładowy kod połączony w sekcji Zbuduj strategię. Zbuduj strategię: Zobacz, jak zbudować i przetestować strategię opcji binarnych za pomocą Testera strategii Metatrader 4, na przykład jak zbudować strategię dla Binary-Options-Strategy-Tester i przeprowadzić testy historyczne oraz testy do przodu. 1. Otwórz narzędzie Metatrader 4 Strategy-Tester, wybierz Binary-Options-Strategy-Tester (folder Market), ustaw potrzebne parametry wejściowe i uruchom narzędzie Strategy-Tester. 2. Przeciągnij wskaźnik, gdzie strategia jest przechowywana na wykresie, ustaw potrzebne parametry wejściowe strategii i zobacz wyniki na wykresie. 3. Popraw swoją strategię i zmień parametry wejściowe, aby ponownie wykonać test historyczny, dopóki strategia nie będzie stabilna w handlu. 4. Przeprowadź testy do przodu, przeciągając narzędzie Binary-Options-Strategy-Tester i wskaźnik strategii na demo lub wykres na żywo twojego brokera. Oprócz wskaźnika ze strategią opcji binarnych możesz umieszczać wskaźniki używane przez twoją strategię z ich używanymi ustawieniami na wykresie, aby zobaczyć je w czasie rzeczywistym podczas testów. Ponadto można zapisać wszystkie wskaźniki i ich ustawienia, zapisując szablon wykresu i załadować go w następnym uruchomieniu testowym. Aby zapisać lub załadować wszystkie potrzebne wskaźniki z ich ustawieniami na szablonie przed uruchomieniem testera, użyj przycisku pauzy MetaTrader 4 Strategy-Tester. Parametry wejściowe Patrz zrzut ekranu 2 dla parametrów wejściowych. Dalsze parametry wejściowe dla strategii będą przechowywane w pliku wskaźnika strategii. Pytanie: Żadne strzały nie pojawiają się na wykresie po tym, jak wyczerpałem swój wskaźnik z działającą na nim strategią. Co się stało Answere: Musisz włączyć opcję Zezwalaj na zewnętrzne ekspertyzy na wspólnej karcie podczas przeciągania strategii na wykres (komunikat dziennika będzie pokazywał błąd w tym przypadku). Pytanie: Nie ma strzałek na wykresie po tym, jak wyczerpałem swój wskaźnik z działającą strategią z włączonym Zezwalaj na import zewnętrznych ekspertów. Dlaczego Answere: Strategia musi wywoływać funkcję Binary-Options-Strategy-Tester do umieszczania transakcji wirtualnych. W związku z koncepcją licencji MQL4 działa to tylko wtedy, gdy produkt ma działającą licencję. Dlatego musisz kupić produkt. Pytanie: Nie ma strzałek na wykresie po tym, jak przeciągnąłem wskaźnik ze strategią roboczą i pojawiły się błędy takie jak Nie można zadzwonić. lub Nie można załadować. w dzienniku MetaTrader 4. Co mogę zrobić Answere: Użyj najnowszej wersji (więcej v1.00) BinaryOptionsStrategyLibrary. mqh. Sprawdź tag wersji w kodzie swojej biblioteki BinaryOptionsStrategyLibrary. mqh i zobacz changelog v1.01 z BinaryOptionsStrategyLibrary. Pytanie: Nie widzę żadnych wyników na kartach Testera strategii Wyniki, wykres, raport. Gdzie mogę zobaczyć wyniki Answere: Narzędzie do testowania strategii Metatrader 4 nie obsługuje opcji binarnych, więc nie można używać tych kart. Dlatego narzędzie to oblicza wszystkie wygrane i straty i drukuje wyniki na wykresie. Dalsze informacje Zobacz Jak zbudować i przetestować strategię opcji binarnych za pomocą Strategy-Tester of Metatrader 4, na przykład jak zbudować strategię dla Binary-Options-Strategy-Tester i przeprowadzić testy historyczne oraz testy do przodu. Różne Jeśli masz pomysły na ulepszenia, proszę skontaktuj się ze mnąLike This Unlike David 15.10.2017 Tak jak kilkakrotnie pytano mnie o tester strategii MT4, zdecydowałem się nakręcić film o tym, w jaki sposób możesz użyć to z kilkoma prostymi regułami. (WIELKIE podziękowania dla Ryana z SignalPush za kodowanie tego, abyśmy mogli go użyć.) A więc tak, jak i plik. Postaram się odpowiedzieć na pytania, ale pamiętaj, że wciąż jestem początkującym. Zwycięstwa: 195, remisy: 0 porażek. 43, Razem: 238, Procent: 81,9 Testuje całą drogę z powrotem do 09.19.2017 00:45 1 miesiąc testu Jedynym problemem jest to, że nie rozumiem jak to działa. To jest kodowanie, które umieszczam w teście. if (H0 lt Cl1) Downi Highi 5 punkt, jeśli (OpenigtClosei-1) WinBufferi-1 Highi-1 5-punktowy wydruk (wygrana w TimeToStr (Timei)) suma wygrywa, jeśli (Openi Closei-1) Print (Tie at TimeToStr (Timei )) LossBufferi-1 Highi-1 5 punktów remisów suma innych strat LossBufferi-1 Highi-1 5-punktowy wydruk (strata w TimeToStr (Timei)) suma, jeśli (L0 gt Cl1) Upi Lowi - 5 punktów, jeśli (OpeniltClosei-1) WinBufferi -1 Lowi-1 - 5-punktowy wydruk (Wygraj w TimeToStr (Timei)) suma wygranych pozostałych, jeśli (OpeniClosei-1) Drukuj (Tie w TimeToStr (Timei)) LossBufferi-1 Highi-1 5 Punktów więcej Suma LossBufferi-1 Lowi -1 - 5-punktowy wydruk (straty w czasieToStr (Timei)) całkowite straty Każda pomoc w zrozumieniu tego będzie świetna i jak mogę to wykonać, z testowaniem zewnętrznym lub czy muszę je zrozumieć i po prostu zadzwonić i umieścić na zewnątrz. Przepraszam, jestem bardzo nowy w tym, że nie rozumiem tej terminologii. Lubię to w przeciwieństwie do Davida 20 października 2017 Próbowałem twojego testera na USDJPY, 15min chart Wygrywa: 195, Krawaty: 0 Straty. 43, Razem: 238, Procent: 81,9 Testuje całą drogę z powrotem do 09.19.2017 00:45 1 miesiąc testu Jedynym problemem jest to, że nie rozumiem jak to działa. To jest kodowanie, które umieszczam w teście. if (H0 lt Cl1) Downi Highi 5 punkt, jeśli (OpenigtClosei-1) WinBufferi-1 Highi-1 5-punktowy wydruk (wygrana w TimeToStr (Timei)) suma wygrywa, jeśli (Openi Closei-1) Print (Tie at TimeToStr (Timei )) LossBufferi-1 Highi-1 5 punktów remisów suma innych strat LossBufferi-1 Highi-1 5-punktowy wydruk (strata w TimeToStr (Timei)) suma, jeśli (L0 gt Cl1) Upi Lowi - 5 punktów, jeśli (OpeniltClosei-1) WinBufferi -1 Lowi-1 - 5-punktowy wydruk (Wygraj w TimeToStr (Timei)) suma wygranych pozostałych, jeśli (OpeniClosei-1) Drukuj (Tie w TimeToStr (Timei)) LossBufferi-1 Highi-1 5 Punktów więcej Suma LossBufferi-1 Lowi -1 - 5-punktowy wydruk (straty w czasieToStr (Timei)) całkowite straty Każda pomoc w zrozumieniu tego będzie świetna i jak mogę to zrobić, z testowaniem na odległość lub czy muszę je zrozumieć i po prostu zadzwonić i umieścić na zewnątrz. Przepraszam, jestem bardzo nowy w tym, że nie rozumiem tej terminologii. Cokolwiek, używając aktualnego paska 0, nie będzie działać poprawnie w testerze wstecznym, ponieważ użyje pełnego paska i nie użyje dokładnego wpisu poprawnie, który byłby osiągnięty. Lubię to w przeciwieństwie do komika 20 października 2017MetaTrader 4 - przykłady Jak zbudować i przetestować strategię opcji binarnych za pomocą testera strategii MetaTrader 4 Spis treści 1. Wprowadzenie W tym artykule pokazano, jak zbudować strategię opcji binarnych i przetestować ją w narzędziu do testowania strategii Metatrader 4 z narzędziem Binary-Options-Strategy-Tester. Domyślnie Strategy-Tester firmy Metatrader 4 może testować Expert Advisors i Indicators na podstawie danych historycznych, ale nie może obsłużyć opcji binarnych z terminem wygaśnięcia. Ponieważ potrzebuję możliwości przetestowania strategii opcji binarnych zautomatyzowanych w narzędziu do testowania strategii MetaTrader 4, Binary-Options-Strategy-Tester został zbudowany jako narzędzie do tych potrzeb. Koncepcja zawiera następujące części: Jest to przykład krok po kroku, jak zbudować strategię opcji binarnych przechowywaną w wskaźniku (zaznaczoną na czerwono na obrazku powyżej), aby komunikować się za pośrednictwem opcji binarnych-strategia-biblioteka (oznaczona jako zielona na powyższym obrazku) ) za pomocą Binary-Options-Strategy-Tester (oznaczonego jako niebieski na zdjęciu powyżej), aby umieszczać wirtualne zamówienia i liczyć ich wyniki z testami historycznymi i testami do przodu. Pamiętaj: analiza historyczna z danymi historycznymi nigdy nie będzie odzwierciedlać prawdziwej przyszłości, ale może dać ci przybliżoną wartość, aby strategia była bardziej stabilna. Jakość testu historycznego zależy od danych historycznych. Dlatego zdecydowanie zaleca się użycie zestawu wysokiej jakości danych 2. Instalacja Pobierz i kup narzędzie Binary-Options-Strategy-Tester z rynku: Test-Framework do testowania strategii opcji binarnych w Strategy-Tester of MetaTrader 4. Dlaczego zakupiona wersja narzędzia Binary-Options-Strategy-Tester jest potrzebne Strategia Binary-Options musi wywołać funkcję Binary-Options-Strategy-Tester (poprzez Binary-Options-Strategy-Library), aby umieścić transakcje wirtualne. W związku z koncepcją licencji MQL4 działa to tylko wtedy, gdy produkt ma działającą licencję. Dlatego musisz zakupić produkt, aby przetestować strategie opcji binarnych lub ten przykład. Pobierz darmową bibliotekę BinaryOptionsStrategyLibrary. mqh i umieść ją w folderze Include (ścieżka do MetaTrader 4MQL4Include): bezpłatna biblioteka zapewni kilka funkcji do łatwego budowania strategii opcji binarnych i komunikowania się z programem Binary-Options-Strategy-Tester. Zobacz Binary-Options-Strategy-Library, aby uzyskać więcej informacji o bibliotece. Pobierz bezpłatny wskaźnik KVO. mq4 i umieść go (oraz skompilowany plik KVO. ex4) w folderze IndicatorsDownloads (ścieżka do MetaTrader 4MQL4IndicatorsDownloads): Wskaźnik KVO służy jako przykład do pokazania dostępu zewnętrznych wskaźników i plików ex4 w sekcji 3.2.6 Wykorzystanie zewnętrznych wskaźników (pliki ex4). Zobacz mql5encode8677, aby uzyskać więcej szczegółowych informacji na temat wskaźnika. Teraz możesz przejść dalej, korzystając z sekcji 3. Przykład strategii z opcjami binarnymi i samodzielnie zbudować przykładowy kod lub pobrać poniższy kod z poniższego przykładu. Opcjonalnie pobierz plik BinaryOptionsStrategyExample. mq4 i umieść go (oraz skompilowany plik BinaryOptionsStrategyExample. ex4) w folderze Indicators (ścieżka do MetaTrader 4MQL4Indicator): Pobierz kod tego przykładu strategii opcji binarnych, aby uruchomić go bez samodzielnego budowania. 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 Skompiluj lub po prostu ponownie uruchom MetaTrader 4 po tych plikach są przechowywane w opisanych folderach, a MetaTrader 4 zrobi to za Ciebie automatycznie. 3. Przykład strategii dla opcji binarnych Poniższe kroki poprowadzą cię do przykładowego sposobu zbudowania przykładowej strategii opcji binarnych przechowywanej w Wskaźniku do komunikacji z Binary-Options-Strategy-Tester. Możesz go zbudować samodzielnie lub po prostu pobrać kod BinaryOptionsStrategyExample. mq4. Uwaga: Ta strategia nie jest dochodową strategią opcji binarnych Jest to tylko przykład, jak zbudować strategię w postaci wskaźnika do komunikacji z narzędziem Binary-Options-Strategy-Tester. Oczywiście musisz sam zbudować opłacalną strategię. Ale jak zobaczysz, to narzędzie pomoże Ci przetestować i ulepszyć strategię opcji binarnych. 3.1 Definiowanie strategii opcji binarnych Przede wszystkim musimy zdefiniować strategię i zmienne wartości (parametry wejściowe). Dokumentacja MQL4 pokazuje wszystkie wskaźniki techniczne, które mogą być adresowane przez interfejs iCustom: docs. mql4indicators. Powiedzmy, że lubimy tworzyć prostą średnią ruchomą strategię krzyżową z jedną szybką i jedną powolną średnią ruchową, aby handlować na następnej świecy, gdy się skrzyżują. Dokumentacja mówi, w jaki sposób możemy uzyskać wartość pojedynczej średniej ruchomej: docs. mql4indicatorsima. Powiedzmy dalej, lubimy wybierać wartości dla okresu uśredniania MA (szybkie i wolne) i dla zastosowanej ceny, a także dla metody uśredniania. Inne wartości (takie jak symbol, ramy czasowe i przesunięcie) zależą od przypadku testowego (np. Symbolu, na którym działa tester) i powinny być ustawione automatycznie. Dlatego zasadniczo potrzebujemy następujących zmiennych dla średniej ruchomej: int maperiod int mamethod int appliedprice Ponieważ potrzebujemy dwóch średnich kroczących do sprawdzenia ich krzyżów, potrzebujemy następujących parametrów wejściowych dla przykładu strategii z pewnymi wartościami domyślnymi: int periodfast 5 int periodslow 10 int methodboth 0 int appliedpriceboth 0 3.2 Stwórz strategię opcji binarnych Musisz zbudować wskaźnik, który przechowuje strategię opcji binarnych, aby przeciągnąć ją na wykres, na którym działa program Binary-Options-Strategy-Tester. Otwórz edytor językowy MetaQuotes (w MetaTrader 4 kliknij na Narzędzia - edytor MetaQuotes Language lub po prostu naciśnij F4) i kliknij Nowy: Pojawi się kreator MQL. Wybierz Wskaźnik niestandardowy, aby utworzyć pusty wskaźnik i kliknij Dalej: Wprowadź nazwę, prawa autorskie i łącze strategii, a także parametry wejściowe z ich typami i wartościami domyślnymi (wartości początkowe), klikając przycisk Dodaj i naciśnij Dalej: na karcie programy do obsługi zdarzeń wybierz pole wyboru OnCalculate, ponieważ potrzebujemy tego zdarzenia, aby sprawdzić strategię dotyczącą każdego tiku. Naciśnij Dalej: Na zakładce Właściwości rysunku zaznacz pole wyboru Wskaźnik w osobnym oknie, ponieważ potrzebujemy osobnego okna do wydrukowania wartości debugowania. Naciśnij Zakończ: pojawi się początkowy kod wskaźnika: -------------------------------------- ---------------------------- BinaryOptionsStrategyExample. mq4 Copyright 2018, martin mql5enusersmartin -------------- -------------------------------------------------- - własność copyright Copyright 2018, martin property link mql5enusersmartin właściwość version 1.00 własność strict property indicatorseparatewindow --- parametry wejściowe input int periodfast 5 wejście int periodslow 10 input int methodboth 0 input int appliedpriceboth 0 ----------- -------------------------------------------------- ----- Funkcja inicjalizacji wskaźnika niestandardowego ----------------------------------------- ------------------------- int OnInit () --- mapowanie buforów wskaźników 3.2.1 Parametry wejściowe Początkowe parametry wejściowe są tworzone za pomocą Kreatora MQL (patrz 3.2 Tworzenie strategii opcji binarnych), a my poprawimy je, wykonując następujące kroki. Aby uniknąć konieczności wprowadzania wartości int dla zastosowanej ceny i metody uśredniania średnich kroczących dla parametrów wejściowych, typ dla metody i zlecenia jest zmieniany z int na typ wyliczenia z wartością domyślną. Dodatkowo dodawane są komentarze do parametrów wejściowych, aby wyświetlić komentarze jako etykiety zamiast nazw zmiennych: --- wejściowe parametry wejściowe int periodfast 5 Szybkie MA wartość wejściowa int periodslow 10 Powolne wprowadzanie wartości MA Metoda ENUMMAMETHOD z wprowadzeniem metody MODESMA MA ENUMAPPLIEDPRICE zastosowana cena dla MA stopnia PRICECLOSE Zastosowana cena Dzięki tym modyfikacjom parametry wejściowe udostępniają listę dostępnych wartości do wyboru oraz etykiety dla parametrów wejściowych: 3.2.2 Uwzględnij Opcje Binarne-Strategia-Biblioteka Jeśli pobrałeś i zapisałeś bibliotekę (patrz 2. Instalacja ) do folderu Include (ścieżka do MetaTrader 4MQL4Include), możesz dołączyć taką bibliotekę: ---------------------------- -------------------------------------- BinaryOptionsStrategyExample. mq4 Copyright 2018, martin mql5enusersmartin ---- -------------------------------------------------- ------------ własność copyright Prawa autorskie 2018, martin property link mql5enusersmartin property versi na 1.00 własności strict property indicatorseparatewindow Biblioteka będzie dostępna tylko jak opisano w powyższym przykładzie, jeśli umieścisz ją w folderze Include swojego MetaTrader 4. Nie jest konieczna zmiana zawartości biblioteki Binary-Options-Strategy-Library poprawi wejście parametry z dwoma nowymi parametrami: Umieść tylko jeden SPRZEDAŻ lub jeden KUP handel na świecę Sprawdź tylko na początku nowej świecy dla strategii 3.2.3 Dodaj CallStrategy () Dodaj połączenie do CallStrategy () - funkcja w OnCalculate () swojego wskaźnik strategii, aby wywołać strategię na każdym nowym tiku. CallStrategy () jest dostarczany przez Binary-Options-Strategy-Library, którą masz wpisany jak opisano wyżej: CallStrategy () Wywołaj strategię, funkcja jest locatet w BinaryOptionsStrategyLibrary. mqh (zawarta powyżej) CallStrategy () - funkcja w Binary-Options-Strategy - Biblioteka wywoła funkcję CheckMyRules () w twoim wskaźniku, gdzie możesz umieścić swoje warunki dla strategii opcji binarnych. Dlatego musisz wdrożyć funkcję CheckMyRules () w swoim wskaźniku strategii opcji binarnych. 3.2.4 Implementacja CheckMyRules () i funkcja pomocnicza W funkcji CheckMyRules (), która jest wywoływana przez Binary-Options-Strategy-Library, warunki dla strategii są wdrażane, a transakcje są umieszczane za pośrednictwem PlaceTrade () - funkcja biblioteka. Wartości obu średnich kroczących są tymczasowo zapisywane w zmiennych, aby je porównać w warunkach if, podczas gdy wartości średnich kroczących są pobierane z funkcji pomocnika GetValuesForMA (): --- wprowadzane parametry wejściowe int periodfast 5 szybkie wprowadzenie wartości MA int periodsways 10 Powolne wprowadzanie wartości MA Metoda ENUMMAMETHOD przy wprowadzeniu metody MODESMA MA ENUMAPPLIEDPRICE zastosowana cena przy zastosowaniu MA MAKSYMALNEJ MA --------------------------------- --------------------------------- Umieść tutaj swoje Zasady Handlowe - patrz przykład poniżej. StrategyTester wywoła tę funkcję, aby umieścić transakcje. NIE: - Zmień nazwę funkcji - Dodaj parametry funkcji, np. CheckMyRules (int a) - Zmień typ zwracanej funkcji, np. int CheckMyRules () ---------------------------------------------- -------------------- void CheckMyRules () Przechowuj wartości MA z shift0 (aktualna świeca) - gt świeca, wywołuj funkcję pomocnika GetValueForMA (), aby uzyskać wartość - patrz funkcje pomocnicze poniżej podwójnego emaSlowCurrent GetValueForMA (periodslow, 0) double emaFastCurrent GetValueForMA (periodfast, 0) Przechowuj wartości MA z shift1 (przeszłość świecy) - ostatnia świeczka, funkcja help call GetValueForMA (), aby uzyskać wartość - zobacz funkcje pomocnika poniżej double emaSlowPast GetValueForMA (periodslow, 1) double emaFastPast GetValueForMA (periodfast, 1) if (emaFastPast gt emaSlowPast ampamp emaFastCurrent lt emaSlowPast) Sprawdź, czy powolne MA i szybkie MA przecinają PlaceTrade (OPSELL) Miejsce SELL-Trade dla Strategy-Tester, funkcja jest zlokalizowana w BinaryOptionsStrategyFunctions. mqh if (emaFastPast lt emulator EmaSlowPast emaFastCurrent gt emaSlowPast) Sprawdź, czy powolny MA i szybki MA przecina PlaceTrade (OPBUY) Miejsce KUPUJ-Handel dla testera strategii, funkcja i s znajduje się w BinaryOptionsStrategyFunctions. mqh 3.2.5 Wydrukuj wartości debugowania Funkcja PrintDebugValue () zapewnia możliwość drukowania wartości debugowania podczas pracy testera. W poniższym przykładzie wartości średnich kroczących są drukowane wraz z ich nazwami zmiennych jako etykietami: --- parametry wejściowe wejściowe int periodfast 5 szybkie wprowadzenie wartości MA int periodslow 10 powolne wprowadzanie wartości MA metoda ENUMMAMETHOD przy wprowadzeniu metody MODESMA MA ENUMAPPLIEDPRICE zastosowana cena w przypadku MA MAKSYMALNA zastosowana cena ------------------------------------------------ ------------------ Umieść tutaj swoje Zasady Handlowe - patrz przykład poniżej. StrategyTester wywoła tę funkcję, aby umieścić transakcje. NIE: - Zmień nazwę funkcji - Dodaj parametry funkcji, np. CheckMyRules (int a) - Zmień typ zwracanej funkcji, np. int CheckMyRules () ---------------------------------------------- -------------------- void CheckMyRules () Przechowuj wartości MA z shift0 (aktualna świeca) - gt świeca, wywołuj funkcję pomocnika GetValueForMA (), aby uzyskać wartość - patrz funkcje pomocnicze poniżej podwójnego emaSlowCurrent GetValueForMA (periodslow, 0) double emaFastCurrent GetValueForMA (periodfast, 0) Przechowuj wartości MA z shift1 (przeszłość świecy) - ostatnia świeczka, funkcja help call GetValueForMA (), aby uzyskać wartość - zobacz funkcje pomocnika poniżej double emaSlowPast GetValueForMA (periodslow, 1) double emaFastPast GetValueForMA (periodfast, 1) PrintDebugValue (emaSlowCurrent:, (string) emaSlowCurrent, 0) Etykieta i wartość w linii 0 PrintDebugValue (emaFastCurrent:, (string) emaFastCurrent, 1) Etykieta i wartość w wiersz 1 PrintDebugValue (emaSlowPast:, (string) emaSlowPast, 2) Etykieta i wartość w linii 2 PrintDebugValue (emaFastPast:, (string) emaFastPast, 3) Etykieta i wartość w linii 3, jeśli (emaFastPast gt emaSlowPast ampamp emaFast Current lt emaSlowPast) Sprawdź, czy powolny MA i szybki MA przecina PlaceTrade (OPSELL) Miejsce SELL-Trade dla Strategy-Tester, funkcja znajduje się w BinaryOptionsStrategyFunctions. mqh, jeśli (emaFastPast lt emaSlowPast ampamp emaFastCurrent gt emaSlowPast) Sprawdź, czy powolne MA i szybkie krzyże MA PlaceTrade (OPBUY) Miejsce BUY-Trade dla Strategy-Tester, funkcja znajduje się w BinaryOptionsStrategyFunctions. mqh 3.2.6 Używanie zewnętrznych wskaźników (pliki ex4) Oprócz zewnętrznego wskaźnika, który przechowuje jego wartości w buforach, można uzyskać dostęp do strategii opcji binarnych , nawet jeśli istnieje tylko skompilowany plik ex4. Powiedzmy, że chcielibyśmy dołączyć linię sygnałową wskaźnika KVO mql5encode8677, aby umieścić transakcje tylko wtedy, gdy linia sygnału przekroczyła 0 w przypadku transakcji BUY i poniżej 0 w przypadku transakcji SELL. 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 Skompiluj lub po prostu ponownie uruchom MetaTrader 4 po zapisaniu pliku w opisanym folderze, a MetaTrader 4 zrobi to za ciebie automatycznie. Najpierw musimy zidentyfikować odpowiednie bufory, które przechowują odpowiednie wartości w celu uzyskania dostępu. Dlatego wciskamy przycisk Okno danych w MetaTrader 4, aby pokazać wszystkie dostępne bufory użytych wskaźników i przeciągnąć wskaźnik KVO na wykresie. Po najechaniu kursorem na mapę (naciśnij kółko myszy na wykresie, aby wyświetlić krzyżyk) w oknie danych wyświetlane będą wartości bufora wskaźnika zakrytego okresu czasu: Etykiety okna danych informują nas o drugiej wartości bufora wskaźnika przechowuje linię sygnału. Jeśli bufory wskaźników nie mają etykiet, możemy znaleźć właściwy, porównując wartości bufora z wyświetlaną wartością pod krzyżem na wykresie i wskaźniku. Bufory wskaźnika zaczynają się od 0, więc mamy bufor wartości bufora 1 0, bufor bufora wartości 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, do którego chcemy mieć dostęp. Przez przeciągnięcie wskaźnika na wykresie widzimy wszystkie paremetry wejściowe: Powiedzmy dalej, że chcemy uzyskać dostęp do wskaźnika z (domyślnymi) wartościami: 34, 55 i 13. Używamy funkcji pomocniczej (opartej na iCostum), która daje nam możliwość uzyskania wartości wskaźnika z parametrami bufora i przesunięcia, podczas gdy przesunięcie 0 będzie wartością aktualnej świecy, przesunięcie 1 wartości ostatniej świecy, przesunięcie 2 wartości od drugiej do ostatniej świecy i wkrótce. Ponadto tymczasowo przechowujemy wartości bufora wskaźnika i poprawiamy warunek if strategii: --- wprowadzane parametry wejściowe int periodfast 5 Szybkie wprowadzanie wartości MA int periodlow 10 Wprowadzanie wolnej wartości MA Metoda ENUMMAMETHOD przy wprowadzeniu metody MODESMA MA ENUMAPPLIEDPRICE stosowana cena z PRICECLOSE MA zastosowana cena ----------------------------------------------- ------------------- Umieść tutaj swoje zasady handlu - patrz przykład poniżej. StrategyTester wywoła tę funkcję, aby umieścić transakcje. NIE: - Zmień nazwę funkcji - Dodaj parametry funkcji, np. CheckMyRules (int a) - Zmień typ zwracanej funkcji, np. int CheckMyRules () ---------------------------------------------- -------------------- void CheckMyRules () Przechowuj wartości MA z shift0 (aktualna świeca) - gt świeca, wywołuj funkcję pomocnika GetValueForMA (), aby uzyskać wartość - patrz funkcje pomocnicze poniżej podwójnego emaSlowCurrent GetValueForMA (periodslow, 0) double emaFastCurrent GetValueForMA (periodfast, 0) Przechowuj wartości MA z shift1 (przeszłość świecy) - ostatnia świeczka, funkcja help call GetValueForMA (), aby uzyskać wartość - zobacz funkcje pomocnika poniżej double emaSlowPast GetValueForMA (periodslow, 1) double emaFastPast GetValueForMA (periodfast, 1) Zapisanie wartości sygnału (bufor 1) wskaźnika KVO z aktualnej świecy (przesunięcie 0) double kvoSignal GetValuesFromIndicatorKVO (1. 0) PrintDebugValue (emaSlowCurrent:, (string) emaSlowCurrent , 0) Etykieta i wartość w linii 0 PrintDebugValue (emaFastCurrent:, (string) emaFastCurrent, 1) Etykieta i wartość w linii 1 PrintDebugValue (emaSlowPast:, (string) emaSlowPast, 2) Etykieta i wartość w linii 2 P rintDebugValue (emaFastPast:, (string) emaFastPast, 3) Etykieta i wartość w linii 3, jeśli (emaFastPast gt emaSlowPast ampamp emaFastCurrent lt emaSlowPast Sprawdź, czy powolne MA i szybkie MA przecinają ampamp kvoSignal lt 0) Sprawdź czy wartość sygnału KVO jest mniejsza od 0 PlaceTrade (OPSELL) Miejsce SELL-Trade dla Strategy-Tester, funkcja znajduje się w BinaryOptionsStrategyFunctions. mqh, jeśli (emaFastPast lt emulator emaSlowPast emaFastCurrent gt emaSlowPast Sprawdź, czy powolne MA i szybkie MA krzyżują się z ampamp kvoSignal gt 0) Sprawdź, czy wartość sygnału KVO jest większa niż 0 PlaceTrade (OPBUY) Miejsce BUY-Trade for Strategy-Tester, funkcja znajduje się w BinaryOptionsStrategyFunctions. mqh ------------------------------ ------------------------------------ Pobierz wartości MA dla okresu, metody, zastosowanej ceny i zmiany. Szczegółowe informacje na temat iMA () patrz docs. mql4indicatorsima ---------------------------------------- -------------------------- double GetValueForMA (okres int, int shift) zwraca iMA (NULL 0, period, 0, methodboth, appliedpriceboth, shift) ------------------------------------------------ ------------------ Przykład uzyskiwania wartości z zewnętrznych wskaźników zobacz docs. mql4indicatoricustomicustomic: Parametry: int buffer - indicator-buffer (zaczyna się od 0) int shift - wartość do przesunięcia 0 aktualna świeca, 1 świeca prev -------------------------------------------- ---------------------- double GetValuesFromIndicatorKVO (int buffer, int shift 0) Zmień KVO na nazwę wskaźnika return (iCustom (NULL. NULL dla bieżącego przedziału czasowego wybranego w testerze - NIE POTRZEBNE ZMIANY 0. 0 dla aktualnego symbolu wybranego w testerze - NIE POTRZEBNE ZMIANY ROZPOCZĘCIE EDYCJI Pliki do pobrania KVO. ex4 Ścieżka do pliku i nazwa pliku wskaźnika (plik. ex4) WSKAŹNIKI WEJŚĆ WSTĘPNYCH 34. 55. 13. ZAKOŃCZ ODBIORU WEJŚĆ bufor ED, Indeks bufora (zaczyna się od 0), buff er jest adresowany do parametru funkcji - ŻADNE ZMIANY POTRZEBUJ przesunięcie Shift (0 dla aktualnej świecy), przesunięcie jest adresowane nad parametrem funkcji - NIE POTRZEBNE ZMIANY)) Możliwe jest również poprawienie parametrów wejściowych naszego wskaźnika strategii o wartości dla użytych Wskaźnik KVO i ustaw wartości w funkcji pomocnika według zmiennych. Ponieważ ten samouczek powinien być tylko przykładem i możliwie najprostszym, ten wariant nie jest pokazany. 3.3 Kompletny kod Poniżej znajduje się pełny kod Binary-Options-Strategy-Example ze wszystkich powyższych kroków, gotowy do przeciągnięcia na Binary-Options-Strategy-Tester, aby przetestować i zobaczyć wyniki na wykresie: --- -------------------------------------------------- ------------- BinaryOptionsStrategyExample. mq4 Copyright 2018, martin mql5enusersmartin ----------------------------- ------------------------------------- własność copyright Copyright 2018, martin property link mql5enusersmartin własność wersji 1.00 własność strict property indicatorseparatewindow ----------------------------------------------- ------------------- Tutaj wstaw parametry wejściowe - patrz przykład poniżej ---------------------- -------------------------------------------- --- wprowadzenie parametrów wejściowych int periodfast 5 Szybkie wprowadzenie wartości MA int periodlow 10 Powolne wprowadzanie wartości MA Metoda ENUMMAMETHOD przy wprowadzeniu metody MODESMA MA ENUMAPPLIEDPRICE zastosowana cena od ceny MA MAKSYMALNIE MA zastosowanej CallStrategy () Ca W strategii, funkcja jest locatet w BinaryOptionsStrategyLibrary. mqh (uwzględniona powyżej) --- zwracana wartość wcześniej obliczona dla następnego połączenia return (ratestotal) --------------------- --------------------------------------------- Umieść swoje reguły handlowe tutaj - patrz przykład poniżej. StrategyTester wywoła tę funkcję, aby umieścić transakcje. NIE: - Zmień nazwę funkcji - Dodaj parametry funkcji, np. CheckMyRules (int a) - Zmień typ zwracanej funkcji, np. int CheckMyRules () ---------------------------------------------- -------------------- void CheckMyRules () Przechowuj wartości MA z shift0 (aktualna świeca) - gt świeca, wywołuj funkcję pomocnika GetValueForMA (), aby uzyskać wartość - patrz funkcje pomocnicze poniżej podwójnego emaSlowCurrent GetValueForMA (periodslow, 0) double emaFastCurrent GetValueForMA (periodfast, 0) Przechowuj wartości MA z shift1 (przeszłość świecy) - ostatnia świeczka, funkcja help call GetValueForMA (), aby uzyskać wartość - zobacz funkcje pomocnika poniżej double emaSlowPast GetValueForMA (periodslow, 1) double emaFastPast GetValueForMA (periodfast, 1) Zapisanie wartości sygnału (bufor 1) wskaźnika KVO z aktualnej świecy (przesunięcie 0) double kvoSignal GetValuesFromIndicatorKVO (1. 0) PrintDebugValue (emaSlowCurrent:, (string) emaSlowCurrent , 0) Etykieta i wartość w linii 0 PrintDebugValue (emaFastCurrent:, (string) emaFastCurrent, 1) Etykieta i wartość w linii 1 PrintDebugValue (emaSlowPast:, (string) emaSlowPast, 2) Etykieta i wartość w linii 2 P rintDebugValue (emaFastPast:, (string) emaFastPast, 3) Etykieta i wartość w linii 3, jeśli (emaFastPast gt emaSlowPast ampamp emaFastCurrent lt emaSlowPast Sprawdź, czy powolne MA i szybkie MA przecinają ampamp kvoSignal lt 0) Sprawdź czy wartość sygnału KVO jest mniejsza od 0 PlaceTrade (OPSELL) Miejsce SELL-Trade dla Strategy-Tester, funkcja znajduje się w BinaryOptionsStrategyLibrary. mqh, jeśli (emaFastPast lt emulator emaSlowPast emaFastCurrent gt emaSlowPast Sprawdź czy powolne MA i szybkie MA przecinają ampamp kvoSignal gt 0) Sprawdź, czy wartość sygnału KVO jest większa niż 0 PlaceTrade (OPBUY) Miejsce BUY-Trade for Strategy-Tester, funkcja znajduje się w BinaryOptionsStrategyLibrary. mqh ------------------------------ ------------------------------------ Pobierz wartości MA dla okresu, metody, zastosowanej ceny i zmiany. Szczegółowe informacje na temat iMA () patrz docs. mql4indicatorsima ---------------------------------------- -------------------------- double GetValueForMA (okres int, int shift) zwraca iMA (NULL 0, period, 0, methodboth, appliedpriceboth, shift) ------------------------------------------------ ------------------ Example how to get values from external indicators, see docs. mql4indicatorsicustom Parameters: int buffer - indicator-buffer (starts with 0) int shift - value to shift 0 current candle, 1 prev candle ------------------------------------------- ----------------------- double GetValuesFromIndicatorKVO( int buffer, int shift 0 ) Change KVO to indicator name return ( iCustom ( NULL. NULL for current timeframe selected in tester - NO CHANGES NEEDED 0. 0 for current symbol selected in tester - NO CHANGES NEEDED BEGIN EDIT DownloadsKVO. ex4. Filepath and filename of the indicator (.ex4 file) BEGIN INDCATORS INPUTS 34 , 55 , 13 , END FOR INPUTS END EDIT buffer , Buffer index (begins with 0), b uffer is adressed over function parameter - NO CHANGES NEEDED shift Shift (0 for current candle), shift is adressed over function parameter - NO CHANGES NEEDED ) ) ----------------------------------------------------------------- 4. Run a backtest (video) The following video shows how to run a backtest of your Binary Options strategy in Strategy-Tester of MetaTrader 4: Start Binary-Options-Strategy-Tester in Strategy-Tester of MetaTrader 4 and set the input parameters Drag your Binary Options strategy indicator on the chart, set the input parameters and check Allow external expert imports on the common tab Drag your used indicators with their used input parameters on the chart to see their values while tester is running (optional) Save all settings in a template to run the test with all settings again - using the pause button of the Strategy-Tester (optional) See the results of your Binary Options strategy on the Strategy-Tester chart 5. Run a forward test To do a forward test simply drag the Binary-Options-Strategy-Tester utility and your strategy indicator on your demo or live chart of your broker instead of using it in Strategy-Tester: Drag Binary-Options-Strategy-Tester utility on demo or live chart and set the input parameters Drag your Binary Options strategy indicator on the chart, set the input parameters and check Allow external expert imports on the common tab Drag your used indicators with their used input parameters on the chart to see their values while forward test is running (optional) Save all settings in a template to run the test again with all settings (optional) See the results of your Binary Options strategy on demo or live chart Question: Why do you show an example of a non profitable Binary Options strategy Answere: This is just an example how to build a strategy in an Indicator to communicate with the Binary-Options-Strategy-Tester utility in marketplace to test and improve your strategy. Question: Binary-Options-Strategy-Tester stops after the exact amount of losses with error Array out of range. Why Answere: Binary-Options-Strategy-Tester can rise an error after x losses to stop Tester and to analyse the situaion on the chart. If you do not want to, just switch off the option in settings. 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-indicator 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 I can see the results Answere: Strategy-Tester of MetaTrader 4 can not handle Binary Options so these tabs con not be used. Therefore this utility calculates all wins and losses and prints the results on the chart. 7. Miscellaneous As I need a possibility to test Binary Options strategies automated in Strategy-Tester of MetaTrader 4 for long time periods in a short time and to do foward tests on the chart of the broker, this utility was build. I have spent a lot of time for the concept and the implementation of the Binary-Options-Strategy-Tester as well as for the documentation. Maybe there is a better way to do it and maybe some improvements will bring it closer to fit the needs of you. So please feel free to contact me for ideas for improvements

No comments:

Post a Comment