Saturday 18 November 2017

Mql4 ea ruchomą średnią


MetaTrader 4 - Eksperci. Moving Average - ekspert w MetaTrader 4.Robotliwy przeciętny ekspert w tworzeniu sygnałów handlowych używa jednej średniej ruchomej Otwarcie i zamknięcie pozycji odbywa się, gdy średnia ruchoma jest zgodna z ceną w ostatnio utworzonym indeksie prętów barowych równym 1 wielkość partii zostanie zoptymalizowana zgodnie ze specjalnym algorytmem. Doradca eksperta analizuje zbieżność średniej ruchomej i wykres cen rynkowych Kontrola jest wykonywana przez funkcję CheckForOpen Jeśli średnia ruchoma pasuje do pręta w taki sposób, że poprzednia jest wyższa Otwarta cena, ale niższa niż cena zamknięcia, pozycja KUPU zostanie otwarta Jeśli średnia z przeciętnej rundy pasuje do baru w taki sposób, że poprzednia cena jest niższa niż cena otwarta, ale wyższa niż cena zamknięcia, zostanie otwarta pozycja SPRZEDAJĄCIE ekspert jest bardzo prosty, ale skuteczna kontrola nad każdą pozycją jest wykonywana w zależności od poprzednich wyników transakcji Ten algorytm jest realizowany przez LotsOptimi zed Funkcja Podstawowy rozmiar partii jest obliczany na podstawie maksymalnego dopuszczalnego ryzyka. Parametr MaximumRisk wyświetla podstawowy procent ryzyka dla każdej transakcji Zwykle posiada wartość między 0 01 a 1 100 Przykładowo, jeśli Free margin AccountFreeMargin równa się 20 500 i zasady zarządzania kapitałem zakładają użycie ryzyka 2, podstawowy rozmiar partii to 20500 0 02 1000 0 41 Bardzo ważne jest, aby kontrolować dokładność wielkości partii i normalizować wynik z dopuszczalnymi wartościami Normalnie partie częściowe z krokiem 0 1 jest dozwolona Transakcja o objętości 0 41 nie będzie wykonywana Aby normalizować, funkcja NormalizeDouble jest używana z dokładnością do 1 znaku po punkcie To prowadzi do podstawowej partii 0 4 Podstawowe obliczanie partii na podstawie wolnego marginesu pozwala na zwiększenie wolumenu operacji w zależności od sukcesu handlowego, tj. handlu z reinwestycją Jest to podstawowy mechanizm z obowiązkowym zarządzaniem kapitałem w celu zwiększenia Efektywność Efektywność jest określana w zakresie, w jakim wielkość partii zostanie obniżona po nierentownych transakcjach Normalne wartości to 2,3,4,5 Jeśli poprzednie transakcje były nieopłacalne, kolejne wielkości spadną o współczynnik DecreaseFactor, aby poczekać nieopłacalny okres Jest to główny czynnik w algorytmie zarządzania kapitałem Pomysł jest bardzo prosty, jeśli handel wzrasta, eksperci pracują z podstawową partią, która zapewnia maksimum zysku Po pierwszej nieopłacalnej transakcji ekspert zmniejszy prędkość do nowego pozytywna transakcja Algorytm pozwala na wyłączenie redukcji prędkości, aby to zrobić trzeba podać wartość DecreaseFactor 0 Ilość transakcji z ostatnich nierównych zysków jest obliczana w historii handlu Na tej podstawie obliczona zostanie podstawowa partia. pozwala skutecznie zmniejszyć ryzyko zachodzące w wyniku szeregu nierentownych wielkości partii jest obowiązkowo sprawdzone na mi minimalny dopuszczalny rozmiar partii na koniec funkcji, ponieważ wcześniej wykonane obliczenia mogą prowadzić do partii 0. Ekspert jest przeznaczony głównie do pracy z dziennym okresem oraz w trybie testowym - za robienie na zamkniętych cenach nowy pasek, dlatego nie są potrzebne modele modeli typu "tick". Wyniki testów są przedstawiane w raporcie. Typowo, dwa średnie ruchome można wykorzystać do stworzenia strategii forex EA dla MT4 z tymi regułami. średnia długość okresu przejściowego jest wyższa od średniej średniej. Odblokuj, gdy długie okresy średniej ruchomej są powyżej krótkiej średniej średniej ruchomej. Na poniższym wykresie z terminalu MetaTrader, żółta linia jest krótkim okresem średniej ruchomej okresu 9, a czerwona linia długie okresy średnie ruchome Okres 18.Analizowanie wykresu możemy przepisać reguły handlowe lub sygnały forex. Kupuj, gdy żółta linia znajduje się nad czerwoną linią. Powiedz, kiedy żółta linia znajduje się pod czerwoną linią. długi czas kodujący tę strategię forex, przy użyciu Konstruktora strategii Molanis można utworzyć diagram handlowy, który przedstawia średnią ruchomej strategii w ciągu kilku minut Wystarczy przeciągnąć i upuścić dwie bloki analizy technicznej, jeden blok Kup i jeden blok Sprzedaj Podłączyć je i ustawić parametry bloku, aby uzyskać wykres podobny do poniższego diagramu handlowego zawiera dwie ścieżki obrotu Lewa jest zaznaczona Przejście z bloku START do bloku END. Można go przeczytać jako Kup 1 lot EURCAD przy 100 pip Take Profit i 50 pip Stop Loss kiedy krótkotrwała średnia średnioroczna 9 przekracza długi okres średnia ruchoma 18 Pamiętaj, aby przeczytać wykres handlowy w przeciwnym kierunku do przepływu handlowego. Prawidłowa ścieżka obrotu może być odczytana jako sprzedaż 1 EUR w EUR z 100 pip Take Profit i 50 pip Stop Utrata, gdy długi okres przejścia 18 jest wyższy od krótkiej średniej ruchomej średniej 9. Generowanie kodu MQL dla MetaTrader za pomocą jednego kliknięcia. W menu Diagram handlowy kliknij opcję Generuj kod MQL4, aby uzyskać e Klucz MQL4 Kreator strategii Molanis Strategy Builder umożliwia otwarcie doradcy ekspertów bezpośrednio z programu MetaTrader lub zapisanie go jako plik MQ4.Na przegap naszego filmu wideo na temat. Simple Expert Advisor. Problem 29 Utwórz poradnik dla ekspertów handlowych. Przedstawne argumenty. Przed zaczynając na program Doradca ds. Handlu, konieczne jest zdefiniowanie ogólnych zasad przyszłego programu. Nie ma ścisłego programu tworzącego reguły. Jednak po utworzeniu programu programista zazwyczaj go poprawia. Aby móc zrozumieć program w przyszłość musi być stworzona zgodnie z dobrze przemyślanym i łatwym do zrozumienia schematem, jest szczególnie ważne, jeśli program zostanie dalej udoskonalony przez innego programistę Najbardziej dogodnym programem jest ten, który składa się z bloków funkcjonalnych, z których każdy jest odpowiedzialny za część obliczeń Aby utworzyć algorytm Doradcy ds. Handlu, zapoznaj się z analizą programu operacyjnego. Jednym z najważniejszych danych w tworzenie zamówień handlowych jest informacją o zamówieniach już istniejących w terminalu klienta Niektóre strategie handlowe umożliwiają tylko jedno zamówienie jednokierunkowe Ogólnie rzecz biorąc, jeśli strategia handlowa zezwala na to, można jednocześnie otworzyć kilka zamówień w terminalu, chociaż ich liczba powinna być racjonalnie ograniczona Przy stosowaniu jakiejkolwiek strategii należy podejmować decyzje handlowe przy uwzględnieniu obecnej sytuacji Zanim decyzja o handlu zostanie podjęta w ramach programu, należy wiedzieć, jakie zamówienia handlowe zostały już otwarte lub umieszczone. Przede wszystkim program musi zawierać bloku rozliczeń zleceń, które należy do pierwszej. W trakcie podejmowania decyzji dotyczących obrotu EA, których wdrożenie prowadzi do realizacji operacji handlowych Część kodu odpowiedzialna za tworzenie zamówień handlowych jest lepiej napisana w odrębnym bloku Doradca ds. Ekspertów może złożyć wniosek o sprzedaż, aby otworzyć nowe zamówienie w toku lub na rynku, zamknąć lub zmodyfikować istniejące zlecenia lub nie wykonywać żadnych czynności na wszystkie EA musi również obliczyć ceny zamówień w zależności od życzenia użytkownika. Decyzje handlowe powinny być podejmowane w programie na podstawie kryteriów handlowych Sukces całego programu zależy od prawidłowości wykrywania kryteriów handlowych w programie Przy obliczaniu kryteriów handlowych program może i musi wziąć pod uwagę wszystkie informacje, które mogą być użyteczne Na przykład Expert Advisor może analizować połączenie wartości wskaźników technicznych, czasu ważnych wydań informacyjnych, bieżącego czasu, wartości niektórych poziomów cen itd. Dla wygody część programu odpowiedzialny za obliczanie kryteriów handlowych należy pisać w odrębnym bloku. Doradca zawodowy w handlu musi koniecznie zawierać blok przetwarzania błędów Analizując błędy, które mogą wystąpić podczas wykonywania operacji handlowych, można z jednej strony powtórzyć żądania handlowe, z drugiej strony, aby poinformować użytkownika o ewentualnej sytuacji konfliktu. Struktura prostego eksperta. Poniżej przedstawiono schemat strukturalny prostego eksperta • Doradca skonstruowany na podstawie kilku bloków funkcjonalnych, w każdym bloku pewna oderwana część obliczeń. 109 Strukturalny schemat prostego eksperta. Na następnym etapie rozwoju EA nie ma jeszcze kodu programu W tym samym czasie algorytm program jest w dużym stopniu ukształtowany W jaki sposób EA zbudowana na podstawie proponowanego schematu będzie działać można łatwo zrozumieć po prostu patrząc na schemat i orientując się na nazwy bloków i relacji kontroluje tablice między nimi. Po kontroli rozpoczęcia programu jest przekazywana blok wstępnego przetwarzania W tym bloku można analizować pewne ogólne parametry Na przykład, jeśli nie ma wystarczająco dużo prętów w słupkach okiennych niezbędnych do obliczania parametrów wskaźników technicznych, EA nie będzie w stanie działać poprawnie W takim przypadku EA musi zakończyć działanie wstępnie informując o tym użytkownika i zgłaszając przyczyny rozwiązania umowy Jeśli nie ma przeciwwindykacji o charakterze ogólnym, ntrol jest przekazywany do bloku księgowania zamówień. W bloku zamówień księgowych liczba i jakość zamówień istniejących w terminalu klienta dla zabezpieczenia okna, z którym jest dołączona EA, jest wykrywana W tym zleceniu blokowym innych papierów wartościowych należy wyeliminować zaprogramowana strategia handlowa wymaga jedynie zamówień rynkowych i nie wykorzystuje zamówień oczekujących na wykrycie faktu obecności oczekujących zamówień. Jeśli strategia dopuszcza tylko jedno zamówienie rynkowe i jest kilka zamówień, fakt ten powinien być również znany. bloku rozliczeniowego zamówienia w tym schemacie określa, czy obecna sytuacja handlowa odpowiada przewidywanemu, tj. takim, w którym EA może działać w odpowiedni sposób Jeśli sytuacja odpowiada, kontrola musi zostać przekazana do następnego bloku w celu kontynuowania operacji EA, jeśli nie , operacja EA musi zostać zakończona, a fakt ten musi być zgłoszony użytkownikowi. Jeśli nie ma zamówień w terminalu lub liczba i jakość istniejących zamówień odpowiada temu, czego się spodziewano, kontrolę przekazuje się do bloku definiowania kryteriów handlowych W tym bloku obliczane są wszystkie kryteria niezbędne do podejmowania decyzji handlowych, mianowicie kryteria otwierania, zamykania i modyfikowania zamówień Kolejność dalszej kontroli jest przekazywana do bloku zamykania zamówień. jest łatwy do zrozumienia, dlaczego w oferowanym schemacie blok zamykających zamówień jest wykonywany wcześniej niż blok otwierania zamówień Trudniejsze jest przetworzenie zamkniętych lub zmodyfikowanych już istniejących już zamówień, a dopiero po otwarciu nowych zamówień Ogólnie rzecz biorąc, prawidłowe jest kierować się pragnieniem uzyskania jak najmniejszych zamówień Podczas realizacji tego bloku należy zamknąć wszystkie zlecenia, dla których aktywowane jest kryterium zamknięcia, po zamknięciu wszystkich niezbędnych zamówień, kontrola zostaje przekazana do bloku nowego kalkulacja wielkości zamówień Istnieje wiele algorytmów obliczania wolumenu zlecenia Najprostszy z nich używa stałej, stałej wielkości partii Jest wygodny w użyciu ten algorytm w programie do testowania strategii Większa popularna metoda określania wielkości zamówienia polega na określeniu liczby partii w zależności od ilości wolnego marginesu, na przykład 30-40. Jeżeli wolny margines nie wystarcza, program kończy działanie, informując użytkownik o przyczynie. Po określeniu liczby partii dla otwarcia nowych zamówień, kontrola zostaje przekazana do bloku otwarcia zamówienia Jeśli którykolwiek z kryteriów obliczonych wcześniej wskazuje na konieczność otwarcia zamówienia określonego typu, żądanie handlowe dotyczące otwarcia zamówienia jest tworzony w tym bloku. Istnież błąd podczas analizowania bloku w Expert Advisor Jeśli jakakolwiek operacja handlowa nie powiedzie się, kontrolę tylko w tym przypadku jest przekazywana do bloku przetwarzania błędów Jeśli błąd zwrócony przez serwer lub terminal klienta nie jest kluczowy, podejmowana jest próba przeprowadzenia operacji handlowej Jeśli na przykład zostanie zwrócony główny błąd, konto zostanie zablokowane, EA musi zakończyć operację Pamiętaj, w MQL4 nie ma możliwości zakończenia programu operacyjnego EA w oknie zabezpieczeń w odróżnieniu od skryptów, zobacz Funkcje specjalne Co można zrobić w sposób programowy jest zakończeniem startu Na nowym początku funkcji zaczynamy od nowego zaznaczyć wartość pewnej flagi zmiennej zakazującej obrotu tym sprawa włączona w wyniku błędu krytycznego może zostać przeanalizowana, a kontrola może zostać przekazana do zakończenia operacji w funkcji specjalnej, dlatego nie jest dozwolone tworzenie nowych żądań handlowych W oferowanym schemacie wartość flagi jest analizowana w bloku wstępnego przetwarzania. Strategia handlu. Ceny rynkowe stale się zmieniają Stan rynku w dowolnym momencie może być scharakteryzowany warunkowo albo jako tendencja - silny wzrost cen jednokierunkowych zmian cen lub spadek lub jako płaski ruch cenowy ze słabymi odchyleniami od pewnej średniej Te cechy rynkowe są warunkowe, ponieważ nie istnieją jasne kryteria, zgodnie z którymi można zidentyfikować tendencję lub płaski przykładowo długie ruchy boczne o silnym odchyleniu które można prześledzić nie zarówno w kierunku mieszkania, jak i tendencji Ogólnie zakłada się, że rynek jest głównie w stanie ruchu bocznego i tendencje zwykle mają miejsce 15-20 czasu. strategie można również tradycyjnie podzielić na dwie główne grupy Pierwsza grupa zawiera strategie zorientowane na płaską strategię Główną ideą takich strategii jest to, że po wyraźnym odchyleniu ceny do poprzedniej pozycji, to właśnie dlatego rozkazy otwierają się w kierunku przeciwnym do ostatni ruch cen Druga strategia grupowa to strategie trendu, gdy zamówienia są otwierane w tym samym kierunku, co ruch cen soli Są bardziej skomplikowane strategie kombinowane Takie strategie uwzględniają wiele różnych czynników, które charakteryzują rynek w wyniku transakcji mogą być wykonywane zarówno na płaski i trend Trudno jest wdrożyć handel zgodnie z tą strategią techniczną - MQL4 zawiera wszystkie niezbędne środki dla niego Główną pracę w cr kiedy tylko własna strategia polega na wyszukiwaniu kryteriów handlowych. Kryterium zryczałtowania. W tym przykładzie będziemy próbować skonstruować trend Expert Advisor, czyli ten, który otworzy zamówienia w kierunku zmian cen Więc musimy znaleźć między różnymi technikami wskaźniki, które wykrywają początek trendu Jedną z najprostszych metod wyszukiwania kryteriów handlowych jest analiza kombinacji MA z różnymi okresami uśredniania Fig 111 i Fig. 112 przedstawiają pozycję dwóch różnych MA z okresami uśredniania 11 i 31 na różne części rynku Średnie z niewielkim okresem uśredniania Czerwone linie są bliżej wykresu cen, kręcone i ruchomości Średnie ruchy średnie z większą długością średniej linii są bardziej obojętne, mają większe opóźnienia i są oddalone od cen rynkowych Zwróć uwagę na miejsca, w których Macierze o różnych okresach uśredniania i starają się zdecydować, czy fakt przekroczenia MA może być użyty jako kryterium czytania. Fig 111 Przekraczanie MA 11 i MA 3 1, gdy zmienia się kierunek zmian cen. Na wykresie 111 widać część rynkową, w której uzasadnione jest otwarcie zamówień w kierunku przepływu cen przy przekroczeniu MA w punkcie A czerwona linia przecina niebieski od dołu w górę, po czym cena rynkowa nadal rośnie przez jakiś czas Dalsze odwrócenie krzyży MA oznacza zmianę kierunku zmiany ceny Jeśli otworzymy Zlecenie kupna w punkcie A i zamkniemy go w B, zyskujemy proporcjonalnie do różnicy cen A i B. Poniżej 112 Przekraczanie MA 11 i MA 31 kiedy zmienia się kierunek zmian cen. Jedynie w innych momentach na rynku pojawiają się momenty krzywej MA, ale nie prowadzi to do dalszego znacznego wzrostu cen lub spadku cen. Rys. 112 Zlecenia otwierane przy przejściu MA w takich momentach doprowadzą do strat Jeśli sprzedaż jest otwarte w A i zamknięte w B, takie transakcje przynoszą straty To samo można powiedzieć o zleceniu kupna otwarciu w B i zamknięciu w C. Sukces całej strategii realizowanej na podstawie przekroczenia MA zależy od liczby części t kapelusz może być scharakteryzowany jako tendencja i płaski W płaskich często przejściach MA jest regularnym wydarzeniem, które zakłóca jakąkolwiek strategię trendu Liczne fałszywe sygnały co do zasady prowadzą do strat To dlatego ten znak przejścia MA z różnym okresem uśredniania może być używany do budowanie strategii handlowych tylko w połączeniu z innymi oznakami świadczącymi o tendencji W tym przykładzie na budowę prostego doradcy ekspertów będziemy musieli odmówić używania tego oznaczenia. Będziemy używać innego znaku Analizując wizualnie charakter zmian cen na rynku, widzimy, że długie, jednokierunkowe podwyższenie cen lub spadek cen często pojawia się w wyniku krótkiego silnego ruchu Innymi słowy, jeśli w krótkim okresie nastąpi silny ruch, możemy spodziewać się kontynuacji w średnim okresie. może doprowadzić do rozwoju tendencji. Na wykresie 113 pokazano okres rynkowy, w którym silny ruch spowodował kontynuację zmian cen w tym samym kierunku, co silny ruch możemy użyć różnych ence macierzy o różnych okresach uśredniania Im silniejszy ruch, tym większa jest opóźnienie MA przy większym okresie uśredniania od MA przy małym okresie uśredniania Ponadto nawet silne nieciągłe zmiany cen przy następnym powrocie nie powodują znacznej różnicy między MAs , tzn. liczne fałszywe sygnały nie pojawiają się Na przykład, skok o 50 punktów przy dalszym powrocie w centrum na rys. 113 spowodował wzrost różnicy między MAs tylko o 20 punktów W tym samym czasie silny ruch, który zazwyczaj nie towarzyszy znaczna korekta w punkcie A spowodowała wzrost różnicy w granicach od 25 do 30 punktów. Jeśli zlecenie kupna zostanie otwarte po osiągnięciu pewnej wartości różnicy między MAs, na przykład w A, prawdopodobnie zamówienie będzie opłacalne, gdy cena osiągnie poziom preset Stop order value Niech s użyje tej wartości jako kryterium handlowego w naszym Expert Advisor. Number zamówień. W tym przykładzie analizujemy Expert Advisor, który akceptuje obecność tylko jednego m zlecenie rynkowe, oczekujące zlecenia nie są dostarczone Takie podejście jest uzasadnione nie tylko w tym konkretnym przykładzie, ale może stanowić podstawę dla każdej strategii. Zlecenia rozliczeniowe są zwykle stosowane, gdy deweloper ma dość wiarygodne kryterium prognozowania przyszłej zmiany cen z dużym prawdopodobieństwem Jeśli nie ma takiego kryterium, nie ma potrzeby korzystania z oczekujących zamówień. Sytuacja, gdy nie jest otwarta wiele sprzecznych zleceń dla jednego papieru wartościowego, nie można też uznać za rozsądną. Napisano wcześniej, że z ekonomicznego punktu widzenia przeciwnie do zamówień uważa się za bezsensowne , zwłaszcza jeśli ceny zamówień są równe zobacz Zamykanie i skasowanie zamówień W takim przypadku powinniśmy zamknąć jedno zlecenie przez kolejny i zaczekać na sygnał, aby otworzyć jedno zlecenie rynkowe w określonym kierunku. Zatwierdzenie Kryteriów Obrotu. Z tej pozycji staje się jasne, jakie relacje są możliwe między kryteriami handlowymi Rys. 114 przedstawia trzy warianty korelacji kryteriów handlowych, gdy każde kryterium jest ważne ważne działania o pening i zamykanie zleceń rynkowych odbywa się zgodnie z ruchem wskazówek zegara na poniższych zdjęciach. Fig 114 Kryteria otwarcia i zamknięcia zlecenia zamawiania a i b - poprawne, c - nieprawidłowe. Najpopularniejszym wariantem poprawnie uformowanych kryteriów handlowych jest wariant a Po otwarciu rynku kolejność Kupowanie odbywa się do momentu, w którym kryterium wymagające jego zamknięcia wyzwalaczy Po tym nastąpi pauza, gdy żadne zlecenia nie zostaną otwarte Kolejna decyzja o zleceniu sprzedaży może zostać otwarta Warunki zamknięcia Zlecenia sprzedaży zgodnie z prawidłowo ustalonymi kryteriami występują wcześniej, niż warunki dla otwierając zlecenie kupna Można jednak ponownie otworzyć zlecenie kupna, jeśli wymaga to kryterium handlowego Zgodnie z tym wariantem nie można otworzyć zlecenia rynkowego, jeżeli w przeciwnym kierunku jest porządek na rynku otwartym. Podobne korelacje w kryterium wariant b Różnica polega na tym, że kryterium otwarcia dowolnego zleceń rynkowych jest równocześnie kryterium zamknięcia przeciwnego rzędu Ten wariant, jak waria nt a nie zezwala na jednoczesne otwarcie kilku terminalów w jednym terminalu na jednym zabezpieczeniu. Wariant korelacji kryteriów jest nieprawidłowa. Zgodnie z tym wariantem otwarcie zlecenia rynkowego jest dozwolone, gdy sprzeczne zlecenia nie są jeszcze zamknięte, co jest bezsensowne rzadkie przypadki, gdy wariant ten jest częściowo uzasadniony Otwarcie przeciwnej kolejności jest czasem dopuszczalne w celu wyrównywania strat występujących przy niewielkich korektach po silnych zmianach cen W takich przypadkach można otworzyć odwrotną kolejność o tej samej lub mniejszej wartości niż istniejąca, a następnie zamknięta, gdy korekta się skończy Taka taktyka nie pozwala na ingerowanie w główny porządek otwarty w kierunku tendencji. W ogólnym przypadku możliwe jest także kilka zleceń jednokierunkowych Może to być uzasadnione, gdy wcześniejsze otwarte zlecenie jest chronione przez zlecenie Stop i kryterium wskazujące na rozwój cen w tym samym kierunku wznowiło się jeszcze raz. Jednak przy tworzeniu takiej strategii deweloper musi być w pełni świadomy, że w przypadku gwałtownych zmian cen zlecenia zatrzymania mogą być nieobsługiwane przez niektórych brokerów przy pierwszym dotknięciu ceny I strata będzie proporcjonalna do całkowitej wartości jednokierunkowych zamówień rynkowych. W naszym przykładzie używamy wariantu b korelacji z kryteriami transakcyjnymi Wszystkie otwarte zlecenia rynkowe są zamykane albo przez zlecenie stopu, albo po tym, jak kryterium otwarcia zlecenia w przeciwnym kierunku stwarza tutaj kryterium zamknięcia Kup pokrywa się z momentem otwarcia sprzedaży i vice versa. Wielkość otwartych zamówień. W dowolnym obrocie Rozmieszczenie zamówień strategicznych powinno być racjonalnie ograniczone W prostym przypadku wielkość zamówienia jest ustalona w eksperymencie eksperta Przed rozpoczęciem operacji EA użytkownik może ustawić dowolne rozmiary przyszłych zamówień i pozostawić je na niezmienionym poziomie przez jakiś czas Dalsze zmiany w bilansie spowodują, że użytkownik może utworzyć nową wartość numerów partii otwartych zamówień. Zbyt mała wielkość zamówienia zapewnia większą pewność w działaniu przy nieprzewidywalnej zmianie rynku, ale zysk w przypadku sukcesu nie będzie tak duży Jeśli rozmiar zamówienia jest zbyt duży, można uzyskać duży zysk, ale taka EA będzie zbyt ryzykowna Zazwyczaj wielkość otwartych zamówień jest ustalona tak, że wymagania dotyczące depozytu zabezpieczającego nie przekraczają 2-35 procent salda lub wolnego marginesu jeśli strategia pozwala na tylko jedno otwarte zlecenie, saldo i wolny margines w chwili przed otwarciem zamówienia będzie równe. W tym przykładzie oba warianty są realizowane Użytkownik może wybrać albo wskazać bezpośrednio wartości zamówień, albo ustalić wartość procentową od free margin. Programming details. A prosty trend Ekspert Advisor zbudowany na podstawie wcześniejszych argumentów może wyglądać tak. Wymień Variables. One bardziej kryterium w ocenie programu jest jego czytelność Program uważa się za poprawnie napisany, jeśli można go łatwo przeczytać przez innych programistów, dlatego wszystkie najważniejsze części programu i najważniejsze momenty charakteryzujące strategię muszą zostać skomentowane. Dlatego też zaleca się deklarowanie i komentowanie wszystkich zmiennych na początku progr am. In blok 1-2 zewnętrznych i globalnych zmiennych są opisane. Zgodnie z regułami, zmienne zewnętrzne i globalne muszą być otwarte przed ich pierwszym użyciem, patrz Rodzaje zmiennych, dlatego są zadeklarowane w części głównej programu Wszystkie lokalne zmienne uruchomienie funkcji jest gromadzone i opisywane w górnym bloku części funkcji 2-3 bezpośrednio po nagłówku funkcji. Reguły deklarowania zmiennych lokalnych nie wymagają tego, ale również nie zabraniają, jeśli programista ma trudności z zrozumieniem znaczenia zmiennej podczas czytania program, może odwoływać się do górnej części programu i dowiedzieć się, jakie znaczenie i typ dowolnej zmiennej jest bardzo wygodne w praktyce programowania. Blokada wstępnego przetwarzania. W tym przykładzie wstępne przetwarzanie składa się z dwóch części blokowych 3-4 Program kończy się jeśli w takim przypadku nie ma wystarczająco dużo prętów w oknie zabezpieczeń, nie można wykryć poprawnie w blokach 5-6 wartości średnic ruchomych niezbędnych do obliczenia kryterium a Poza tym wartość zmiennej Praca jest analizowana W normalnej pracy EA zmienna wartość jest zawsze prawdziwa, która jest ustawiona raz podczas inicjalizacji Jeśli wystąpi błąd krytyczny w działaniu programu, fałsz jest przypisany do tej zmiennej i rozpocznie działanie wartość nie zmieni się w przyszłości, dlatego nie wykonuje się następującego kodu: W takim przypadku należy zatrzymać działanie programu i powodować krytyczny błąd w razie potrzeby, w razie potrzeby skontaktować się z centrum handlowym po rozwiązaniu problemu , można uruchomić program ponownie, tj. EA może być dołączony do okna zabezpieczeń. Zlecenia księgowe. Opisany Doradca Specjalisty pozwala pracować tylko z jednym zamówieniem na rynku Zadanie bloku blokowego rozliczania zamówień 4-5 to zdefiniowanie cech charakterystycznych otwarte zlecenie, jeśli jest jedno W pętli przechodzącej przez zamówienia dla wszystkich istniejących zamówień na rynku i oczekujących na sprawdzenie, mianowicie z pierwszego int i 1 do ostatniego i lt OrdersTotal W każdej cy cle iteration kolejny zbiór jest wybierany przez funkcję OrderSelect Wybór jest dokonywany ze źródła otwartych zamówień SELECTBYPOS. Jeśli wybór jest wykonywany pomyślnie, tzn. jest jeszcze jedno zamówienie w terminalu, to kolejny rozkaz i sytuacja muszą być analizowane czy jest otwarte zlecenie dla bezpieczeństwa, w którym działa EA, niezależnie od tego, czy zamówienie jest dostępne na rynku, czy też oczekuje na nią, należy wziąć pod uwagę przy liczeniu zamówień. W kolejce wszystkie zlecenia otwarte na inne zabezpieczenie zostaną usunięte. Operator kontynuuje zatrzymanie iteracji i cechy charakterystyczne takiego zamówienia nie są przetwarzane. Jeśli zamówienie zostanie otwarte dla bezpieczeństwa, do okna, w którym jest dołączona EA, jest ono dalej analizowane. Jeśli wartość OrderType zwróci wartość większą niż 1, zobacz Typy transakcji, wybrane zamówienie to oczekujący jednego Ale w tym Poradniku ekspertów zarządzającym zarządzaniem oczekującym nie jest dostarczony Oznacza to, że wykonanie rozpoczęcia musi zostać zakończone, ponieważ wystąpiła sytuacja konfliktowa W takim przypadku po komunikat o uruchomieniu zakończenia operacji zostaje zatrzymany przez operatora. Jeśli ostatnia kontrola wykazała, że ​​analizowane zlecenie to zlecenie rynkowe, całkowita liczba zleceń dla zabezpieczenia jest obliczana i analizowana Dla pierwszego z takich zamówień wszystkie wymagane cechy są zdefiniowane Jeśli w następnej iteracji zmienna licznika zliczania Razem znajdzie drugie zamówienie rynkowe, sytuacja jest również uważana za konflikt, ponieważ EA nie może zarządzać więcej niż jednym zamówieniem rynkowym W takim przypadku rozpoczęcie wykonywania jest zatrzymane po wyświetleniu odpowiedniego komunikatu . W wyniku realizacji bloku księgowego zamówień, jeśli wszystkie kontrole zakończyły się sukcesem, zmienna Total zachowuje wartość zerową, jeśli nie ma zamówień rynkowych, lub otrzyma wartość 1, jeśli istnieje nasze zlecenie rynkowe dla naszego zabezpieczenia W tym ostatnim przypadku określone zmienne w korespondencji z numerem charakterystyki zamówienia, rodzajem, ceną otwarcia, poziomem zatrzymania i wartością zamówienia również otrzymują wartości. Obliczenie Kryteriów Transakcyjnych. W ana lyzowana przykładowa definicja kryterium handlowego blok 5-6 jest obliczana na podstawie różnicy między średnimi Ruchy a różnymi okresami uśredniania Zgodnie z przyjętymi kryteriami wykres jest kierowany byka, jeśli bieżąca wartość MA z mniejszym okresem jest większa niż wartość MA z większym okresem, a różnica między wartościami jest większa od pewnej wartości. W ruchu oporu MA o mniejszym okresie jest niższy niż MA z większym okresem, a różnica jest również większa niż pewna wartość krytyczna. okresów średnich z okresami uśredniania okresów PeriodMA1 i PeriodMA2 Istotność jakiegokolwiek kryterium handlowego wyrażana jest poprzez wartość odpowiadającej zmiennej Zmienne OpnB i OpnS oznaczają kryterium wyzwalające otwarcie zleceń kupna i sprzedaży, zmiennych Cls i ClsS - dla zamknięcia For przykład, jeśli kryterium otwarcia Buy nie zostało wywołane, wartość OpnB pozostaje false ustawiona na inicjalizację zmienną, jeśli ma try w tym przypadku kryterium zamknięcia sprzedaży pokrywa się z założeniem otwarcia Kupującego, kryterium otwarcia Sprzedazy pokrywa się z momentem zamknięcia kryteriów kupna. Kryteria zryczałtowania przyjęte w tym przykładzie są wykorzystywane wyłącznie do celów edukacyjnych i nie mogą być brane pod uwagę jako wytyczne przy obrocie na rachunku rzeczywistym. Zleceń zleceń. Zostało wcześniej napisane, że ten doradca eksperta jest przeznaczony do działania tylko z jednym zamówieniem rynkowym otwartym na zabezpieczenie, do którego okna EA jest dołączony Do momentu, w którym kontrola w programie jest przekazywany do bloku zamykania zamków, jest wiadomo na pewno, że w chwili obecnej nie ma ani zamówień na zabezpieczenie, albo jest tylko jedno zamówienie rynkowe. Dlatego kod w bloku zamykania zamówień jest zapisany tak, że tylko jedno zamówienie może może być pomyślnie zamknięty. Ten blok jest oparty na nieskończonej pętli, podczas gdy jej ciało składa się z dwóch analogicznych części dla zamykania zlecenia kupna, a druga dla zamknięcia zlecenia sprzedaży. e w przypadku awarii operacji handlowych może zostać powtórzona ponownie. W nagłówku pierwszego operatora, jeśli zostanie obliczony warunek zamknięcia zamówienia kupna Zlecenia sprzedaży są zamykane w sposób analogiczny Jeśli rodzaj wcześniejszego otwartego zamówienia odpowiada Kupuj Typy transakcji i znak zamykania Kup jest istotny, kontrola jest przekazywana do organu, jeśli operator, w którym ma zostać zamykany wniosek o zamknięcie Jako zamawianą cenę zamknięcia w funkcji ZlecenieZamknij wartość dwustronnej wyceny odpowiadającej typ zlecenia jest podany w sekcji Wymagania i ograniczenia w dokonywaniu transakcji Jeśli operacja handlowa zostanie wykonana pomyślnie, po wyświetleniu komunikatu o zamknięciu zlecenia, podczas gdy iteracja zostanie zatrzymana, a blok zamykania zamówienia zostanie zakończony. , zdefiniowana przez użytkownika funkcja do obsługi błędów FunError nazywana jest blokiem 10-11.Processing Errors. As przekazany parametr w FunError jest używany ostatni kod błędu obliczony przez GetLastError Depe nding na kod błędu FunError zwraca 1, jeśli błąd nie jest krytyczny i operacja może być powtórzona, a 0 jeśli błąd jest krytyczny Krytyczne błędy są podzielone na dwa typy - te, po których można kontynuować wykonanie programu, a wspólny błąd i te, po których wykonywanie jakichkolwiek operacji handlowych musi zostać zatrzymane, na przykład zablokowane konto. if po nieudanej operacji handlowej, funkcja zdefiniowana przez użytkownika zwraca 1, bieżącą podczas iteracji kończy się, a podczas następnej iteracji zostanie wykonana kolejna próba aby wykonać operację - aby zamknąć kolejność Jeśli funkcja zwróci 0, bieżąca operacja rozpoczęcia zostanie zatrzymana Następny start zostanie rozpocznięty przez terminal klienta i jeśli zachowane zostaną warunki zamknięcia zleceń, kolejna próba zamknięcia zamówienia Jeśli podczas przetwarzania błędów okaże się, że dalsza realizacja programu jest bez sensu, na przykład program działa na starej wersji klienta podczas kolejnego startu t wykonywanie funkcji specjalnego startu zostanie zakończone w bloku wstępnego przetwarzania przy analizie wartości zmiennej Work. Kalkulowanie ilości partii dla nowych zamówień. Polecenie partii może być obliczone zgodnie z ustawieniami użytkownika po jednym z nich dwa warianty Pierwszym wariantem jest określona stała wartość ustalona przez użytkownika Zgodnie z drugim wariantem kwota partii jest obliczana na podstawie sumy równej pewnej wartości procentowej ustalonej przez użytkownika wolnego marginesu. Na początku bloku definiowania ilości partii dla nowych bloków zamówienia oblicza się 7-8 niezbędnych wartości niektórych zmiennych - minimalna dozwolona ilość partii i etap zmiany partii ustanowione przez brokera, wolny margines i cenę jednej partii dla bezpieczeństwa. W tym przykładzie dostarczono następujące informacje: Jeśli użytkownik utworzył pewną zerową wartość zmiennej zewnętrznej Lts, na przykład 0 5, przyjmuje się ją jako ilość partii Lts, gdy zostanie złożone żądanie handlowe, aby otworzyć zamówienie 0 jest jak podpisane do Lts, liczba partii Lts jest określona na podstawie zmiennej progowej procentowej, wolnego marginesu i warunków ustalonych przez pośrednika. Po obliczeniu Lts, przeprowadza się sprawdzenie Jeśli ta wartość jest niższa niż minimalna dozwolona wartość, minimalna dopuszczalna wartość jest akceptowana, ale jeśli wolny margines nie wystarcza, po odpowiednim komunikacie następuje zakończenie realizacji. Otwieranie zamówień. Blok otwarcia blokuje 8-9, np. bloke zamówień otwarcia jest pętlą nieskończoną, natomiast w nagłówku pierwszego operatora, jeśli warunki otwarcia Zlecenia kupna są obliczane, jeśli nie ma zamówień dla zmiennej zabezpieczeń Razem wynosi 0, a znak otwierania Zlecenia kupna ma znaczenie OpnB jest prawdziwe, kontrola jest przekazywana do organu operacyjnego w celu otwarcia zamówienie W takim przypadku po odświeżeniu stawki ceny za poziomy zatrzymania są obliczane. Wartości poziomów zatrzymania są początkowo ustalane przez użytkownika w zmiennych zewnętrznych StopLoss i TakeProfit W ogólnym przypadku użytkownik może ustawić wartości dla tego par ameters mniejsze, że pośrednik pozwala Poza broker może zmienić minimalną odległość w dowolnym momencie często zdarza się na silne ruchy na rynku, na przykład przed ważnym wydaniem wiadomości To dlatego przed każdym stopniem otwarcia zleceń muszą być obliczane biorąc pod uwagę wartości ustawione przez użytkownika i minimalną dopuszczalną wartość ustawioną przez pośrednika. Do obliczania poziomu zatrzymania definiowana przez użytkownika funkcja NewStop jest używana jako przekazany parametr Stopień poziomu zatrzymania ustawiony przez użytkownika jest używany W programie NewStop pierwszy bieżący minimalny dozwolony dystans jest obliczana Jeśli wartość ustawiona przez użytkownika odpowiada wymaganiom brokera, wartość ta jest zwracana Jeśli jest ona mniejsza od dopuszczalnej wartości, wartość dozwolona przez pośrednika jest stosowana Ceny żądań zatrzymania są obliczane z odpowiedniej dwustronnej wyceny see Requirements and Limitations in Making Trades. A trade request to open an order is formed using the function OrderSend For the calculation of order opening price and prices of stop requests t he two-sided quote values corresponding to the order type are used If a trade operation was successful i e a server returned the number of an opened order after a message about a successful order opening is shown start execution is finished If an order was not opened and the client terminal returned an error, the error is processed according to the algorithm described earlier. Some Code Peculiarities. The analyzed Expert Advisor code is oriented to the implementation of a certain strategy Note, some program lines contain variables and calculations that would be changed, if the strategy were changed. For example, according to the accepted strategy the Expert Advisor is developed to work only with one order This allowed to use the variable Ticket both for the identification of a closing order number in block of closing 6-7 and for the identification of a success of a trade operation execution when opening an order in the block of opening 8-9 In this case such a solution is acceptable Howeve r, if we take the analyzed code as the basis for the implementation of another strategy for example allow opposite orders we will have to introduce one or several variables to be able to recognize numbers of opened orders and identify the success of trade operations. In further strategy modifications we will have to change come program lines containing part of logics contained in the source strategy Namely in the order accounting block we will not have to terminate the program operation if there are several open orders for a security Besides, conditions for opening and closing orders will alslo change This will entail the code changing in blocks of opening and closing orders. On the basis of this analysis we can easily conclude that the described simple Expert Advisor is not perfect In a general case, for the implementation of order accounting one should use a universal function based on using data arrays and not containing logics of a certain strategy The same can be said about the bloc ks of opening and closing orders A more complete program must contain a main analytical function, all other user-defined functions must be subordinate to it This analytical function must contain a program code, in which all conditions for the implementation of any strategy are analyzed all subordinate functions must perform limited actions The function of accounting orders must only account orders, functions of opening and closing orders must only open and close orders, and the analytical function must think and manage all other functions, i e call them when needed.

No comments:

Post a Comment