Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 758
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
Fehler erhalten - was ist los? In MQL4 funktioniert es...
Haben Sie dieiMA-Hilfe gesehen?
Schritt eins: Deklarieren Sie eine Variable in der "Kopfzeile", um das Handle des iMA-Indikators zu speichern:
Schritt zwei: Erstellen eines Indikator-Handles in OnInit().
Und das Ergebnis (das Fadenkreuz auf dem Screenshot ist auf Takt 1 eingestellt):
Wenn ich versuche, double MA[1] in der Schleife zu verwenden, sollte ich auch double MA[1] verwenden; oder ist es besser, die größere Arraygröße anzufordern/zu empfangen? Ich verstehe einfach nicht, warum all diese Komplikationen notwendig sind - wo liegt der Vorteil gegenüber MQL4?
Mein Beispiel mit der Funktion iMAGetist ein Beispiel für den Empfang von jeweils einem Wert von einem Indikator. Wenn Sie mehr Werte aus dem Indikator erhalten möchten, sollten SieCopyBuffer mit den Parametern "from" und "to"verwendenund das Ergebnis in einem Array speichern.
Hinzugefügt: Es wird später ein Beispiel geben ...
Versprochenes Beispiel.
Eingabeparameter:
Arbeiten mit dem Array und dem Moving Avegarege Indikator im Expert Advisor:
Bitte beachten Sie das Array arr_ma und die Werte der Elemente mit dem Index #0 und mit dem Index #8.
ds
Mein Beispiel mit der Funktion iMAGetist ein Beispiel für den Empfang von jeweils einem Wert vom Indikator. Wenn Sie mehrere Werte aus dem Indikator holen wollen, sollten SieCopyBuffer mit den Parametern "from" und "to"verwendenund das Ergebnis in einem Array speichern.
Hinzugefügt: Es wird später ein Beispiel geben ...
Versprochenes Beispiel.
Eingabeparameter:
Arbeiten mit dem Array und dem Moving Avegarege Indikator im Expert Advisor:
Achten Sie bitte auf das Array arr_ma und die Werte der Elemente mit dem Index #0 und mit dem Index #8.
ds
Danke für das Beispiel!
Es ist für mich sehr wichtig zu verstehen, ob es einen Vorteil hat, einen einzigen Indikatorwert anzufordern und ein Dutzend Indikatorwerte zu kopieren - vielleicht gibt es dazu eine Untersuchung?
Die Tatsache, dass die Zeitreihe umgekehrt ist, ist nicht gut - ich bin an die Standardnummerierung der Balken 0123 gewöhnt, aber hier bekomme ich 1230 in umgekehrter Reihenfolge.
Wenn ich nicht weiß, wie viele Balken ich während der Suche benötige (z. B. bei der Suche nach dem MA und dem Balkenkreuzungspunkt), sollte ich dann die maximal mögliche Anzahl anfordern? Beeinträchtigt dies die Leistung in irgendeiner Weise?
Danke für das Beispiel!
Es ist für mich sehr wichtig zu verstehen, ob es einen Vorteil hat, einen einzigen Indikatorwert anzufordern und ein Dutzend Indikatorwerte zu kopieren - vielleicht gibt es dazu Untersuchungen?
...
Wer hindert uns daran, selbst zu recherchieren :) ?
Die Tatsache, dass die Zeitreihe umgekehrt ist, ist nicht gut - ich bin an die Standardnummerierung der Balken 0123 gewöhnt, und hier haben wir 1230 in umgekehrter Reihenfolge.
...
Wenn ich nicht weiß, wie viele Balken ich für die Suche benötige (z. B. bei der Suche nach einem MA und einem Balkenkreuzungspunkt), sollte ich dann die maximal mögliche Anzahl anfordern? Beeinträchtigt dies die Leistung in irgendeiner Weise?
In solchen Fällen ist es besser, mehrere Abfragen zu machen. Zum Beispiel: erste Abfrage - 50 Elemente, ggf. zweite Abfrage (wieder 50 Elemente) ...
Wer hindert uns daran, selbst zu recherchieren :) ?
Ich bin durch meine Analphabetenschaft in MQL5 behindert - ich kann jeden wegen eines Fehlers im Code in die Irre führen, aber Ihre Professionalität würde mehr Vertrauen in solche Studien erwecken!
Sie müssen lediglichArraySetAsSeries('unser Array',true) ausführen, nachdem Sie das Array erhalten haben (nach dem Aufruf von iMAGetArray).Ich meine, es in einer Funktion auf einmal tun?
In solchen Fällen ist es besser, mehrere Abfragen zu machen. Zum Beispiel, die erste Anfrage - 50 Elemente, und, falls erforderlich, die zweite Anfrage (wieder 50 Elemente) ......
D.h. es in einer Funktion auf einmal tun?
...
Es ist besser, das Feld nach innen zu drehen:
Wladimir Karputow:
Nachdem Sie das Array erhalten haben (nach dem Aufruf von iMAGetArray), müssen SieArraySetAsSeries('our array',true)ausführen.
...
Brr... D.h., eine Schleife in die Schleife einbauen? Warum 50 und nicht 100? Trotzdem sind Studien zu diesem Thema notwendig, vielleicht macht es keinen Sinn, sich über mehr als eine Bar zu informieren...Keine verschachtelten Schleifen - es wird nur eine Schleife um alle Werte geben: die gesamte Verarbeitung erfolgt sequentiell - Suchergebnis in einer separaten Funktion (in dieser wird ein bestimmter Wert abgefragt - zum Beispiel 50 Werte). Wenn wir das Ergebnis nicht finden, stellen wir eine neue Anfrage.
Die Arbeit mit Indikatoren in MQL5 nach MQL4 ist schrecklich! Das macht mich wirklich krank.
Ich verstehe nicht, warum sie nicht alles in einer Funktion zusammenfassen können, einschließlich des Handles, anstatt den Aufruf des Indikators im gesamten Code zu verschmieren!
Und wenn die Einstellungen eines Indikators durch die Funktion geändert werden, in der sich der Indikator befindet, verstehe ich nicht, was zu tun ist! Müssen alle Varianten des Indikators initiiert werden?
Ich habe ein Beispiel in MQL4 gesehen - wie kann man das in MQL5 machen?
Können Sie mir sagen, wie ich die Markierungen nach dem Schließen einer Position entfernen kann, damit sie nicht angezeigt werden?
Ist es möglich, sie programmatisch zu entfernen?
Ich danke Ihnen!