Alternatywna funkcja Sleep () w MT4, którą można przetestować?
Pokaż wyniki od 1 do 4 z 4

Wątek: Alternatywna funkcja Sleep () w MT4, którą można przetestować?

  1. #1
    Czy istnieje alternatywa dla kodu uśpienia (Sleep) w MT4, który może być użyty do testowania w testerze egii?

    Zgodnie z dokumentacją MT4 funkcja Sleep () nie zawiesza wykonania Expert Advisor w Strategy Tester.

    Chciałbym zobaczyć, jak zmienia się wynik testu EA, jeśli zawieszę transakcję po dużej wartości TP przez X czasu.

    Jakieś pomysły, jak to wdrożyć, aby można było je przetestować?

  2. #2
    Wszelkie obejścia będą mile widziane. Zasadniczo miałem coś takiego ... aż zdałem sobie sprawę, że nie robi nic w trybie testowym. Potrzebuję czegoś, co zasymuluje sen albo wstrzyma lub zawiesi funkcję i będzie działać również w trybie testowym. Mam funkcję, która zamyka wszystkie otwarte transakcje, jeśli ot pozycja przekracza rozszerzony zakres maksymalnych zysków. Chcę przetestować zawieszenie wszelkich przyszłych transakcji na X ilość czasu i potrzebuję go również w trybie testowym. Wstawiony kod void PipMaxCloseOut () {int totalorders = OrdersTotal (); for (int i = totalorders-1; igt; = 0; i--) {if (! OrderSelect (i, SELECT_BY_POS)) {Print (TimeToStr (TimeCurrent (), TIME_SECONDS), CHECK Funkcja gt;, __FUNCTION__, !! !!!, OrderMagicNumber (), Error code =, GetLastError ()); } else int result; if ((OrdersTotal () gt; 0) (OrderMagicNumber () == Trade1L)) {RefreshRates (); Drukuj (TimeToStr (TimeCurrent (), TIME_SECONDS), CLOSING Trade1L PipMax CLOSE OUT, Zamów PL:, OrderProfit (), Bid:, MarketInfo (Handel, MODE_BID), Otwórz transakcje:, OrdersTotal ()); result = OrderClose (OrderTicket (), OrderLots (), MarketInfo (Handel, MODE_BID), MaxSlippage * 2, CLR_NONE); if (result lt; = -1) {Print (BŁĄD, KTÓRY PRÓBUJE ZAMKNĄĆ Trade1L W TRAKCIE PipMax CLOSE OUT! ERROR CODE #, GetLastError ()); }} if ((OrdersTotal () gt; 0) (OrderMagicNumber () == Trade1S)) {RefreshRates (); Drukuj (TimeToStr (TimeCurrent (), TIME_SECONDS), CLOSING Trade1S PipMax CLOSE OUT, Zamów PL:, OrderProfit (), Zapytaj:, MarketInfo (Handel, MODE_ASK), Otwórz transakcje:, OrdersTotal ()); result = OrderClose (OrderTicket (), OrderLots (), MarketInfo (Handel, MODE_ASK), MaxSlippage * 2, CLR_NONE); if (result lt; = -1) {Print (BŁĄD PODCZAS TRWANIA ZAMKNIĘCIA Trade1S W TRAKCIE PipMax CLOSE OUT! ERROR CODE #, GetLastError ()); }}} Sleep (MilliSecs); }

  3. #3
    Przed wprowadzeniem nowego handlu, po prostu sprawdź ostatni czas zamknięcia handlu i jeśli upłynęło wystarczająco dużo czasu (twoje opóźnienie przed ponownym uruchomieniem transakcji).

  4. #4
    Tak to zrobiłem do tej pory, to jest testowanie. Niestety nie tak dobrze, jak się spodziewałem, filtruje więcej dobrych transakcji niż złych ... Przynajmniej testuje się na razie. Może zmodyfikować go później lub po prostu go usunąć. Dodano podwójne TimeMicroSecNow; podwójny TimeMicroSecAfterEQP; extern int MicroSecAfterEQP = 60000000; Zastąpiony tryb uśpienia: TimeMicroSecAfterEQP = GetMicrosecondCount (); I Przed nowymi transakcjami: TimeMicroSecNow = GetMicrosecondCount (); RefreshRates (); if (TimeMicroSecNow gt; TimeMicroSecAfterEQP MicroSecAfterEQP) {TRADE; }

Uprawnienia umieszczania postów

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •  
Używamy cookies
Używamy cookies, aby jak najlepiej dostosować witrynę do Twoich potrzeb. Kontynuowanie przeglądania tej strony, oznacza zgodę na używanie plików cookies. Aby uzyskać więcej informacji zapoznaj się z naszą Polityką Prywatności.