Quellcode
MQL5-Array außerhalb des gültigen Bereichs: Finden Sie den ersten ungültigen Index
Ein Array-Index muss auf ein tatsächlich vorhandenes Element verweisen. Eine erfolgreiche Kompilierung beweist nicht, dass jede Laufzeitschleife einen gültigen Index verwendet. Beginnen Sie bei der ersten gemeldeten Zeile, anstatt alle Schleifen auf einmal zu patchen.
Schreiben Sie die Grenzen auf
Für ein eindimensionales Array mit fünf Elementen sind die gültigen nullbasierten Indizes null bis vier. Eine Schleife, die Index fünf enthält, geht zu weit. Lassen Sie beim Lesen von i+1 Platz für dieses zusätzliche Element.
Überprüfen Sie die Daten, die Sie erhalten haben
Wenn Sie viele Preiskerzen angefordert, aber weniger erhalten haben, ist die angeforderte Anzahl keine sichere Schleifengrenze. Protokollieren Sie die kopierte Anzahl, die Array-Länge und den fehlerhaften Index. Entscheiden Sie, was der EA tun soll, wenn der Verlauf noch nicht bereit ist.
Reproduzieren Sie einen kleinen Fall
Probieren Sie die ersten Preiskerzen, ein leeres Ergebnis und den minimalen Lookback aus. In diesen Fällen wird ein Grenzfehler häufig schneller sichtbar als bei einem weiteren ganzjährigen Durchlauf. Behalten Sie die fehlerhafte Eingabe bei, damit die Korrektur erneut überprüft werden kann.
Halten Sie den Fix eng
Unterdrücken Sie die Botschaft nicht und fahren Sie mit erfundenen Preisen fort. Eine nützliche Lösung legt gültige Grenzen fest oder wartet auf gültige Daten. Die bearbeitbare Quelle ermöglicht diese kleinen, gezielten Verbesserungen, ohne die gesamte Strategie zu ändern.
Referenz und weiterführende Literatur
Beginnen Sie mit einem kostenlos bearbeitbaren EA-Projekt·Entdecken Sie den MQLume-Quellcode
Zurück nach oben