Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 466
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
Ich grüße alle. Ich habe eine solche Frage. Ich habe einen Indikator (modifizierte Fraktale), wenn auf einem Diagramm geladen alles korrekt ist, funktioniert, wie es sollte, aber wenn ich versuche, es in einem EA zu verwenden, sagt es, dass der Puffer leer ist. Gleichzeitig werden bei der Übergabe des Puffers in Deinit die richtigen Werte gespeichert.
Der Quellcode des Indikators ist beigefügt. Ich bin bereit, mir Tipps und Vorschläge anzuhören, was ich falsch mache.
Code von EA:
Sie könnten die "wenn" am Ende durch "wenn" ersetzen:
(wenn es so einfach ist,,,,:)
Danke
Ich grüße alle. Ich habe eine solche Frage. Ich habe einen Indikator (modifizierte Fraktale), wenn auf einem Diagramm geladen alles korrekt ist, funktioniert, wie es sollte, aber wenn ich versuche, es in einem EA zu verwenden, sagt es, dass der Puffer leer ist. Gleichzeitig werden bei der Übergabe des Puffers in Deinit die richtigen Werte gespeichert.
Der Quellcode des Indikators ist beigefügt. Ich bin bereit, mir Tipps und Vorschläge anzuhören, was ich falsch mache.
Der Code stammt aus dem Expert Advisor:
Ein sehr flüchtiger Blick. Frage: Kann ein Fraktal auf einer Nullleiste stehen? In OnDeinit() durchlaufen Sie jedoch eine Schleife durch die Balken und finden natürlich ein Fraktal (keinen leeren Pufferwert).
In Deinit gehe ich auch durch 4-6 und alles ist an seinem Platz.
In OnDeinit() laufen Sie in einer Schleife (von 0 bis 100) durch die Balken und suchen nach einem Wert ungleich Null und protokollieren den gefundenen Wert.
In OnTick() versuchen Sie, nur die letzten 6 Takte des Puffers 0 auszugeben. Es darf kein Fraktal auf ihnen sein.
Suchen Sie zunächst den Balken mit dem Fraktal und drucken Sie dann den Wert dieses Balkens aus.
In OnDeinit() laufen Sie in einer Schleife (von 0 bis 100) durch die Balken und suchen nach einem Wert ungleich Null und protokollieren den gefundenen Wert.
Aber in OnTick() versuchen Sie, nur die letzten 6 Takte von Puffer 0 zu drucken. Es darf kein Fraktal auf ihnen sein. Suchen Sie zunächst den Balken mit dem Fraktal und drucken Sie dann den Wert dieses Balkens aus.
Der 6. Takt soll Fraktal enthalten.
2015.11.01 13:19:11.023 2015.10.30 22:54 MoneyRobotics_Proboi! EURUSD,H1: x = 29 fractal Up: 1.098552015.11.01 13:19:11.023 2015.10.30 22:54 MoneyRobotics_Proboi! EURUSD,H1: x = 21 fractal Up: 1.09976
2015.11.01 13:19:11.023 2015.10.30 22:54 MoneyRobotics_Proboi! EURUSD,H1: x = 16 fraktal Down: 1.09652
2015.11.01 13:19:11.023 2015.10.30 22:54 MoneyRobotics_Proboi! EURUSD,H1: x = 6 fractal Up: 1.10721
2015.11.01 13:19:10.577 2015.10.30 22:54 MoneyRobotics_Proboi! EURUSD,H1: Deinit Funktion
2015.11.01 13:19:08.380 2015.10.01 00:00 MoneyRobotics_Proboi! Test gestartet
Das ist der Anfang des Protokolls. Der Test wurde gestartet, der Expert Advisor funktionierte, Deinit wurde gestartet und das Fraktal wurde an 6 Positionen gefunden.
https://charts.mql5.com/9/256/eurusd-h1-alpari-limited-3.png
Bildwiederholung.
der 6. Takt soll ein Fraktal enthalten.
2015.11.01 13:19:11.023 2015.10.30 22:54 MoneyRobotics_Proboi! EURUSD,H1: x = 29 fractal Up: 1.098552015.11.01 13:19:11.023 2015.10.30 22:54 MoneyRobotics_Proboi! EURUSD,H1: x = 21 fractal Up: 1.09976
2015.11.01 13:19:11.023 2015.10.30 22:54 MoneyRobotics_Proboi! EURUSD,H1: x = 16 fraktal Down: 1.09652
2015.11.01 13:19:11.023 2015.10.30 22:54 MoneyRobotics_Proboi! EURUSD,H1: x = 6 fractal Up: 1.10721
2015.11.01 13:19:10.577 2015.10.30 22:54 MoneyRobotics_Proboi! EURUSD,H1: Deinit Funktion
2015.11.01 13:19:08.380 2015.10.01 00:00 MoneyRobotics_Proboi! Test gestartet
Dies ist der Anfang des Protokolls. Zu Beginn des Tests hat der Expert Advisor gearbeitet, Deinit startet, und gleich an der 6. Stelle findet er ein Fraktal.
https://charts.mql5.com/9/256/eurusd-h1-alpari-limited-3.png
Ich weiß nicht, wie ich den Indikatorpuffer ansprechen soll.
Diese hier:
tun
prevtime = Time[0];
ganz zum Schluss
Dies:
tun
ganz am Ende.
Wie kann sich das auswirken? Leider hat sich nichts geändert.
wie ich mir den Prozess vorstelle: der Indikator wird geladen, fängt an, jede Tick/Bar-Bedingung zu prüfen, wenn die Bedingung erfüllt ist, legt den Wert in den ausgewählten Puffer oder Puffer, dann ruft der EA den Indikator durch die Puffer-Nummer auf den Wert an einem bestimmten Offset und nimmt den Wert. Oder?
Wie kann sich das auswirken? Leider hat sich nichts geändert.
Wie stelle ich mir den Prozess vor: der Indikator wird geladen, beginnt die Bedingung jeden Tick/Balken zu prüfen, wenn sie erfüllt ist, legt den Wert in den ausgewählten Puffer oder Puffer, dann ruft der EA den Indikator durch die Puffer-Nummer auf den Wert an einem bestimmten Offset und nimmt den Wert. Oder?
Warum gibt es eine neue Balkensteuerung im Indikator? Offenbar gibt es keine komplizierten Berechnungen