Fehler, Irrtümer, Fragen - Seite 2458
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
Beim Wechsel von MQL4 zu MQL5 bin ich auf eine Panne gestoßen:
Code:
ResetLastError();
int ObjTotal = ObjectsTotal(0);
int Error = GetLastError();
zurück:
ObjTotal = 0.
Fehler = 4022
Was ist dieser Fehler und warum wird er nicht in der Dokumentation erwähnt?
Ich habe verschiedene Varianten ausprobiert: ObjectsTotal(0, -1, -1), ObjectsTotal(ChartID(), 0, OBJ_TREND), usw.
Das Ergebnis ist das gleiche.
Wie kann das funktionieren?
Hinweis: Wenn Sie eine Frage stellen wollen, geben Sie den VOLLEN Code ein, nicht nur einen Teil davon.
Was nützt das: Jeder kann Ihren Code übernehmen und ihn selbst ausführen. Und fast niemand schaut sich klobigen Code an - klobiger Code ist respektlos.
Beispiel für Ihren Code:
Führen Sie es in einem Diagramm aus, das keine grafischen Objekte enthält. Ergebnis:
Das heißt, es liegt kein Fehler vor.
Verwendung des Terminals:
Ein Ratschlag: Wenn Sie etwas fragen wollen, geben Sie den VOLLEN Code ein, nicht nur einen Teil.
Danke für den Rat, das werde ich tun.
Die Frage bleibt jedoch offen.
Zur Verdeutlichung: Wenn das Codestück aus dem vorherigen Beitrag in der OnDeinit()-Funktion des Indikators enthalten ist, sieht das Ergebnis so aus:
2019.05.10 14:08:20.105 PtS (EURUSD,H1) ObjectsTotal: 0, GetLastError: 4022
Wenn Sie den gleichen Code ausführen, nachdem Sie den Indikator aus dem Diagramm entfernt haben, wie das Skript (1.mq5 aus dem vorherigen Beitrag), erhalten wir
2019.05.10 14:08:33.609 1 (EURUSD,H1) ObjectsTotal: 8575, GetLastError: 0
Bitte helfen Sie mir, den Grund zu verstehen.
Fehler im Strategietester während der Optimierung.
"Aufgabe vom Prüfer abgelehnt "
Zum Beispiel, wenn Ihre Kontowährung EUR ist,
Wenn Ihre Kontowährung USD ist
erscheint, wenn andere Währungspaare im Code verwendet werden.
In meinem Beispiel wird die Berechnung des dynamischen Loses verwendet
d.h. wenn der EA den Preis einer anderen Währung anfordert.
@Vladislav Andruschenko
Hallo, haben Sie eine Antwort oder eine Lösung für dieses Problem erhalten?
Wenn der Zeitplan/Zeitraum geändert wird, erhält PBB den Wert 10, unabhängig davon, welchen Wert Sie im Eingabefeld angegeben haben.
Im Moment der Neuinitialisierung ist es so, als wäre es der erste Lauf.
Es gibt zwei Möglichkeiten, Ihr Problem zu lösen
1 - Speichern des PBB-Wertes in globalen Variablen und Abrufen des Zeitraums von dort.
2 - Wenn OnChartEvent auslöst, reinitialisieren Sie den MA-Indikator und erhalten ein neues Handle...
Alle Optionen wurden geprüft. Das funktioniert nicht.
Fehler in MQL5.
Es werden keine neuen Werte initialisiert. Nur bei Parametereingabe int PBB_=. Keine anderen Optionen. Das ist ganz und gar nicht gut.
Ich habe alle Optionen geprüft. Funktioniert nicht.
Fehler im MQL5-Programm.
Neue Werte werden nicht initialisiert. Nur bei Eingabe des Parameters int PBB_=. Keine anderen Optionen. Das ist ganz und gar nicht gut.
In MQL ist alles in Ordnung, Sie verstehen nur nicht, was Sie in Ihrem Code tun und wie alles funktioniert...
Noch einmal: Wenn SieChartSetSymbolPeriod(0,_Symbol,_Period) aufrufen;
Sie setzen alles auf die Standardeinstellungen zurück...
Alternativ dazu können Sie mit inite einen Wert aus Ihrem Textfeld abfragen.
Wenn Sie den Indikator zum ersten Mal starten, wird alles erstellt, und wenn Sie die Daten im Feld ändern, wird ein neuer Aufruf gestartet und der Wert aus Ihrem Textfeld gesetzt...
In MQL ist alles in Ordnung, Sie verstehen nur nicht, was Sie im Code tun und wie alles funktioniert...
Noch einmal: Wenn SieChartSetSymbolPeriod(0,_Symbol,_Period) aufrufen;
Sie setzen alles auf die Standardeinstellungen zurück...
Alternativ dazu können Sie mit inite einen Wert aus Ihrem Textfeld abfragen.
Nach der Logik, dem ersten Start des Indikators, wird alles erstellt, aber wenn Sie Daten im Feld ändern, gibt es einen neuen Aufruf in der Einheit und Werteinstellung aus Ihrem Textfeld...
Ich habe es mit dem Textfeld und über GlobalVariable versucht, aber ich habe noch nie etwas ausprobiert. Es ist so leise wie in einem Panzer.
In einer anderen Variante funktioniertOnCalculate ohne Probleme.
Ich habe es sowohl über ein Textfeld als auch über GlobalVariable und alles andere versucht. Es ist so leise wie ein Panzer.
Die andere Version von OnCalculate funktioniert ohne Probleme.
Das bedeutet, dass Sie etwas falsch machen
Dann machen Sie etwas falsch.
Sie haben den Code bereits veröffentlicht.
Wenn ich ungeschickt bin, muss jemand ein Profi sein. Ich sehe es noch nicht.
Ich akzeptiere Ihre Bemühungen, eine Antwort zu finden. Das ist noch nicht alles. Das heißt, auf der Ebene der Entwickler.