Fragen von Anfängern MQL4 MT4 MetaTrader 4 - Seite 195
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
Suchen Sie den Punkt, an dem der Kurs den MA nach oben kreuzt. Dies ist der Beginn des Suchbereichs.
Suchen Sie den Punkt, an dem der Kurs den MA nach unten gekreuzt hat. Dies wäre der Stoppbereich.
Nehmen Sie iHighest() nur in diesem Bereich.
Und wie man die Suche nach MA-Punkten implementiert, so dass nur 2 Extrempunkte gesucht werden und nicht bis ins Unendliche. Ich verstehe es auch, aber wenn es nicht schwierig ist, wie man es im Code implementiert.
Eine Möglichkeit: Erstellen Sie eine Variable auf globaler EA-Programmebene (deklarieren Sie eine Variable in der EA-Kopfzeile) - schreiben Sie in diese Variable die Eröffnungszeit des Balkens, bei dem die letzte Überquerung stattgefunden hat. Dies wird helfen, die dritte Form des Aufrufs vonCopyBuffer zu verwenden:
Die Referenz der Start- und Enddaten des gewünschten Zeitintervalls
Hier ist start_time einfach die Zeit aus unserer Variablen, und stop_time ist die Zeit des letzten bekannten Angebots des Servers.
Und wie man die Suche der Punkte des MA implementiert, so dass es nur 2 äußere suchen würde, und nicht ins Unendliche. In Worten verstehe ich es auch, aber wenn es nicht schwierig ist, wie man es im Code implementiert.
Sie müssen den Zyklus so lange durchlaufen, bis Sie einen Weg weg von den MA finden.
Ein Punkt, dieser durch das gelbe Rechteck hervorgehobene Abschnitt, wird die Schleife unterbrechen, bevor sie den zweiten Crossover zwischen dem Preis und dem MA erreicht. Das Maximum wird an der ersten rechten Kreuzung gefunden
P.S. Was ist der Unterschied zwischen den beiden hervorgehobenen Bereichen?
P.S. Was ist der Unterschied zwischen den beiden hervorgehobenen Bereichen?
Sie können unterschiedlich sein, d. h. der erste Punkt kann höher oder niedriger als der zweite Punkt sein.
Dies ist nur ein Beispiel. Das bedeutet aber nicht, dass sie immer identisch sein werden.
Wer kann Beispiele für Code mit ähnlichen Bedingungen nennen..:
Aktueller Wert von MA> 0 bar.
Suche nach Bar Nummer, Preis<MA, gefundene Nummer 1 Bar, Wert in Puffer 2 schreiben
Suche nachnächster Nummer Preis>MA hat Nummer 2 Bar gefunden, schreibe Wert in Puffer 1.
Suche beenden.
Suchen Sie dann zwischen den Werten von Puffer 1 und 2 nach dem niedrigsten Preis Low.
Wenn aktueller MA-Wert < 0 bar
Suche nach der Anzahl der Bar, Preis>MA, fand die Anzahl der 1 bar, schreiben Sie den Wert in Puffer 2
Suche nachnächster Nummer Preis<MA gefundene Nummer 2 bar, Wert in Puffer 1 schreiben.
Suche beenden.
Dann suchen wir zwischen den Werten von Puffer 1 und 2 den höchsten Preis High.
Sie können unterschiedlich sein - der erste Punkt kann höher oder niedriger sein als der zweite Punkt.
Das ist nur ein Beispiel. Das heißt aber nicht, dass sie immer gleich bleiben werden.
Wer kann Beispiele für Code mit ähnlichen Bedingungen nennen..:
Der aktuelle Wert MA> 0 bar
Wir suchen nach der Taktnummer, Preis <MA, wir haben die Nummer von 1 Takt gefunden und schreiben den Wert in Puffer 2
Suche nachnächster Nummer Preis>MA hat Nummer 2 Bar gefunden, schreibe Wert in Puffer 1.
Suche beenden.
Suchen Sie dann zwischen den Werten von Puffer 1 und 2 nach dem niedrigsten Preis Low.
Wenn aktueller MA-Wert < 0 bar
Suche nach der Anzahl der Bar, Preis>MA, fand die Anzahl der 1 bar, schreiben Sie den Wert in Puffer 2
Suche nachnächster Nummer Preis<MA gefundene Nummer 2 bar, Wert in Puffer 1 schreiben.
Suche beenden.
Dann suchen wir zwischen den Werten von Puffer 1 und 2 den höchsten Preis High.
Wenn wir dem Bild folgen, müssen wir eine Schleife starten und suchen, bis die Bedingung MA<Wert gefunden ist.
Sobald diese gefunden ist, füllen wir das Feld mit Hochpreisen. Wir lassen den Zyklus so lange laufen, bis wir die Bedingung MA>Preis gefunden haben. Sobald wir diese Stelle gefunden haben, unterbrechen wir den Zyklus.
Und im Array suchen wir nach den Spitzenpreisen
Wenn Sie der Abbildung folgen, sollten Sie eine Schleife laufen lassen und so lange suchen, bis die Bedingung MA<Wert gefunden ist.
Sobald diese gefunden ist, füllen wir das Feld mit Hochpreisen. Wir lassen den Zyklus so lange laufen, bis wir die Bedingung MA>Preis gefunden haben. Sobald wir den Ort gefunden haben, unterbrechen wir den Zyklus.
Dann suchen wir nach den Spitzenpreisen in der Reihe.
Sie haben Recht, und ich schrieb es auch auf die gleiche Weise, aber wie man es in den Code zu implementieren, können Sie zumindest geben uns ein Code-Beispiel für diese :
eine Schleife starten und so lange suchen, bis die Bedingung MA<Preis gefunden wird.
Sobald diese Bedingung erfüllt ist,füllen wir das Array mit den Preisen High
Das ist richtig, und das ist, wie ich es geschrieben habe, aber wie es in Code zu implementieren, können Sie zumindest ein Code-Beispiel für diese geben:
eine Schleife laufen lassen und so lange suchen, bis die Bedingung MA<Preis gefunden wird.
Sobald diese Bedingung erfüllt ist,füllen wir das Array mit den Preisen High
Ich kann den Code jetzt nicht schreiben, vielleicht schreibt ihn jemand anders - er ist einfach
Dies ist, was benötigt wird, kann jemand mit diesem Code helfen.
Dann wird der nächste Wert gesucht, bei dem iLow>ma ist und die Taktnummer No_2 zurückgegeben.
Stoppen Sie die Suche und verwenden Sie die Funktion iHighest, um den Scheitelpunkt zwischen diesen Balken zu finden
int val_index=iHighest(NULL,0,MODE_HIGH,No_2,No_1);
Dies ist kein MQL5-Code.
Dies ist kein MQL5-Code.
Dies ist ein Layout, es gibt keinen Unterschied zwischen 4 und 5
:)