Problem EA
Pokaż wyniki od 1 do 9 z 9

Wątek: Problem EA

  1. #1
    Mam stworzony niestandardowy kryty w oparciu o RSI, daje wyższą wartość RSI z wyższej ramy czasowej ...
    I chcę stworzyć na nim bazę EA.
    Tak więc w EA używam iCustom do pobierania informacji z tego ...

    Problem jest ten:

    - Wartość otrzymana z iCustom nie jest dokładna

    jeśli ustawię niestandardowe wnętrze na wykresie w trybie wizualnym, poda wartość zgodnie z oczekiwaniami. Ale nie w EA to ja ...

    Postanowiłem więc użyć standardowego RSI (może to mój CI).
    Ale okazuje się, że robi to samo ....

    więc jest tutaj kod, którego używam:
    w EA umieściłem to
    ___
    double rsi = iRSI (Symbol (), PERIOD_H4,14, PRICE_CLOSE, getBarShift (PERIOD_H4,0));

    Komentarz (rsi:, rsi);
    ___
    //z funkcją

    int getBarShift (int timeeframe, int shift) {
    podwójny czas = iTime (NULL, 0, shift);
    return (iBarShift (NULL, timeeframe, time));
    }

    A jeśli utworzysz salę z tym ...
    powinien dać taki sam wynik ....

    Przy okazji korzystam z wykresu 1-godzinnego do przetestowania.

    Ale zauważam, że w Komentarzu wartość zmienia się na każdym pasku (ale powinna zmieniać się co 4 takty jak CI)
    ale nie na indior (działa świetnie) ...

    Wygląda na to, że EA nie jest w stanie dokładnie pobrać wartości RSI 4h ...

    jakaś wskazówka na ten temat .....

    Dzięki

  2. #2

    Cytat Zamieszczone przez ;
    int getBarShift (int timeeframe, int shift) {podwójny czas = iTime (NULL, 0, shift); return (iBarShift (NULL, timeeframe, time)); }
    Nie mam czasu, aby przetestować siebie dzisiaj, ale oto co widzę na pierwszy rzut oka ... Dane są przechowywane jako 4-bajtowa liczba całkowita, prawda? Twoja zmienna jest zdefiniowana jako podwójna, więc w rezultacie tracisz dane. Spróbuj zdefiniować czas jako datetime i zobaczyć, co otrzymasz.

  3. #3
    Umieściłem tylko to w EA: double rsi = iRSI (NULL, PERIOD_H4, RsiPeriod, PRICE_CLOSE, 0); Komentarz (rsi:, rsi); I tylko to w jednym niestandardowym indiorie podwójnym rsi = iRSI (NULL, PERIOD_H4, RsiPeriod, PRICE_CLOSE, 0); Bufor [0] = rsi; IndiorShortName (rsi); Indior niestandardowy nie pokazuje niczego ... (Bez linii), więc muszę umieścić podwójne rsi = iRSI (NULL, PERIOD_H4, RsiPeriod, PRICE_CLOSE, getBarShift (PERIOD_H4,0)); aby móc zobaczyć linię (I dane są poprawne) Więc jestem pewien, że jest problem z EA, kiedy próbujesz uzyskać dostęp do wyższych ram czasowych (lub jestem w błędzie i kod jest zły) .. Indior robi pracę, ale nie EA ... Czy znasz jakiś problem dotyczący tego rodzaju problemu? Jeśli tak ... to jest duży problem ... wiele EA używa wyższej wartości ramki czasowej ... Więc testowanie nie będzie na pewno ...

  4. #4

    Cytat Zamieszczone przez ;
    Nie mam czasu, aby przetestować siebie dzisiaj, ale oto co widzę na pierwszy rzut oka ... Dane są przechowywane jako 4-bajtowa liczba całkowita, prawda? Twoja zmienna jest zdefiniowana jako podwójna, więc w rezultacie tracisz dane. Spróbuj zdefiniować czas jako datetime i zobaczyć, co otrzymasz.
    Twoje prawo, nie powinno być podwójne, ale datetime, ponieważ iTime zwraca datetime ... Pracowałem ciężko ostatniej nocy :-) Ale to niczego nie zmienia ... Dlaczego? Obaj dają tę samą wartość i tak (dobrze lub źle)! są budowane w ten sam sposób ... Będę pisać zarówno EA, jak i CI ... Jeśli ktoś może mi pomóc ... lub powiedzieć, czy jest to normalne zachowanie dla MT4 EA .... Wygląda na to, że EA nie odzyskaj wartość RSI w taki sam sposób jak niestandardowy indior ...

  5. #5
    2 Załącznik (-i) Musi zostać przetestowany na wykresie 1,5,15 lub godzinowym ... Dane RSI powinny w każdym momencie dać wartość świecy 4H. Ale nie w tym przypadku ... Tajemnica ...
    Pomóżcie mi ..... Ps .: zauważyłem, że kiedy dojdziemy do końca wykresu, widzimy dobrą wartość RSI ...
    https://www.forex-instant.com/attach...1140873215.mq4
    https://www.forex-instant.com/attach...1044165411.mq4

  6. #6
    1 Attachment (s) Jak widzisz EA pokaż mi 60 ... The indoor show me 62 i wiem, że pokaz kryty dobry wynik ...

  7. #7
    Znaleziono odpowiedź Ponieważ RSI używa PRICE_CLOSE, nie możemy użyć aktualnej wartości świecy, ponieważ zamknięcie nie istnieje i podczas działania EA nie podaje aktualnej wartości tak jak na żywo. Używałem świecy 4H, aby uzyskać wartość rsi na 15 minut, więc jedyną ważną świecą jest 4x4 (15mx4h) 16 lub druga świeca 4H ...

  8. #8
    Witaj Zeuzere, Jeśli chcesz użyć poprzedniej wartości na pasku 4h, możesz po prostu użyć: double rsi = iRSI (Symbol (), PERIOD_H4, RsiPeriod, PRICE_CLOSE, 1); a numer rsi powinien być taki sam we wszystkich ramach czasowych, w których umieszczasz swój wykres. (Zasadniczo uruchamiam swoje EA na wykresie 1M, aby uzyskać wszystkie dane) Niestety nie mogłem ci pomóc z aktualną wartością paska, którą chcesz zobaczyć na wykresie ..... Może możesz spróbować użyć Odśwież () .. ... ale nie jestem pewien, czy to zadziała, czy nie. Nadzieja, która pomaga.

  9. #9

    Cytat Zamieszczone przez ;
    Jeśli chcesz użyć poprzedniej wartości na pasku 4h
    Nie, to był mój problem ... W prawdziwym ruchu na żywo, muszę użyć aktualnego paska 4h, ale ponieważ nie dałoby to poprawnej wartości w Expert Adviser podczas testowania systemu, to był mój problem ... muszę używać go inaczej w EA, więc muszę użyć Opóźnionego paska lub da fałszywy wynik ... I to jest smutne ... Wyobraź sobie, jak dużo ludzi buduje EA (Każdy wskaźnik, którego użycie blisko obliczone daje fałszywy wynik). Kiedy testujesz, chcesz symulować bazę kupna i sprzedaży w twoim systemie ... W EA, nie mam wyboru, aby zrobić mały offset, aby uzyskać dobry wynik. Więc muszę użyć funkcji isTesting (), aby wiedzieć, czy jestem na żywo, czy testowałem i używam podwójnego rsi = iRSI (Symbol (), PERIOD_H4, RsiPeriod, PRICE_CLOSE, 0 Offset); Ps .: Wszyscy, którzy budują EA, zachowajcie ostrożność, jeśli użyjecie bliskiej wartości ... Istnieją również inne funkcje, więc bieżąca wartość nie jest dokładna.

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.