Diskussion zum Artikel "Erweiterung der MQL5-Standardbibliothek und Wiederverwendung von Code" - Seite 2
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
Helfen Sie mir zu verstehen, wie die Indizierung Richtung der Indikator-Puffer-Array hier festgelegt ist, d.h. das gleiche wie ArraySetAsSeries. Die Standardrichtung ist von der Gegenwart zur Vergangenheit, aber ich muss es von der Vergangenheit zur Gegenwart machen. Ich kämpfe seit gestern mit dieser Frage! Hilfe!
Es ist nicht notwendig, da es den Standard ZigZag verwendet.
Suchen Sie die Stelle, an der die Richtung in diesem ZigZag festgelegt ist, aber es ist immer noch unklar, warum Sie es brauchen - Sie können die Indizierungsrichtung jederzeit selbst ändern - https://www.mql5.com/de/docs/series.
Das ist nicht nötig, denn es verwendet den Standard-ZigZag
Suchen Sie in diesem ZigZag nach der Stelle, an der die Richtung festgelegt ist. Aber es ist immer noch unklar, warum Sie es brauchen - Sie können die Richtung der Indizierung jederzeit selbst ändern - https://www.mql5.com/de/docs/series.
Vielen Dank für die Information, wir werden uns das ansehen!
Es braucht sie nicht, da es den Standard-ZigZag verwendet
In diesem ZigZag suchen Sie nach der Stelle, an der die Richtung eingestellt ist. Aber es ist immer noch nicht klar, warum Sie es brauchen - Sie können die Indizierungsrichtung jederzeit selbst ändern - https://www.mql5.com/de/docs/series.
Es tut mir leid, aber es ist immer noch nicht klar, wie man die Indizierungsrichtung ändern kann, zum Beispiel, wenn man keinen Zugriff auf die Zigzag-Quelle hat. Die Indizierungsrichtung wird mit ArraySetAsSeries() gesetzt - wobei der Eingabeparameter ein Array per Referenz ist,
aber wir haben dieses Array nicht, sondern nur einen Zeiger auf das Indikatorpuffer-Array in Form von
Hier ist der vollständige Code des Indikators, wobei die Ausgabe der Indikatorwerte von der Gegenwart in die Vergangenheit erfolgt - und umgekehrt
Sorry, aber immer noch nicht klar, wie man die Richtung der Indizierung zu ändern, zum Beispiel, wenn es keinen Zugriff auf die Quelle Zigzag ist. Die Indizierungsrichtung wird durch ArraySetAsSeries() festgelegt - wobei der Eingabeparameter ein Array per Referenz ist,
aber wir haben dieses Array nicht, sondern nur einen Zeiger auf das Indikatorpuffer-Array in Form von
Die Basisklasse CIndicator verfügt über eine GetData-Methode, mit der Daten aus dem Indikatorpuffer geholt werden können.
Holt Daten aus dem Indikatorpuffer nach Startposition und Nummer
int GetData(
const intstart_pos, // Position
const intcount, // Anzahl
const int buffer_num, // Puffernummer
double&buffer[]// Array
) const
Danach legen Sie die gewünschte Indizierungsrichtung für Ihr Array mit ArraySetAsSeries fest
Die Basisklasse CIndicator verfügt über eine GetData-Methode, die verwendet werden kann, um Daten aus dem Indikatorpuffer abzurufen.
Holt Daten aus dem Indikatorpuffer nach Startposition und Anzahl der
int GetData(
const intstart_pos, // Position
const intcount, // Anzahl
const int buffer_num, // Puffernummer
double&buffer[]// Array
) const
Danach legen Sie die gewünschte Indizierungsrichtung für Ihr Array fest.
Es stellt sich also heraus, dass man zweimal auf den Indikatorpuffer zugreifen muss, aber auf unterschiedliche Weise? Immerhin haben wir hier unten bereits Zugriff auf die Werte des Indikatorpuffers? Wir erhalten ein Zwischen-Array double &buffer[] Ich verstehe Sie richtig?
Die Basisklasse CIndicator verfügt über eine GetData-Methode, die verwendet werden kann, um Daten aus dem Indikatorpuffer abzurufen.
Holt Daten aus dem Indikatorpuffer nach Startposition und Anzahl der
int GetData(
const intstart_pos, // Position
const intcount, // Anzahl
const int buffer_num, // Puffernummer
double&buffer[]// Array
) const
Danach setzen Sie die gewünschte Indizierungsrichtung für Ihr Array mit ArraySetAsSeries
Habe ich Sie richtig verstanden?
Es stellt sich heraus, dass Sie den gesamten Verlauf bei jedem Tick kopieren müssen?Verstehe ich Sie richtig???
Es stellt sich heraus, dass es notwendig ist, den gesamten Verlauf bei jedem Tick zu kopieren?1. Sie können dies bei der Eröffnung eines neuen Balkens tun.
2. warum müssen Sie jedes Mal alle Indikatorwerte abrufen und sich gleichzeitig um die Indizierungsrichtung kümmern? Was ist überhaupt die Aufgabe?
Warum sollte man einen einfachen Indikator in eine Klasse verpacken, wenn er später entweder in einem Diagramm oder über iCustom verwendet wird?
Второе решение лучше, потому что является объектно-ориентированным
OOP um der OOP willen, okay.
1. Es ist möglich, einen neuen Balken zu öffnen.
2. warum müssen Sie jedes Mal alle Indikatorwerte abrufen und sich gleichzeitig um die Indizierungsrichtung kümmern? Was ist überhaupt die Aufgabe?
Das Problem wurde durch die Schleifenbedingungen gelöst, jetzt funktioniert alles wie gewünscht. danke!