Array außerhalb des Bereichs? Hilfe?
Seite 1 von 572 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: Array außerhalb des Bereichs? Hilfe?

  1. #1
    EDIT: Hier ist die Reparatur dank Johnvanwijk!
    https://www.tradingintuitive.com/gen...-analysis.html


    Hallo Leute,
    Also habe ich versucht, ein paar Sachen zu zeichnen, aber es gibt mir den Fehler Array außerhalb des Bereichs.
    Es zeichnet die grünen Pfeile perfekt, aber die roten Pfeile funktionieren einfach nicht.

    Wenn mir jemand sagen könnte, was ich falsch mache, wäre es großartig.

    Es ist nicht, weil ich versuche, auf Kerzen zuzugreifen, die noch nicht da sind, oder soweit ich weiß.
    Ich habe gehört, dass einige Leute sagen, dass es die verfügbaren Bars überholt, aber ich habe sogar mit einer Grenze von 1000 getestet, was ich sicher bin, dass mein Chart hat und es mich immer noch außerhalb der Reichweite gibt.

    Dies ist der Code:

    Eingefügter Code/ --------------------------------------------- --------------------- /| FraktaleÜbung.mq4 |/| |/| https://www.mql5.com |/ ----------------------------------------------- ------------------- #eigenschaft copyright #eigenschaftslink https://www.mql5.com #eigenschaftsversion 1.00 #eigenschaft strikt #eigenschaft indikator_chart_fenster doppelhoch # 91; # 93 ;; Doppellows # 91; # 93 ;;/ ----------------------------------------------- ------------------- /| Benutzerdefinierte Indikatorinitialisierungsfunktion |/ ----------------------------------------------- ------------------- int OnInit () {//--- Zeichenstil SetIndexStyle (0, DRAW_ARROW, EMPTY, 1, clrGreen); SetIndexArrow (0, 234); SetIndexStyle (1, DRAW_ARROW, LEER, 1, clrRed); SetIndexArrow (1, 233);/--- Indikatorpuffer SetIndexBuffer (0, Highs); SetIndexBuffer (1, Lows);/--- return (INIT_SUCCEEDED); }/ ---------------------------------------------- -------------------- /| Benutzerdefinierte Indikatoriterationsfunktion |/ ----------------------------------------------- ------------------- int OnCalculate (const int rates_total, const int prev_calculated, const datetime Zeit # 91; # 93 ;, const double open # 91; # 93; , const doppelt hoch # 91; # 93 ;, const doppelt niedrig # 91; # 93 ;, const doppelt geschlossen # 91; # 93 ;, const lang tick_volume # 91; # 93 ;, const lang Volumen # 91; # 93; , const int spread # 91; # 93;) {//--- int i = 1; int ii = 1; int Limit = Balken - 1; while (i lt; Limit) {if (Hoch # 91; ich # 93; gt; Hoch # 91; i 1 # 93;) {if (Hoch # 91; ich # 93; gt; Hoch # 91; ich - 1 # 93;) {Highs # ​​91; i # 93; = Hoch # 91; i # 93 ;; }} i ; } while (ii lt; Grenze) {if (Niedrig # 91; ii # 93; lt; Niedrig # 91; ii 1 # 93;) {if (Niedrig # 91; ii # 93; lt; Niedrig # 91; ii - 1 # 93;) {Lows # 91; ii # 93; = Niedrig # 91; ii # 93 ;; }} ii ; }/--- Rückgabewert von prev_calculated für den nächsten Aufruf return (rates_total); }/ ---------------------------------------------- --------------------

    Vielen Dank!

  2. #2
    Genie ??? Danke, aber ich würde es nicht glauben. Mehr ein bisschen ein Stolperer mit Erfahrung :-) Ich wette für jeden Fehler, Auslassung oder Code Tippfehler, den du hier zeigen könntest: Ich habe das selbe in der Vergangenheit gemacht ... und wahrscheinlich ZWEIMAL! Cheerio

  3. #3
    Wenn ich die while-Schleifen in zwei Indikatoren aufspalte, funktioniert das perfekt mit keinem einzigen Fehler, aber nicht, wenn sie zusammen drin sind. Es greift auch auf nichts zu, das nicht da ist. Ich bin also nicht sicher, warum es sagt, dass es außer Reichweite ist.

  4. #4

    Zitat Zitat von ;
    Hey Leute, ich habe versucht, ein paar Sachen zu zeichnen, aber es gibt mir den Fehler Array außerhalb des Bereichs. Es zeichnet die grünen Pfeile perfekt, aber die roten Pfeile funktionieren einfach nicht. Wenn mir jemand sagen könnte, was ich falsch mache, wäre es großartig. Es ist nicht, weil ich versuche, auf Kerzen zuzugreifen, die noch nicht da sind, oder soweit ich weiß. Ich habe gehört, dass einige Leute sagen, dass es die verfügbaren Bars überholt, aber ich habe sogar mit einer Grenze von 1000 getestet, was ich sicher bin, dass mein Chart hat und es mich immer noch außerhalb der Reichweite gibt. Dies ist der Code:/ ------------------------------------------ ------------------------ ...
    Versuchen Sie in jeder Schleife, es mit etwas wie dem folgenden Beispiel zu brechen, um zu vermeiden, über die verfügbaren Bars zu gehen: Eingefügter Code, wenn (i gt; = Bars-1) bricht; Code eingefügt, wenn (ii gt; = Bars-1) bricht;

  5. #5
    1 Anhang (e)
    Zitat Zitat von ;
    {quote} Versuchen Sie in jeder Schleife, es mit etwas wie dem folgenden Beispiel zu brechen, um zu vermeiden, über die verfügbaren Bars zu gehen: wenn (i gt; = Bars-1) bricht; wenn (ii gt; = Bars-1) bricht;
    Von dem, was ich sehen kann, ist das, was mein Limit schon tut, aber ich habe es immer noch in den Code eingefügt, nur um es zu testen und habe es sogar an mehreren Stellen versucht, aber der Fehler bleibt bestehen. Ich bin ehrlich verwirrt darüber, warum es mir den Fehler gibt. Dies ist ein Bild des bisherigen Ergebnisses. Es sollte das gleiche für die Tiefen mit roten Pfeilen nach oben tun. Sie können den Fehler auch nur sehen, um den Leuten eine Idee zu geben.

  6. #6

    Zitat Zitat von ;
    {quote} Von dem, was ich sehen kann, ist das, was mein Limit schon tut, aber ich habe es immer noch in den Code eingefügt, nur um es zu testen und habe es sogar an mehreren Stellen versucht, aber der Fehler bleibt bestehen. Ich bin ehrlich verwirrt darüber, warum es mir den Fehler gibt. Dies ist ein Bild des bisherigen Ergebnisses. Es sollte das gleiche für die Tiefen mit roten Pfeilen nach oben tun. Sie können den Fehler auch nur sehen, um den Leuten eine Idee zu geben. {Bild}
    Welche Linie ist 71?

  7. #7

    Zitat Zitat von ;
    {quote} Welche Zeile ist 71?
    Das wäre Lows [ii] = Low [ii]; in der zweiten While-Schleife.

  8. #8
    Hi AntiVi, du solltest angeben wie viele Puffer benötigt werden .... die folgende Änderung am Anfang in deinem Code (nach #property indior_chart_window) lässt es gut funktionieren ..... #property indior_buffers 2 Cheers Viel Spaß! John eingefügte Code/ -------------------------------------------- ---------------------- /| FraktaleÜbung.mq4 |/| AntiVi |/| https://www.mql5.com |/ ----------------------------------------------- ------------------- #eigenschaft copyright AntiVi #eigenschaftslink https://www.mql5.com #eigenschaftsversion 1.00 #eigenschaft strikt #eigenschaft indikator_chart_fenster/START HINZUGEFÜGT JvW #eigenschaft indior_buffers 2/ENDE HINZUGEFÜGTE JvW double Highs # ​​91; # 93 ;; Doppellows # 91; # 93 ;;/ ----------------------------------------------- ------------------- /| Benutzerdefinierte Indikatorinitialisierungsfunktion |/ ----------------------------------------------- ------------------- int OnInit () {//--- Zeichenstil SetIndexStyle (0, DRAW_ARROW, EMPTY, 1, clrGreen); SetIndexArrow (0, 234); SetIndexStyle (1, DRAW_ARROW, LEER, 1, clrRed); SetIndexArrow (1, 233);/--- Indikatorpuffer SetIndexBuffer (0, Highs); SetIndexBuffer (1, Lows);/--- return (INIT_SUCCEEDED); }/ ---------------------------------------------- -------------------- /| Benutzerdefinierte Indikatoriterationsfunktion |/ ----------------------------------------------- ------------------- int OnCalculate (const int rates_total, const int prev_calculated, const datetime Zeit # 91; # 93 ;, const double open # 91; # 93; , const doppelt hoch # 91; # 93 ;, const doppelt niedrig # 91; # 93 ;, const doppelt geschlossen # 91; # 93 ;, const lang tick_volume # 91; # 93 ;, const lang Volumen # 91; # 93; , const int spread # 91; # 93 {//--- int i = 1; int ii = 1; int Limit = Balken - 1; while (i lt; Limit) {if (Hoch # 91; ich # 93; gt; Hoch # 91; i 1 # 93 {if (Hoch # 91; ich # 93; gt; Hoch # 91; ich - 1 # 93 {Highs # ​​91; i # 93; = Hoch # 91; i # 93 ;; }} i ; } while (ii lt; Grenze) {if (Niedrig # 91; ii # 93; lt; Niedrig # 91; ii 1 # 93 {if (Niedrig # 91; ii # 93; lt; Niedrig # 91; ii - 1 # 93 {Lows # 91; ii # 93; = Niedrig # 91; ii # 93 ;; }} ii ; }/--- Rückgabewert von prev_calculated für den nächsten Aufruf return (rates_total); }/ ---------------------------------------------- --------------------

  9. #9

    Zitat Zitat von ;
    Hallo, Sie sollten angeben, wie viele Puffer benötigt werden .... die folgende Änderung am Anfang in Ihrem Code (nach #property indior_chart_window) macht es gut ... #property indior_buffers 2 Cheers Viel Spaß! John/ ---------------------------------------------- -------------------- /| FraktaleÜbung.mq4 |/| |/|
    https://www.mql5.com|/ ----------------------------------------------- ------------------- #eigenschaft copyright #eigenschaftslink https://www.mql5.com #eigenschaftsversion 1.00 #eigenschaft strikt #immobilien ...
    Sie sind ein Genie. Ich kann nicht glauben, dass die Reparatur so einfach war. Ich werde das auf meine Unerfahrenheit schieben und es selbst lernen. Ich verbrachte gut 5 Stunden damit, es herauszufinden, und alles, was ich fand, waren Workarounds, die nichts reparierten. Ich bearbeite den ersten Post, um den Fix zu integrieren, damit die Leute die einfache Antwort bekommen können, wenn sie danach suchen! Danke vielmals!

  10. #10

    Zitat Zitat von ;
    {quote} Sie sind ein Genie. Ich kann nicht glauben, dass die Reparatur so einfach war. Ich werde das auf meine Unerfahrenheit schieben und es selbst lernen. Ich verbrachte gut 5 Stunden damit, es herauszufinden, und alles, was ich fand, waren Workarounds, die nichts reparierten. Ich bearbeite den ersten Post, um den Fix zu integrieren, damit die Leute die einfache Antwort bekommen können, wenn sie danach suchen! Danke vielmals!
    Hi AntiVi, zusätzlich zu dem, was John freigegeben hat, möchten Sie auch die Angewohnheit haben, die als Argumente übergebenen Daten in die OnCalculate-Funktion zu verwenden, anstatt sich auf Daten von den eingebauten Vars zu verlassen. Außerdem möchten Sie sicherstellen, dass Sie Ihre Rückblicke richtig machen. Sie müssen nicht die gesamte Schleife (alle Diagrammdaten) für jeden Tick verarbeiten. Sie müssen nur den Teil der Indikatordaten bearbeiten, der aktualisiert werden muss. Hier ist ein Beispiel, wie Sie die OnCalculate-Funktion besser nutzen können. Code #property strict #Eigenschaft indior_chart_window eingefügt/START ADDED JvW #eigenschaft indior_buffers 2/END ADDED JvW double Highs # ​​91; # 93 ;; Doppellows # 91; # 93 ;;/ ----------------------------------------------- ------------------- /| Benutzerdefinierte Indikatorinitialisierungsfunktion |/ ----------------------------------------------- ------------------- int OnInit () {//--- Zeichenstil SetIndexStyle (0, DRAW_ARROW, EMPTY, 1, clrGreen); SetIndexArrow (0,234); SetIndexStyle (1, DRAW_ARROW, LEER, 1, clrRed); SetIndexArrow (1,233);/--- Indikatorpuffer SetIndexBuffer (0, Highs); SetIndexBuffer (1, Lows); Rückkehr (INIT_SUCCEEDED); }/ ---------------------------------------------- -------------------- /| Benutzerdefinierte Indikatoriterationsfunktion |/ ----------------------------------------------- ------------------- int OnCalculate (const int rates_total, const int prev_calculated, const datetime Zeit # 91; # 93 ;, const double open # 91; # 93; , const doppelt hoch # 91; # 93 ;, const doppelt niedrig # 91; # 93 ;, const doppelt geschlossen # 91; # 93 ;, const lang tick_volume # 91; # 93 ;, const lang Volumen # 91; # 93; , const int spread # 91; # 93 {//--- int grenz = rates_total - prev_calculated - 2; Grenze = Grenze lt; 1? 1: Begrenzung; für (int i = Grenze; ​​i gt; 0; i--) {if (hoch # 91; i # 93; gt; hoch # 91; i 1 # 93; hoch # 91; i # 93; gt; hoch # 91; i-1 # 93 Hochs # 91; ich # 93; = hoch # 91; i # 93 ;; if (niedrig # 91; i # 93; lt; niedrig # 91; i 1 # 93; niedrig # 91; i # 93; lt; niedrig # 91; i-1 # 93 Lows # 91; i # 93 ; = niedrig # 91; i # 93 ;; }/--- Rückgabewert von prev_calculated für den nächsten Aufruf return (rates_total); }

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  
Die tradingintuitive Webseite verwendet Cookies
Wir nutzen Cookies, um Ihnen das Webseitenerlebnis bestmöglich anbieten zu können. Durch weitere Nutzung der Webseite erlauben Sie die Nutzung von Cookies. Für weitere Details und wie Sie ggf. diese Einstellungen verändern können, lesen Sie bitte unsere Datenschutzbestimmung. Lesen Sie mehr