3. Sygnały handlowe :

Техническое задание

1. Idea systemu handlowego jest następująca : wejścia na rynek odbywają się, gdy główna linia MACD i linia sygnałowa przecinają się zgodnie z aktualnym kierunkiem trendu . 2. Trend jest określany na podstawie wykładniczej średniej kroczącej z określonym okresem (InpMATrendPeriod). Jeśli bieżąca wartość EMA jest większa od poprzedniej, trend uznaje się za rosnący (ema_current > ema_previous). Alternatywnie, jeśli bieżąca EMA jest niższa od poprzedniej, trend uznaje się za spadający (ema_current < ema_previous). 3. Sygnały handlowe : Sygnał kupna: główna linia MACD przecina linię sygnałową ku górze (macd_current>signal_current && macd_previous signal_previous). Poniższy rysunek przedstawia przypadki kupna i sprzedaży. 4. Pozycje zamykane są przy przeciwnych sygnałach: pozycje kupna zamykane są przy sygnałach sprzedaży, a pozycje sprzedaży zamykane są przy sygnałach kupna. 5. Pozycje otwierane są po cenie rynkowej, gdy pojawia się nowy słupek. Doradca Eksperta ma być testowany z wykorzystaniem cen otwarcia, więc nie ma potrzeby dodawania funkcji wyłączania operacji wewnątrz słupka. 6. Dodatkowe filtry do otwierania pozycji : Wartość bezwzględna głównej linii MACD zostanie wykorzystana do odfiltrowania słabych sygnałów: sygnał zostanie potwierdzony tylko wtedy, gdy ta wartość będzie większa niż open_level (w punktach). Warunki potwierdzenia sygnału są następujące: Potwierdzenie sygnału kupna: Abs(macd_current)>open_level Potwierdzenie sygnału sprzedaży: macd_current>open_level 7. Dodatkowe filtry do zamykania pozycji : Wartość bezwzględna głównej linii MACD zostanie również wykorzystana do potwierdzenia zamknięcia pozycji: sygnał zostanie potwierdzony, jeśli ta wartość będzie większa niż close_level (w punktach). Warunki potwierdzenia sygnału zamknięcia są następujące: Potwierdzenie zamknięcia pozycji kupna — macd_current>close_level Potwierdzenie zamknięcia pozycji sprzedaży — Abs(macd_current)>close_level 8. Close by Take Profit — podczas otwierania pozycji, poziom Take Profit jest ustawiany w stałej odległości od ceny otwarcia, określonej w punktach. Wartość jest ustawiana w parametrze wejściowym InpTakeProfit. 9. Zarządzanie stanowiskami TrailngStop służy do ochrony zysku. Stop Loss jest ustawiany, jeśli zysk w punktach przekroczy wartość określoną w parametrze InpTrailingStop. Jeśli cena nadal porusza się w kierunku zysku, Stop Loss powinien zostać przesunięty w zadanym odstępie. Stop Loss nie może zostać przesunięty w kierunku straty, tj. jego wartość nie może zostać zwiększona. Jeśli żadne ze zleceń ochronnych (Take Profit lub Stop Loss) nie zostanie aktywowane, pozycja powinna zostać zamknięta sygnałem przeciwnym. Inne metody wyjścia z pozycji nie są dostępne. Co zawiera Specyfikacja wymagań? Pomysł na handel Opisz ogólną ideę leżącą u podstaw w pierwszej części Specyfikacji Wymagań. Przykład: „Jeśli cena zbliży się do poziomu oporu dwukrotnie i od niego odbije, następnym razem prawdopodobnie przebije opór”. W tym miejscu możesz dodać wykres z liniami oporu/wsparcia, wskaźnikami i objaśnieniami. Dokładne liczby ani algorytmy obliczeniowe nie są wymagane w opisie pomysłu. Dlatego w tym przykładzie nie musimy wyjaśniać, jak określić: poziom oporu, wybicie poziomu, koncepcja „prawdopodobnie”. Pewna abstrakcja na początkowym etapie pomoże skupić się na idei, a nie na szczegółach technicznych. W ten sposób możesz generować wiele modyfikacji swojej strategii handlowej, zastępując lub łącząc bloki strategii, wskaźniki i filtry. Dzięki wspólnej idei, będziesz używać różnych parametrów wejściowych dla swoich robotów handlowych. Następnie należy opisać wszystkie terminy i pojęcia zawarte w opisie pomysłu. Jeśli trend jest istotny dla Twojej strategii, jasno określ, jaki wskaźnik należy zastosować do określenia kierunku i siły trendu. Charakterystyki liczbowe tych definicji stanowią podstawę parametrów wejściowych doradcy eksperckiego i można je zoptymalizować w testerze strategii. Zatem pierwszą sekcją specyfikacji wymagań jest „Pomysł inwestycyjny”. Terminy i definicje Zaleca się utworzenie osobnej sekcji w Specyfikacji Wymagań, w której wyjaśnione zostaną powiązane terminy i definicje. Wyjaśnij terminy w osobnych akapitach. Użyj pogrubionej czcionki , aby wyróżnić kluczowe koncepcje swojej strategii handlowej. W stosownych przypadkach możesz dodać obraz. Parametry wejściowe wybranego EA można zapisać kursywą. Sygnały handlowe To najważniejsza sekcja Specyfikacji Wymagań. Zawiera opis warunków, stanów rynkowych i wartości wskaźników, przy których powinna zostać zawarta transakcja kupna. Aby opisać każdy warunek wymagany do wygenerowania sygnału kupna, należy wybrać parametr liczbowy wpływający na pojawienie się sygnału. Na przykład, może to być typ wygładzania i okres średniej ruchomej . Te ważne parametry będą używane jako parametry wejściowe Twojego Doradcy Eksperckiego . Podaj osobny opis warunków sprzedaży, nawet jeśli są one przeciwstawne do kupna. Mogą one mieć specyficzne cechy, które programista może błędnie zinterpretować. Na przykład, warunek kupna może być ustawiony na „Wartość > 0”. Upewnij się, że podałeś dokładny warunek sprzedaży, taki jak „Wartość < 0” lub „Wartość <= 0”. Dodatkowe warunki i filtry są często wykorzystywane do potwierdzania lub anulowania sygnałów transakcyjnych. Wykorzystaj zrzuty ekranu różnych sytuacji rynkowych z wizualnym objaśnieniem wskaźników i konfiguracji. W przyszłości taka wizualizacja może pomóc Ci analizować sytuacje, gdy Twój EA ignoruje pozornie oczywisty sygnał lub zawiera transakcję w niekorzystnym momencie. Zrzuty ekranu i schematy blokowe Możesz użyć dowolnego darmowego programu do tworzenia zrzutów ekranu i schematów blokowych. Wskazówki dotyczące wyboru programów i sposobu ich używania znajdują się w artykule „ Jak stworzyć specyfikację wymagań dla zamówienia wskaźnika” . Artykuł zawiera również zalecenia dotyczące zamówienia wskaźnika strzałkowego generującego sygnały kupna i sprzedaży. Taki wskaźnik działający niezależnie od doradcy eksperckiego ułatwia sprawdzanie i monitorowanie robota handlowego zarówno w czasie rzeczywistym, jak i podczas testów wizualnych. Czas życia sygnałów/zleceń/pozycji Drugim ważnym elementem strategii handlowej jest wyjście z otwartej pozycji i usunięcie zleceń oczekujących. Sygnały handlowe mogą również zostać anulowane po pewnym czasie lub w wyniku wystąpienia określonych zdarzeń. Dlatego należy określić warunki zamknięcia pozycji kupna/sprzedaży, usunięcia zlecenia oczekującego lub anulowania sygnału. Zarządzanie otwartymi pozycjami i oczekującymi zleceniami Jeśli Twoja strategia handlowa zakłada zamykanie zleceń Stop Loss i Take Profit, opisz algorytm obliczeniowy. Opcjonalnie możesz poprosić o mechanizm trailingu, aby elastycznie modyfikować te poziomy. W takim przypadku musisz opisać warunki i algorytmy trailingu. Modyfikacja SL/TP może być przeprowadzana na otwarciu bara lub przy każdym ticku. Określ żądaną opcję w Specyfikacji Wymagań. Opcje on-tick i on-bar wpływają również na testowanie strategii. Przeczytaj koniecznie artykuł „ Testowanie strategii handlowych na rzeczywistych tickach” . Gdzie mogę uzyskać Specyfikację wymagań, jeśli nie potrafię jej utworzyć? Źle opracowana Specyfikacja Wymagań lub jej brak często wskazuje na brak sformułowania zasad systemu transakcyjnego. Zatem to, co Klient nazywa systemem transakcyjnym, jest w rzeczywistości jedynie koncepcją. Wszystkie niuanse i brak wymaganych opisów logicznych ujawnią się w trakcie procesu rozwoju. Deweloper będzie musiał rozważyć możliwe opcje, których Klient nie przedstawił. W takim przypadku programista może zaprogramować robota handlowego na własne ryzyko. Prawdopodobnie jednak stracisz dużo czasu na omawianie każdego możliwego problemu. Jeśli zachowanie robota odbiega od oczekiwań Klienta z powodu braku odpowiedniego opisu, takie zamówienie może zostać skierowane do arbitrażu. Klienci często oskarżają programistę o nieprawidłowe zaprogramowanie robota. Decyzja arbitrażowa będzie jednak oparta na Specyfikacji Wymagań. Zgodnie z Regulaminem Freelance , wszelka inna korespondencja nie będzie brana pod uwagę w sporach: W arbitrażu podstawą podejmowania decyzji jest wyłącznie Specyfikacja Wymagań. Czasami klient może mieć jasne zasady handlowe, ale z różnych powodów nie być w stanie stworzyć Specyfikacji Wymagań. Mogą pojawić się problemy z poprawnym opisem, wzorami matematycznymi, zagadnieniami związanymi z sieciami neuronowymi lub programowaniem maszynowym oraz innymi aspektami. W takim przypadku utworzenie Specyfikacji Wymagań można zlecić. Można to zrobić w sekcji „Porady programistyczne” lub „Inne” w usłudze Freelance. Wybierz jedną z tych kategorii, utwórz zlecenie o nazwie „Tworzenie specyfikacji wymagań dla zlecenia robota handlowego” i określ początkowy koszt pracy. Doświadczony programista systemów handlowych pomoże Ci opisać zasady Twojej strategii w przejrzystej i łatwej do zrozumienia formie. Użyj zrzutów ekranu, aby pokazać konfiguracje sygnałów handlowych na podstawie wykresów, wskaźników i obiektów graficznych, których używasz. Programista postara się zrozumieć Twój system transakcyjny i pomoże Ci przygotować opis algorytmu transakcyjnego. Jeśli nie potrafisz sformułować żadnych koncepcji (na przykład „pędu” lub „odbicia od poziomu”), programista może zasugerować gotowe pomysły oparte na swoim doświadczeniu. Z reguły każdą sytuację rynkową można opisać logicznie (a następnie programowo) za pomocą prostego modelu z parametrami wariacji. Taka wariacja może być wyrażona za pomocą określonego parametru, który później zoptymalizujesz w swoim Expert Advisor. Idealne wzorce nie istnieją, ponieważ rynek nigdy się nie powtarza. Podobne sytuacje można jednak znaleźć w historii. Twoja współpraca powinna zaowocować gotową Specyfikacją Wymagań, na podstawie której możesz zamówić robota handlowego. Warunki korzystania Często systemy transakcyjne zawierają szereg kluczowych pojęć lub terminów opisujących stan rynku lub zachowanie cen. Nawet jeśli uważasz, że w Specyfikacji Wymagań posługujesz się ogólnie przyjętymi i prostymi pojęciami, lepiej jest podać ich jasny opis. Dodaj jeden akapit opisu dla każdego terminu. Na przykład, według Billa Williamsa, trend wzrostowy występuje, gdy wszystkie trzy linie Alligator pojawiają się w następującej kolejności od dołu do góry: Niebieska, Czerwona, Zielona. Inną klasyczną definicję trendu wzrostowego zaproponował Larry Williams : każdy nowy szczyt jest wyższy od poprzedniego, a żaden nowy dołek nie jest niższy od poprzedniego. Możesz również wykorzystać zrzuty ekranu wykresów w opisach terminów. Używaj pogrubionej czcionki dla terminów w Specyfikacji Wymagań, aby ułatwić programistom ich znalezienie w tekście, gdy zajdzie taka potrzeba. Nie używaj linków do innych zasobów (takich jak strony internetowe, publikacje, tematy na forach itp.) zamiast wyjaśnień. Pełne, szczegółowe wyjaśnienie wszystkich punktów powinno być dostępne bezpośrednio w Specyfikacji Wymagań. Poświęć czas na opisanie wszystkich użytych terminów – zaoszczędzi to czas potrzebny na rozwój robota. Jak napisać opis zamówienia w aplikacji Freelance Tworząc zlecenie, opisz ogólną istotę swojego pomysłu na trading, aby potencjalni inwestorzy zrozumieli, czego potrzebujesz. Nie ujawniaj zasad swojego systemu transakcyjnego ani szczegółów wskaźników w opisie zlecenia. Opis może wyglądać następująco: Stwórz doradcę eksperckiego do handlu odwróceniami trendów. Sygnały odwrócenia trendu będą generowane na podstawie formacji Price Action. Trend będzie określany na podstawie ADX, Alligator i MACD, a wybór wskaźnika powinien być dostępny w parametrach wejściowych doradcy eksperckiego. Ogólna koncepcja strategii handlowej Możesz podać symbole, którymi będziesz handlować, szczegóły identyfikacji trendu i inne informacje. W przypadku EA podążających za trendem, określ metody wejścia – podczas cofnięcia, wybicia lub innymi metodami. Zasadniczo istnieją dwa główne typy strategii tradingu finansowego: oczekiwanie kontynuacji ruchu lub powrót do wartości średniej. Twój pomysł na trading powinien odnosić się do jednego z tych dwóch typów. Wyjaśnij, jak należy otwierać transakcje: na rynku, po potwierdzeniu wybicia/cofnięcia lub po bardziej odpowiedniej cenie. Opis ustawienia poprzedzającego sygnał Proste sygnały można łatwo opisać za pomocą algorytmów. Na przykład, popularne proste formacje to „Enfling” i „Pin Bar”. Jednak stworzenie zyskownej strategii w oparciu o takie proste formacje jest praktycznie niemożliwe. Takie formacje służą do wyznaczania punktów odwrócenia trendu. Warunkiem oczekiwania na formację Bearish Engulfing jest obecność trendu wzrostowego. Dlatego oprócz opisu sygnału transakcyjnego należy wyjaśnić odpowiednią konfigurację w Specyfikacji Wymagań. Opis sygnału Sygnał kupna lub sprzedaży pojawia się po spełnieniu określonego warunku. Na przykład, klasyczny sygnał kupna pojawia się, gdy cena przecina średnią kroczącą w górę. W opisie tego sygnału należy wskazać następujące parametry: Typ średniej ruchomej - SMA, EMA, VIDYA itp. Okres średniej ruchomej Dodatkowe parametry, które mogą być wymagane w przypadku niektórych średnich kroczących, np. AMA . Również sformułowanie „cena przecina średnią kroczącą” wymaga wyjaśnienia, ponieważ nie jest tak proste, jak mogłoby się wydawać. Sygnał może pojawić się w momencie przecięcia. Alternatywnie, możesz poczekać, aż świeca przebije średnią kroczącą i zamknie się powyżej niej. Ma to wpływ na Twój kod Expert Advisor, a także na tryb generowania ticków , który będzie używany podczas testów. Dlatego musisz jasno wyjaśnić koncepcje trendu, poziomu, wybicia, przecięcia i im podobnych, tj. wybrać między operacjami z tickami, słupkami i cenami zamknięcia. Podaj formalne opisy i parametry numeryczne, które zoptymalizujesz w Testerze Strategii. Na przykład, siłę trendu można zmierzyć za pomocą wskaźnika ADX , natomiast Ichimoku Kinko Hyo nie nadaje się do tego celu. Im więcej warunków i filtrów potrzebuje Twój system transakcyjny, tym bardziej złożony staje się robot. Ponadto, złożone strategie zazwyczaj wymagają dużej liczby parametrów wejściowych, co może wymagać wielu przejść podczas optymalizacji. Chociaż Tester Strategii MetaTrader 5 pozwala przyspieszyć czas optymalizacji dzięki wykorzystaniu algorytmu genetycznego i sieci MQL5 Cloud Network , ilość danych wynikowych również będzie ogromna. W związku z tym zalecamy przestrzeganie pewnych zasad EA dotyczących tworzenia i debugowania. Aby umożliwić wizualne testowanie i debugowanie sygnałów, algorytm EA powinien wyświetlać pojawiające się sygnały jako etykiety/obiekty na wykresie. Oprócz debugowania danych historycznych , będziesz mógł obserwować powstawanie sygnałów na wykresie. Czasami zrozumienie złożonych algorytmów może być trudne. Wizualne wyświetlanie sygnałów zapewnia wygodny sposób monitorowania otwieranych transakcji. Innym wygodnym rozwiązaniem jest utworzenie wskaźnika, który wyświetla sygnały kupna/sprzedaży w postaci strzałek na wykresie. Jest to wygodniejsze rozwiązanie, pozwalające na niezależne debugowanie obu aplikacji. Pozwól robotowi handlować, a wskaźnikowi na wykresie. W takim przypadku kod Expert Advisor będzie zawierał tylko wymaganą funkcjonalność. Co więcej, sygnałów może być więcej niż zrealizowanych transakcji. Na przykład, EA otrzymuje sygnał kupna i wchodzi na rynek. Zgodnie z algorytmem, inne sygnały kupna nie są już sprawdzane. Jeśli używasz osobnego wskaźnika, będzie on wyświetlał wszystkie sygnały kupna, niezależnie od obecności otwartej pozycji. Oprócz osobnych opisów sygnałów kupna i sprzedaży w Specyfikacji Wymagań, zaleca się ich oddzielne debugowanie. Sygnały kupna i sprzedaży są często ze sobą powiązane, tzn. gdy istnieje pozycja kupna, wszystkie sygnały sprzedaży są ignorowane (chyba że sygnały sprzedaży są wykorzystywane do zamykania pozycji kupna). Oddzielne testowanie sygnałów kupna i sprzedaży pozwala sprawdzić poprawność logiki bazowej w jej czystej postaci. Możesz również optymalizować parametry strategii oddzielnie dla kupna i sprzedaży, a następnie połączyć algorytmy w jednym robocie handlowym. W ten sposób wyszukiwanie optymalnych parametrów będzie szybsze i mniej błędów. Jednak w takim przypadku będziesz musiał dodatkowo zapłacić za stworzenie wskaźników i pośrednich doradców eksperckich. Ale dobry pomysł na trading jest tego wart, prawda? Czas życia sygnału W niektórych systemach transakcyjnych pozycja nie jest otwierana natychmiast po pojawieniu się sygnału. Taki system może wymagać potwierdzenia dodatkowymi sygnałami. Na przykład, po przebiciu poziomu oporu, warto poczekać, aż cena powróci do przebitego poziomu, aby wejść na rynek w lepszych warunkach. Należy tutaj zdefiniować parametr czasowy: jak długo sygnał przebicia poziomu będzie ważny. Systemy mogą czekać 5 słupków lub do końca sesji handlowej, po czym sygnał jest anulowany. Dodaj parametr Lifetime, aby użyć dodatkowych filtrów, które mogą poprawić jakość systemu transakcyjnego. Składanie zamówień i otwieranie pozycji Możesz z wyprzedzeniem udostępnić dodatkowe funkcje, opracowując funkcje wysyłające zlecenia handlowe. Na przykład, możesz użyć różnych MagicNumberów i komentarzy do dalszej analizy wyników handlowych i optymalizacji. Możesz użyć MagicNumbera w oparciu o godzinę i dzień wejścia, numer formacji handlowej i inne szczegóły, co umożliwi dalszą analizę. Dzięki temu możesz wdrożyć wiele strategii handlowych w jednym Expert Advisor i zoptymalizować je wszystkie, aby znaleźć najlepsze parametry dla swojego robota handlowego. Jeśli chcesz zamówić taką funkcjonalność, opisz algorytm obliczania MagicNumbera dla każdego wzorca/ustawienia/sygnału. Zlecenie handlowe nie zawsze jest realizowane pomyślnie. Konieczne jest przewidzenie sytuacji, w których pozycja nie może zostać otwarta/zamknięta za pierwszym razem. Jak EA powinien postępować w takiej sytuacji: czy powinien wstrzymać transakcję, czy czekać na nowy tick? Ile prób jest dozwolonych? Jakie informacje powinny być zapisywane w logach? W jakim formacie powinny być zapisywane? Czy trader powinien otrzymać powiadomienie? Jak często należy wysyłać wiadomości, aby uniknąć ataków DDoS? Używaj komentarzy do zleceń handlowych, aby szybko analizować historię transakcji. Czasami serwery transakcyjne zapisują w tym polu konkretne komentarze. W związku z tym Twój robot może dodatkowo zapisywać własny dzienny dziennik operacji handlowych. Jeśli Twoja strategia handlowa wykorzystuje ochronne poziomy Stop Loss i Take Profit, opisz algorytm ich obliczania i metody ich ustalania. Na przykład, Stop Loss można ustawić tylko wtedy, gdy cena zmieni się o określoną liczbę punktów w kierunku zysku. Jeśli poziomy SL i TP mają zostać ustawione po udanym otwarciu pozycji, opisz procedurę sprawdzania otwarcia pozycji – natychmiast po wysłaniu zlecenia handlowego lub w kolejnym ticku. Zarządzanie pozycjami/zleceniami handlowymi Podstawowa zasada tradera: pozwól zyskom rosnąć, a straty ograniczaj. W ujęciu algorytmicznym oznacza to, że należy ustawić ochronny Stop Loss dla każdej pozycji, nie ograniczając potencjalnych zysków zleceniami Take Profit. Wielkość zlecenia stop może znacząco wpłynąć na wyniki handlowe. Traderzy często starają się znaleźć optymalne odległości SL/TP, aby zmaksymalizować zyski. Staraj się znaleźć algorytmy obliczające odległości, które uwzględniają zmienność rynku, kierunek trendu oraz poziomy wsparcia/oporu. Możesz przeanalizować istniejące systemy transakcyjne, aby znaleźć odpowiedni pomysł na SL/TP. Wielu programistów dysponuje gotowymi bibliotekami, z których możesz skorzystać, tworząc robota transakcyjnego opartego na Twoim pomyśle. Rozważ i opisz następujące punkty specyfikacji wymagań: wykorzystanie poziomów Stop Loss i Take Profit, algorytmu obliczania odległości; wykorzystanie Trailing Stop, warunków wyzwalania, algorytmów obliczeniowych krok po kroku; jeśli do wpisów używane są zlecenia oczekujące, należy wspomnieć, czy powinny być one śledzone i opisać odpowiedni algorytm; konieczność monitorowania zmiennego zysku/straty otwartej pozycji, aby zamknąć pozycję po osiągnięciu określonego poziomu zysku/straty; itp. Anulowanie zleceń i zamykanie pozycji Inna metoda zarządzania pozycjami i zleceniami opiera się na czasie i sygnałach przeciwnych. Możesz określić dodatkowe opcje zamknięcia i usunięcia, takie jak: na podstawie zmiennej wartości zysku lub straty; gdy cena zmienia się o określoną odległość od aktualnego poziomu otwarcia zlecenia oczekującego (co może oznaczać, że okazja została przegapiona); o określonej porze; po określonej liczbie taktów; po upływie określonego czasu; w przypadku sygnału przeciwnego; jeśli korzystna konfiguracja/wzorzec zniknie. Obliczanie partii zamówienia Niektórzy traderzy uwzględniają algorytmy obliczania lotów transakcyjnych na pierwszym etapie tworzenia robota. Nie zaleca się jednak uwzględniania algorytmów zarządzania pieniędzmi do obliczania lotów na tym etapie, ponieważ dodatkowe parametry wejściowe mogą prowadzić do nadmiernego dopasowania opartego na historii podczas optymalizacji EA. Lepiej przetestuj swoją pierwszą wersję EA na stałym lot. Tylko testy w przód z wykorzystaniem danych historycznych i kilkumiesięcznych rzeczywistych transakcji pozwolą Ci odkryć słabe i mocne strony Twojego algorytmu, po czym będziesz mógł dodać metody zarządzania kapitałem. Oto kilka podejść do obliczania wielkości partii pozycji: stała objętość, niezależnie od zysku lub straty; wolumen zależny od wielkości salda lub kapitału własnego; na podstawie uzyskanego zysku/straty; na podstawie ostatnich N transakcji (różne techniki martingale’owe i antymartingale’owe); w zależności od % ryzyka z określonym Stop Loss; inne obliczenia oparte na ryzyku, np. metoda Vince'a . W każdym razie, zanim dodasz algorytmy obliczania lotów do Expert Advisor, upewnij się, że Twój system transakcyjny ma przewagę nad handlem losowym. W przeciwnym razie tylko oszukasz samego siebie. Systemu przynoszącego straty nie da się przekształcić w dochodowy wyłącznie za pomocą metod zarządzania kapitałem. Przetwarzanie błędów handlowych i stanu środowiska Robot handlowy to autonomiczny program działający 24 godziny na dobę. Dlatego należy zapewnić mechanizm kontrolujący jego działanie. Działania doradcy eksperckiego można zapisać w dzienniku ekspertów za pomocą funkcji Print() . Zasadniczo zaleca się rejestrowanie pojawiania się sygnałów, formacji i konfiguracji, aktualnej ceny rynkowej oraz parametrów zlecenia transakcyjnego przed wysłaniem zlecenia do realizacji. Jeśli realizacja zlecenia handlowego zakończy się niepowodzeniem, jego wyniki również powinny zostać zapisane w dzienniku. Przeanalizuj kody zwrotne serwera handlowego , aby zrozumieć przyczynę niepowodzenia i ją naprawić. Opisz poniższe elementy w Specyfikacji Wymagań: sytuacje, w których EA powinien pisać wiadomości do dziennika; jakie parametry powinny zostać zawarte w wiadomości; wymagany format wprowadzania danych, np. określenie czasu, liczb, separatorów itp. Szczegółowe rejestry zleceń handlowych i wyników realizacji pozwolą Ci szybko identyfikować błędy w transakcjach i oszczędzać pieniądze. Początkujący traderzy algorytmiczni często zapominają o ważnym punkcie, jakim jest restart terminala i utrata połączenia z internetem lub serwerem. W takich przypadkach możesz poprosić o możliwość powiadomienia za pośrednictwem komunikatora lub poczty e-mail. Różnica między handlem na otwarciu baru a handlem w barze Przy każdej zmianie ceny robot rozpoczyna przetwarzanie zdarzenia NewTick za pomocą funkcji OnTick() . W ciągu cyklu życia słupka może zostać odebranych wiele ticków, dlatego EA będzie wykonywał swoją logikę przy każdym nadchodzącym słupku. Jeśli Twoja strategia generuje sygnały tylko na otwarciu słupka, musisz podjąć następujące decyzje: jak obliczać sygnały handlowe, uzyskiwać wartości wskaźników i stan środowiska handlowego tylko przy pierwszym ticku, pomijając kolejne; co zrobić, jeśli niezbędnych działań nie udało się wykonać za pierwszym razem. Przeanalizujmy prosty przykład: sygnał na przecięciu średnich kroczących. Jeśli Twój EA sprawdza sygnał przy każdym ticku, może zdarzyć się sytuacja, w której sygnał pojawia się, a następnie znika. W rezultacie EA otworzy i zamknie pozycję kilka razy w ciągu jednego słupka. Może to powodować problemy podczas handlu online. Aby uniknąć takich problemów, przetestuj Doradcę Eksperta w trybie „Każdy Tik” lub „ Każdy Tik na podstawie rzeczywistych Tików ”. Jeśli zauważysz wiele podobnych operacji na jednym słupku, zrewiduj kod robota. Przeprowadź wizualne testy Doradcy Eksperta i używanych wskaźników, aby sprawdzić ich działanie w różnych przedziałach historycznych bezpośrednio na wykresie. Strategie tickowe/scalpingowe Jeśli jesteś początkujący, wybierz systemy działające przy otwarciu nowego słupka. Takie strategie są łatwiejsze do opracowania i debugowania, a Ty będziesz musiał jedynie zapewnić prawidłową obsługę zdarzenia nowego słupka . Możesz sprawdzić poprawność działania Expert Advisor przy otwarciu słupka: wyniki testów w trybie „Tylko cena otwarcia” muszą być zgodne z wynikami w trybie „Każdy tick”/„Każdy tick oparty na rzeczywistych tickach”. Systemy transakcyjne działające wewnątrz bara są trudniejsze. Polecamy lekturę artykułu „ Jak szybko opracować i debugować strategię handlową w MetaTrader 5” , który zawiera opis wszystkich kroków niezbędnych do stworzenia, debugowania i optymalizacji kodu strategii opartej na analizie ciągłego przepływu ticków. Podczas opracowywania robota skalpującego należy pamiętać, że takie strategie są niezwykle wrażliwe na spread, prowizje, opóźnienia sieciowe, jakość historii transakcji i szybkość działania. Każde pogorszenie warunków handlowych może „zabić” taką strategię. Nie należy mylić strategii skalpingowych, które dążą do szybkiego wejścia na rynek i osiągnięcia niewielkiego, gwarantowanego zysku, z tzw. strategiami pipsowania. Strategia pipsowania może celować w kilka pipsów i tolerować spadek o dziesiątki, a nawet setki pipsów. Twórcy takich systemów zakładają, że cena prawdopodobnie przekroczy kilka punktów w kierunku otwartej pozycji, a nie 50-100-300 punktów w kierunku niekorzystnym. Dzięki optymalizacji mogą osiągać imponujące wyniki historyczne, z 90-99% zyskownych transakcji. Uruchomienie tego robota na koncie rzeczywistym może przynieść oczekiwane zyski przez pewien czas. Jednak w pewnym momencie rynek może gwałtownie się zmienić i wszystko, co zarobił, zostanie utracone. Siatka, martingale, uśrednianie i ciemna strona tych technik Czasami traderzy algorytmiczni próbują poprawić wyniki poprzez zwiększenie liczby zleceń/pozycji w jednym kierunku i manipulowanie wartością lota w zależności od poziomu ceny/obniżek/strat (rozwiązania techniczne), zamiast poprawiać jakość sygnałów (rozwiązania strategiczne). Dodatki w postaci siatek zleceń, elementów martyngałowych/antymartyngałowych oraz technik uśredniania pozycji przynoszących straty komplikują kod i zwiększają prawdopodobieństwo wystąpienia błędu programu. Ponadto, takie dodatkowe parametry zwiększają ryzyko nadmiernego dopasowania. Stosowanie takich metod nie zwiększa stabilności ani rentowności systemu transakcyjnego, a jedynie opóźnia jego załamanie. Zamiast stosować takie sztuczki, zalecamy wybranie innego sposobu: po pierwsze, stwórz portfel różnych, niezależnych systemów handlowych opartych na jednym symbolu; Następnie możesz stopniowo tworzyć zestawy portfeli opartych na różnych instrumentach. Portfel prostych systemów transakcyjnych będzie bardziej odporny na zmiany rynkowe niż jeden złożony system z wieloma optymalizowalnymi parametrami wejściowymi. Ważne aspekty wyboru dewelopera Chcesz wdrożyć swój system transakcyjny w formie Expert Advisor: złożyłeś zlecenie w Freelance i otrzymałeś zgłoszenia od różnych programistów. Jak wybrać programistę optymalnego pod względem kosztów i jakości? Doświadczony programista nie będzie opowiadał o złożoności wcześniej opracowanych systemów ani wariantów systemów transakcyjnych, ale zada pytania dotyczące specyfikacji wymagań . Innymi słowy, nie będzie próbował Cię zaimponować. Profesjonaliści cenią czas, dlatego zazwyczaj nie marnują go na filozoficzne dyskusje o naturze handlu czy trudnościach programowania. Deweloper może poprosić o więcej szczegółów, oprócz podanego krótkiego opisu. Jeśli zamówienie jest generalnie jasne, programista poda informacje o koszcie i czasie realizacji zamówienia. Odpowiedzialny programista wskaże niejasne punkty w specyfikacji wymagań. Jeśli Twoje zamówienie jest niekompletne, możesz je później wyjaśnić z programistą, a także zapłacić za usługi konsultingowe, co wydłuży czas i zwiększy koszt realizacji zamówienia. Dobry programista ceni sobie czas, dlatego postara się wyjaśnić niejasności, aby móc rozpocząć pracę na podstawie jasno i rzetelnie przygotowanej Specyfikacji Wymagań. Czego programista nie może zrobić za Ciebie Może się zdarzyć, że robot handlowy oparty na Twoim systemie będzie wykazywał straty podczas testów, mimo że sprawdziłeś go ręcznie i byłeś pewien, że strategia będzie opłacalna. Zazwyczaj powodem jest to, że Klient mógł ręcznie sprawdzić system w krótkim interwale czasowym. Tester Strategii pozwala uzyskać wyniki handlowe dla dowolnego dostępnego przedziału historycznego. Co można zrobić w takim przypadku? Programista nie może stworzyć opłacalnej strategii ze strategii przynoszącej straty, ale może zasugerować pewne pomysły na poprawę jakości wejść. Na przykład, możesz dodać filtry trendu, wolumenu lub inne, aby uniknąć fałszywych sygnałów. Twoja strategia może również działać lepiej z innymi parametrami, które mogą lepiej pasować do danej sytuacji rynkowej. Zoptymalizuj EA, aby zbadać zależność optymalnych wartości od roku, zmienności i innych czynników. Pomoże Ci to zidentyfikować słabości lub ograniczenia Twojego systemu. Będziesz jednak musiał zrobić to sam, ponieważ programista jest jedynie programistą, a nie analitykiem systemu transakcyjnego. Ostatnia część dotyczy błędów programisty. Stworzenie programu bez błędów jest praktycznie niemożliwe. Mogą to być błędy w kodzie, np. gdy napisany zostanie błędny kod dla poprawnego algorytmu, a także błędy logiczne. W obu przypadkach będziesz musiał je znaleźć samodzielnie. Powinieneś zrozumieć kody zwrotne serwera handlowego , a także błędy czasu wykonania . Pamiętaj, aby w Specyfikacji Wymagań zaznaczyć potrzebę przetwarzania wyników każdej ważnej operacji i rejestrowania kodów błędów. Możesz dodatkowo wymienić takie ważne operacje, jak: wysyłanie zleceń transakcyjnych, obliczanie Stop Loss i inne operacje. Tego typu komunikaty powinny wykorzystywać predefiniowane makra , które pomogą Ci znaleźć przyczynę i dokładną lokalizację nieprawidłowego zachowania. Te trzy zasady pomogą Ci przeanalizować sytuację i porozumieć się z Deweloperem.

