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
Hallo, meine Herren Entwickler!
Können wir Änderungen im MQL5-Compiler vornehmen, um zumindest eine Warnung zu erhalten?
für Fehler dieser Art im Code.
if(Flag_Exitl=true) {break;}
Die Vergleichsbedingung ist hier nicht korrekt (sie sollte == sein), weshalb es immer zu einem Bruch kommen wird.
Wie lässt sich diese Situation im Compiler beheben (falls das überhaupt möglich ist), damit ich beim Schreiben von Code weniger holprig vorankomme?
(Ich habe gedacht, dass es nicht funktionieren wird, es scheint, dass wir die Zuordnung und den Vergleich in if trennen sollten, damit die Frage entfernt wird).
Variablen vom Typ bool können nicht mit true/false verglichen werden, sondern direkt verwendet werden (im Wesentlichen handelt es sich um ein Ja/Nein-Flag)
Ich erhalte regelmäßig den Fehler 4401
ERR_HISTORY_NOT_FOUND
Der folgende Indikatorcode
gibt gleich nach dem Start einen Fehler aus (wenn nicht auf D1). Oder besser gesagt, wenn Sie das Terminal starten und den Chart öffnen, um den Indikator zu aktivieren, erhalten Sie eine Fehlermeldung. Wenn das Terminal nicht geschlossen ist, tritt ein solcher Fehler beim Start nicht auf.
Aber nach einiger Zeit (ein paar Stunden - 2 Stunden waren genug für mich) werden wir sehen, dass wir den Fehler auf dem bereits geöffneten Diagramm erhalten werden. (Ich habe es auf m30 laufen lassen)
...erscheint regelmäßig der Fehler 4401.
Hinweis:
Organisation des Datenzugriffs
Zugänglichkeit der Daten
Die Verfügbarkeit von Daten im HCC-Format oder sogar im gebrauchsfertigen HC-Format bedeutet nicht immer die uneingeschränkte Verfügbarkeit dieser Daten für die Anzeige auf einer Karte oder für die Verwendung in mql5-Programmen.
Beim Zugriff auf Kursdaten oder Indikatorwerte aus mql5-Programmen sollte man bedenken, dass nicht garantiert ist, dass sie zu einem bestimmten Zeitpunkt oder ab einem bestimmten Zeitpunkt verfügbar sind. Dies hat damit zu tun, dass MetaTrader 5 nicht die vollständige Kopie der benötigten Daten für das mql5-Programm speichert, sondern einen direkten Zugriff auf die Terminal-Datenbank ermöglicht, um Ressourcen zu sparen.
Die Kurshistorie für alle Zeitrahmen wird aus den gemeinsamen Daten im HCC-Format erstellt und jede Aktualisierung des Servers führt zur Aktualisierung der Daten für alle Zeitrahmen und zur Neuberechnung der Indikatoren. Daher kann der Zugang zu den Daten verweigert werden, auch wenn die Daten gerade eben noch verfügbar waren.
CopyRate
Wenn Daten vom Indikator angefordert werden und die angeforderten Zeitreihen noch nicht erstellt wurden oder vom Server heruntergeladen werden müssen, gibt die Funktion sofort -1 zurück, aber der Prozess des Herunterladens/Erstellens wird eingeleitet.Merkblatt:
Sieht so aus, wie es sein sollte. Bis zu CopyRate SERIES_SYNCRONIZED können Sie überprüfen...Ich streue nur Asche auf mein Haupt, ja. Ich danke Ihnen.
Obwohl es seltsam ist, die Anforderung für zwei Takte und Geschichte nicht verfügbar, obwohl nur Null bar Änderungen zu sehen. Aber keine Sorge - wenn es in der Dokumentation beschrieben ist, ist es kein Fehler.
in meinem IsNewBar kam ein Fehler heraus.
Anstelle von
Ich hätte schreiben sollen
Und ich habe mich gefragt, warum alle paar Stunden IsNewBar(PERIOD_D1) == true ist -> daher habe ich die Unzugänglichkeit der Historie herausgefunden, aber ich konnte mich nicht an eine Funktion erinnern, die ich vor ein oder zwei Jahren geschrieben habe.
Warum der Indikator keine Farbtypen (COLOR_ARROW, etc.) mit mehr als einem Puffer verarbeiten kann
Code-Beispiel
Wir setzen zwei DRAW_COLOR_ARROW (buf1 und buf2) und für jeden einen zusätzlichen Farbpuffer (clr1, clr2)
Gleichzeitig erhält der zweite Puffer buf2 zwar High/Low-Balken, diese werden aber nicht im Diagramm angezeigt. Es scheint, dass die Farbe der Pfeile in diesem Puffer = clrNONE ist. Das heißt, die Farbeinstellung im clr2-Puffer funktioniert nicht.
hier ist ein bildschirmfoto. nur die werte von buf1/clr1 sind sichtbar. die werte des zweiten puffers werden nicht farblich dargestellt, obwohl werte empfangen werden.
Wo liegt der Fehler?
Die Frage wurde einfach erstellt, um "in MQL5 DNA" zu beantworten.
Solcher Unsinn auch bei DRAW_FILLING und sogar bei relativ normalem DRAW_HISTOGRAM2 (natürlich nicht so stabil, aber Fehler kommen vor).
Allein aus der Instabilität der Fehler schließe ich, dass Sie ohne eine CD wahrscheinlich keine Antwort erhalten werden.
Bild 642 für Win32
Ein Problem mit dreidimensionalen Double-Arrays tritt auf, wenn Sie bei der Ausgabe mit der Print-Funktion versehentlich die Array-Grenzen überschreiten
Das Skript geht von selbst in eine Endlosschleife über.
Bild 642 für Win32
ein Problem mit dreidimensionalen Arrays, das doppelt auftritt, wenn man bei der Ausgabe mit der Print-Funktion versehentlich aus dem Array herausgeht
Tatsächlich tritt die Überschreitung zwei Zeilen früher auf
und du rufst einen Exponenten von einem nicht existierenden Element auf, höchstwahrscheinlich Null.
Schauen Sie in das Protokoll
In der Regel tritt die Grenzwertüberschreitung zwei Zeilen früher auf
und du rufst einen Exponenten von einem nicht existierenden Element auf, höchstwahrscheinlich Null.
im Logbuch nachsehen