Czy macie zasięg poza zasięgiem? Wsparcie?
Pokaż wyniki od 1 do 9 z 9

Wątek: Czy macie zasięg poza zasięgiem? Wsparcie?

  1. #1
    EDYCJA: Oto poprawka dzięki Johnvanwijk!
    https://www.forex-instant.com/tradin...dom-calls.html


    Cześć ludzie,
    Próbowałem więc narysować kilka rzeczy, ale daje mi to błąd poza zasięgiem.
    Rysuje zielone strzałki, ale czerwone strzałki po prostu nie będą działać.

    Gdyby ktoś mógł mi powiedzieć, co robię źle, byłoby wspaniale.

    Nie dlatego, że próbuję uzyskać dostęp do świec, których jeszcze nie ma, lub o ile wiem.
    Rozumiem, że niektórzy ludzie mogą powiedzieć, że przechodzą obok dostępnych pasków, ale testowałem nawet z limitem 1000, który jestem pewien, że mój wykres ma i nadal daje mi poza zasięgiem.

    To jest kod:

    Wstawiony kod/ --------------------------------------------- --------------------- /| FractalsExercise.mq4 |/| |/| https://www.mql5.com |/ ----------------------------------------------- ------------------- #property copyright #property link https://www.mql5.com #property version 1.00 #property strict #property indior_chart_window double Wysoki # 91; # 93 ;; double Lows # 91; # 93 ;;/ ----------------------------------------------- ------------------- /| Funkcja inicjalizacji wskaźnika niestandardowego |/ ----------------------------------------------- ------------------- int OnInit () {//--- styl rysowania SetIndexStyle (0, DRAW_ARROW, EMPTY, 1, clrGreen); SetIndexArrow (0, 234); SetIndexStyle (1, DRAW_ARROW, EMPTY, 1, clrRed); SetIndexArrow (1, 233);/--- bufory wskaźników SetIndexBuffer (0, Highs); SetIndexBuffer (1, Lows);/--- return (INIT_SUCCEEDED); }/ ---------------------------------------------- -------------------- /| Funkcja iteracji wskaźnika niestandardowego |/ ----------------------------------------------- ------------------- int OnCalculate (const int rates_total, const int prev_calculated, const datetime time # 91; # 93 ;, const double open # 91; # 93; , const double high # 91; # 93 ;, const double low # 91; # 93 ;, const double close # 91; # 93 ;, const long tick_volume # 91; # 93 ;, const long volume # 91; # 93; , const int spread # 91; # 93;) {//--- int i = 1; int ii = 1; int Limit = Bary - 1; while (i lt; Limit) {if (High # 91; i # 93; gt; High # 91; i 1 # 93;) {if (High # 91; i # 93; gt; High # 91; i - 1 # 93;) {Highs # ​​91; i # 93; = High # 91; i # 93 ;; }} i ; } while (ii lt; Limit) {if (Low # 91; ii # 93; lt; Low # 91; ii 1 # 93;) {if (Low # 91; ii # 93; lt; Low # 91; ii - 1 # 93;) {Lows # 91; ii # 93; = Low # 91; ii # 93 ;; }} ii ; }/--- zwraca wartość prev_calculated dla następnego połączenia return (rates_total); }/ ---------------------------------------------- --------------------

    Dzięki!

  2. #2

    Cytat Zamieszczone przez ;
    {quote} Pan jest geniuszem. Nie mogę uwierzyć, że naprawa była tak prosta. Zrzucę to na mój brak doświadczenia i zrobię to sam. Spędziłem dobre 5 godzin, próbując to rozgryźć, a jedyne, co znalazłem, było obejście, które niczego nie naprawiło. Będę edytować pierwszy post, aby załączyć poprawkę, aby ludzie mogli uzyskać prostą odpowiedź, jeśli zechcą ją znaleźć! Wielkie dzięki!
    Cześć AntiVi, oprócz tego, co podzielił John, chcesz również uzyskać zwyczaj używania danych przekazywanych jako argumenty do funkcji OnCalculate zamiast polegania na danych z wbudowanych vars. Poza tym chcesz się upewnić, że robisz to poprawnie. Nie musisz przetwarzać całej pętli (wszystkich danych wykresu) przy każdym tiku. Musisz tylko przetworzyć część danych wskaźnika, które wymagają aktualizacji. Oto przykład, jak lepiej wykorzystać funkcję OnCalculate. Wstawiony kod #property strict #property indior_chart_window/START ADDED JvW #property indior_buffers 2/END ADDED JvW double Highs # ​​91; # 93 ;; double Lows # 91; # 93 ;;/ ----------------------------------------------- ------------------- /| Funkcja inicjalizacji wskaźnika niestandardowego |/ ----------------------------------------------- ------------------- int OnInit () {//--- styl rysowania SetIndexStyle (0, DRAW_ARROW, EMPTY, 1, clrGreen); SetIndexArrow (0,234); SetIndexStyle (1, DRAW_ARROW, EMPTY, 1, clrRed); SetIndexArrow (1,233);/--- bufory wskaźników SetIndexBuffer (0, Highs); SetIndexBuffer (1, Lows); return (INIT_SUCCEEDED); }/ ---------------------------------------------- -------------------- /| Funkcja iteracji wskaźnika niestandardowego |/ ----------------------------------------------- ------------------- int OnCalculate (const int rates_total, const int prev_calculated, const datetime time # 91; # 93 ;, const double open # 91; # 93; , const double high # 91; # 93 ;, const double low # 91; # 93 ;, const double close # 91; # 93 ;, const long tick_volume # 91; # 93 ;, const long volume # 91; # 93; , const int spread # 91; # 93 {//--- int limit = rates_total - prev_calculated - 2; limit = limit lt; 1? 1: limit; for (int i = limit; i; 0; i--) {if (high # 91; i # 93; gt; high # 91; i 1 # 93; high # 91; i # 93; gt; high # 91; i-1 # 93 Highs # ​​91; i # 93; = wysoki # 91; i # 93 ;; jeśli (niska # 91; i # 93; lt; niska # 91; i 1 # 93; niska # 91; i # 93 ;, niska # 91; i-1 # 93 Niższa liczba # 91; i # 93 ; = niska # 91; i # 93 ;; }/--- zwraca wartość prev_calculated dla następnego połączenia return (rates_total); }

  3. #3
    Jeśli podzielę pętle while na 2 wskaźniki, działa to idealnie bez jednego błędu, ale nie wtedy, gdy są razem. Nie ma dostępu do niczego, czego tam nie ma. Więc nie jestem pewien, dlaczego mówi, że jest poza zasięgiem.

  4. #4

    Cytat Zamieszczone przez ;
    Cześć wszystkim, więc próbowałem coś narysować, ale daje mi to błąd poza zasięgiem. Rysuje zielone strzałki, ale czerwone strzałki po prostu nie będą działać. Gdyby ktoś mógł mi powiedzieć, co robię źle, byłoby wspaniale. Nie dlatego, że próbuję uzyskać dostęp do świec, których jeszcze nie ma, lub o ile wiem. Rozumiem, że niektórzy ludzie mogą powiedzieć, że przechodzą obok dostępnych pasków, ale testowałem nawet z limitem 1000, który jestem pewien, że mój wykres ma i nadal daje mi poza zasięgiem. To jest kod:/------------------------------------------ ------------------------ ...
    W każdej pętli spróbuj ją złamać, wykonując coś podobnego do poniższego przykładu, aby ominąć dostępne paski: Wstawiony kod, jeśli (i gt; = Bars-1) zostanie zerwany; Wstawiony kod, jeśli (ii gt; = Bars-1) zostanie złamane;

  5. #5
    1 Załącznik (-i)
    Cytat Zamieszczone przez ;
    {quote} W każdej pętli spróbuj ją rozbić na coś podobnego do poniższego przykładu, aby ominąć dostępne paski: jeśli (i gt; = Bars-1) zerwiesz; jeśli (ii gt; = Bars-1) pęknie;
    Z tego, co widzę, wynika, że ​​mój limit już działa, jednak wciąż wstawiałem go do kodu, aby go przetestować, a nawet wypróbować na kilku pozycjach, jednak błąd nadal występuje. Naprawdę jestem zaskoczony, dlaczego daje mi błąd. To jest zdjęcie dotychczasowego wyniku. Powinien zrobić to samo dla Lows z czerwonymi strzałkami skierowanymi w górę. Możesz również zobaczyć błąd, aby dać ludziom pomysł.

  6. #6

    Cytat Zamieszczone przez ;
    {quote} Z tego, co widzę, wynika, że ​​mój limit już istnieje, ale wciąż wstawiałem go do kodu, aby go przetestować, a nawet wypróbować na kilku pozycjach, jednak błąd nadal występuje. Naprawdę jestem zaskoczony, dlaczego daje mi błąd. To jest zdjęcie dotychczasowego wyniku. Powinien zrobić to samo dla Lows z czerwonymi strzałkami skierowanymi w górę. Możesz również zobaczyć błąd, aby dać ludziom pomysł. {obraz}
    Która linia ma 71?

  7. #7

    Cytat Zamieszczone przez ;
    {quote} Która linia to 71?
    To byłby Lows [ii] = Low [ii]; w drugiej pętli while.

  8. #8
    Cześć AntiVi, powinieneś wskazać, ile buforów jest wymaganych ... Następująca zmiana na początku w twoim kodzie (po #property indior_chart_window) sprawia, że ​​działa ona ładnie ..... #property indior_buffers 2 Cheers Enjoy! John Wstawiony kod/ -------------------------------------------- ---------------------- /| FractalsExercise.mq4 |/| AntiVi |/| https://www.mql5.com |/ ----------------------------------------------- ------------------- #property copyright link AntiVi #property https://www.mql5.com #property version 1.00 #property strict #property indior_chart_window/START ADDED JvW #property indior_buffers 2/END ADDED JvW double Highs # ​​91; # 93 ;; double Lows # 91; # 93 ;;/ ----------------------------------------------- ------------------- /| Funkcja inicjalizacji wskaźnika niestandardowego |/ ----------------------------------------------- ------------------- int OnInit () {//--- styl rysowania SetIndexStyle (0, DRAW_ARROW, EMPTY, 1, clrGreen); SetIndexArrow (0, 234); SetIndexStyle (1, DRAW_ARROW, EMPTY, 1, clrRed); SetIndexArrow (1, 233);/--- bufory wskaźników SetIndexBuffer (0, Highs); SetIndexBuffer (1, Lows);/--- return (INIT_SUCCEEDED); }/ ---------------------------------------------- -------------------- /| Funkcja iteracji wskaźnika niestandardowego |/ ----------------------------------------------- ------------------- int OnCalculate (const int rates_total, const int prev_calculated, const datetime time # 91; # 93 ;, const double open # 91; # 93; , const double high # 91; # 93 ;, const double low # 91; # 93 ;, const double close # 91; # 93 ;, const long tick_volume # 91; # 93 ;, const long volume # 91; # 93; , const int spread # 91; # 93 {//--- int i = 1; int ii = 1; int Limit = Bary - 1; while (i lt; Limit) {if (High # 91; i # 93; gt; High # 91; i 1 # 93 {if (High # 91; i # 93; gt; High # 91; i - 1 # 93 {Highs # ​​91; i # 93; = High # 91; i # 93 ;; }} i ; } while (ii lt; Limit) {if (Low # 91; ii # 93; lt; Low # 91; ii 1 # 93 {if (Low # 91; ii # 93; lt; Low # 91; ii - 1 # 93 {Lows # 91; ii # 93; = Low # 91; ii # 93 ;; }} ii ; }/--- zwraca wartość prev_calculated dla następnego połączenia return (rates_total); }/ ---------------------------------------------- --------------------

  9. #9

    Cytat Zamieszczone przez ;
    Cześć, powinieneś wskazać, ile buforów jest wymaganych ... Następująca zmiana na początku w twoim kodzie (po #property indior_chart_window) sprawia, że ​​działa ona ładnie ..... #property indior_buffers 2 Cheers Enjoy! John/ ---------------------------------------------- -------------------- /| FractalsExercise.mq4 |/| |/|
    https://www.mql5.com|/ ----------------------------------------------- ------------------- #property copyright #property link https://www.mql5.com #property version 1.00 #property strict #property ...
    Pan jest geniuszem. Nie mogę uwierzyć, że naprawa była tak prosta. Zrzucę to na mój brak doświadczenia i zrobię to sam. Spędziłem dobre 5 godzin, próbując to rozgryźć, a jedyne, co znalazłem, było obejście, które niczego nie naprawiło. Będę edytować pierwszy post, aby załączyć poprawkę, aby ludzie mogli uzyskać prostą odpowiedź, jeśli zechcą ją znaleźć! Wielkie dzięki!

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.