Откликнулись

1
Разработчик 1
Оценка
(103)
Проекты
165
24%
Арбитраж
23
9% / 78%
Просрочено
16
10%
Работает
2
Разработчик 2
Оценка
(18)
Проекты
22
9%
Арбитраж
6
33% / 50%
Просрочено
1
5%
Работает
3
Разработчик 3
Оценка
(3)
Проекты
1
100%
Арбитраж
3
0% / 100%
Просрочено
0
Свободен
4
Разработчик 4
Оценка
Проекты
0
0%
Арбитраж
0
Просрочено
0
Свободен
Похожие заказы
Hi I have a simple task (hopefully) I have a custom strategy that I built with the help of Claude Anthropic - everything is finished and I zipped it with power shell but when importing it NT8 gives me the error message that the file was made from an older, incompatible version or not a NinjaScript. My folder structure is correct as far I can see so I don't know what the issues is and it's costing me too much to go
Looking for an experienced MQL5 developer to design and develop a custom Expert Advisor (EA) for MetaTrader 5. The purpose of this EA is not just automated trading, but also to help me better structure, test, and refine my personal trading strategy
Freeallfree 400 - 800 USD
Professional MT5 EA – XAUUSD I need a professional Expert Advisor for MT5 (MQL5) to trade XAUUSD only. This is not a random scalping bot. The EA must trade only high-probability liquidity breakouts during active sessions and avoid ranging or low-volatility markets. Symbol: XAUUSD Timeframe: M15 (optional H1 confirmation) Session filter (Dubai GMT+4): Trade only London and New York sessions Adjustable session times No
Modification of EA and Addition of New Trade Logic and Features Currently, the EA is opening trades correctly but in addition, there are times when it is opening the trades wrongly. The EA is based on an indicator (only the .ex5 file is available). A new trigger logic also needs to be added, along with new closing conditions. This project must NOT use any DLL and must be submitted in 1 day (max 2 days) The EA will be
Refine signal trigger execution . Optimize live chart performance . Ensure stable and clean code structure : Stable and clean code is important . Otherwise its a mess . Apply with as much accurate structure you foresee
This post is subject to developers response . Edit the post as you like . May be with me you can make a come back . So , , , Shift calculations . More to the calculation then you can comprehend is known . What else comes to your mind
All other Necessary filters already coded , Mostly it is referring to another expert copy pasting . Live Chart Optimization . Optimization from Signal Trigger Point . Apply to stay ahead . While applying please explain the correct trailing stop loss for value gap entries
Trailing Stop Based on Thresholds . Other Necessary Filters already Coded . Live Chart Only . The strategy already coded - needs a fresh new draft . To Start from Signal Trigger
I am looking for a professional MQL5 developer to build a structured MT5 Expert Advisor. This is NOT a martingale or high-risk grid bot. Platform: • MT5 only (MQL5 source code required) Symbols: • XAUUSD • GBPUSD • GBPJPY Timeframe: • M5 Risk Management: • Adjustable risk per trade (default 0.5% equity) • Daily drawdown protection (max 3%, auto-lock trading for the day) • Maximum 2 open trades • Minimum 120 seconds
Requirements: - Convert my written trading rules into TradingView Pine strategy - Then convert into MT5 EA - Entry must be next candle open after signal candle close - Stop loss on signal candle high/low - Position sizing: fixed % risk per trade - Portfolio risk cap across symbols - One trade per symbol at a time - Must understand backtesting differences (spread, slippage, fill logic) Important: I want to be able to

Информация о проекте

Бюджет
30+ USD
VAT (23%): 6.9 USD
Итого: 37 USD
Исполнителю
27 USD

Заказчик

Размещено заказов1
Количество арбитражей0