Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 1496
![MQL5 - Sprache von Handelsstrategien, eingebaut ins Kundenterminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
"Finde den Maximalwert im Ticks-Array" - den Maximalwert von was finden wir?
ticks[copied-1].bid oder ticks[copied-1].flags
Nur ein Scherz)))))
Wahrscheinlich haben Sie CopyTicks mit CopyRates verwechselt, obwohl Sie auch dort ein Array von Strukturen haben und angeben, welches Element der Struktur Sie benötigen.
double PrevClose = rates[copied-1].close;
Sie haben eine zusätzliche Zeile in Ihrem Code.
Die brauchen Sie nicht, weil CopyTicks und CopyRates die Arraygröße beim Kopieren selbst zuweisen.Vielen Dank für den Hinweis. Das wusste ich nicht. Ich füge diese Zeile nur für den Fall ein.
Verstehe ich deinen Scherz richtig, dass bei Rates alle Preise gemittelt werden und den Bar berücksichtigen, bei Ticks hingegen nicht? Deshalb habe ich mit Tick ein beliebiges Zeitintervall gemeint, nicht die Bar-Preise. CopyRates in meiner ähnlichen Formel füllte die kopierte Variable mit dem maximalen Wert vom Typ ulong für das Stundenintervall. Auch dieses Problem konnte ich nicht lösen.
Danke für den Tipp. Das habe ich nicht gewusst. Ich füge diese Zeile nur für den Fall ein.
Verstehe ich deinen Scherz richtig, dass die Kurse alle Preise gemittelt haben und den Balken berücksichtigen, die Ticks aber nicht? Deshalb habe ich mit Tick ein beliebiges Zeitintervall gemeint, nicht die Balkenpreise. CopyRates in meiner ähnlichen Formel füllte die kopierte Variable mit dem maximalen Wert vom Typ ulong für das Stundenintervall. Auch dieses Problem konnte ich nicht lösen.
Alles ist falsch.
MqlRates ist eine Struktur, und Sie behandeln sie wie eine Variable.
MqlTick ist auch eine Struktur.
Sie versuchen, warm und weich zu kombinieren, und der Compiler versteht Sie nicht.
Genauso wenig wie I))))).
Vielleicht könnte ich etwas Nützliches vorschlagen, aber aus Ihrem Code geht nicht klar hervor, was Sie zu finden versuchen.
Das ist alles falsch.
MqlRates ist eine Struktur, und Sie behandeln sie wie eine Variable.
MqlTick ist auch eine Struktur.
Sie versuchen, warm und weich zu kombinieren, so dass der Compiler Sie nicht versteht.
Ich auch nicht))))
Vielleicht könnte ich etwas Nützliches vorschlagen, aber aus Ihrem Code geht nicht klar hervor, was Sie zu finden versuchen.
Die Aufgabe besteht darin, WPR (Williams Percent Range) so zu modifizieren, dass man die Differenz der WPR-Werte für einen beliebigen Zeitraum erhält, unabhängig von den Balken.
Es ist möglich (aber nicht sicher), dass dies das ist, was Sie erhalten wollten.
double lowestLow = ArrayMinimum(bid, 0, copied);
Ich danke Ihnen. Wenn ich die Lektion richtig verstanden habe, habe ich folgendes Ergebnis:
Aber leider ist der Expert Advisor in der Zeile bid_arr[i] = ticks[i].bid; wegen Array out of range in 'namemyexpert.mq5' (204,12) aus dem Chart gefallen.Ich danke Ihnen. Das ist das Ergebnis, wenn ich meine Lektion richtig gelernt habe:
Da wir sowieso eine Schleife über alle Ticks machen, können wir in dieser Schleife nicht kopieren, sondern gleich nach den Maximal-Minimalwerten suchen.
Übrigens, wenn wir kopieren, wäre es gut, zuerst die Größen der Arrays festzulegen, in die wir kopieren, die Schleife wird das nicht für uns tun, wir werden bei der ersten Iteration aus dem Array herausfliegen. Nur CopyTicksRange wird die Größe des Ziel-Arrays selbst ändern.
Da wir ohnehin alle Ticks durchlaufen, können wir in diesem Zyklus nicht kopieren, sondern gleich nach diesen Maximal-Minimalwerten suchen.
Übrigens, wenn wir kopieren, wäre es gut, zuerst die Größe des Arrays festzulegen, in das wir kopieren, die Schleife wird das nicht für uns tun, wir werden bei der ersten Iteration aus dem Array herausfliegen. Nur CopyTicksRange wird die Größe des Ziel-Arrays selbst ändern.
Ich bin ein Perfektionist, das Sortieren einzelner Elemente eines Arrays von Strukturen ist wie Glas mit Styropor zu schlagen.
Da wir ohnehin alle Ticks durchlaufen, können wir in diesem Zyklus nicht kopieren, sondern gleich nach diesen Maximal-Minimalwerten suchen.
Übrigens, wenn wir kopieren, wäre es gut, zuerst die Größe des Arrays festzulegen, in das wir kopieren, die Schleife wird das nicht für uns tun, wir werden bei der ersten Iteration aus dem Array herausfliegen. Nur CopyTicksRange wird die Größe des Ziel-Arrays selbst ändern.
Entschuldigung. Meine Unaufmerksamkeit. Korrigiert. Danke. Ich hatte vergessen, dass der ArrayMaximum-Wert ein Index und kein Preis ist. Aber das ist jetzt korrigiert.
Da ArrayMaximum nicht mit dem Ticks-Array funktionierte, habe ich alternative Berechnungen mit if in einer Schleife versucht. Warum ist das besser?
Warum ist es besser?