Fehler, Irrtümer, Fragen - Seite 2759
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
UPD:
Danke für die Kritik, bin zum ursprünglichen Projekt zurückgegangen und habe das Problem hervorgehoben, das ohne Überoptimierung des Codes aufgetreten ist:
Fehler im MT5-Debugger (Build 2450), der manuell gesetzte Haltepunkte falsch auslöst:
Können Sie mir bitte erklären, warum Sie sich all diese Mühe machen müssen?
Verwenden Sie den Debugger?Können Sie uns bitte erklären, warum wir uns auf diese Weise verdrehen müssen?
Verwenden Sie Debugging?Der Code zeigt eine BAG an, bei der die Bedingung nicht eingegeben werden kann, aber der Haltepunkt wird trotzdem an einer völlig anderen Stelle im Code ausgelöst.
Noch Fragen?
Ich habe die folgende Nachricht an den Discovery Support geschrieben.
Teste den Roboter an einer Geschichte. Ich habe einige seltsame Ergebnisse erhalten. Der untere Teil der Tabelle ist auf dem Bildschirmfoto zu sehen. Wenn man bedenkt, dass ich mit 100.000 Rubel handle, erscheint der negative Saldo von -6049 mit 17% Drawdown unglaublich. Wenn ichdas Diagramm öffneund diesen Parametersatzteste, erhalte ich in der Tat einen positiven Saldo bei dem angegebenen Drawdown. Das Konto ist real 75287 (wie auf dem Foto zu sehen). Was könnte der Grund für ein solches Verhalten des Programms sein?
Ich kann auch hinzufügen, dass sich alle Parametersätze auf diese Weise verhalten.
Ich habe die Antwort:
Leider fallen solche Fragen nicht in den Bereich des technischen Supports.
Bitte wenden Sie sich an die Entwickler des Terminals.
Was könnte der Grund dafür sein?
Der Code zeigt eine BAG, in der eine Bedingung nicht eingegeben werden kann, löst aber dennoch einen Haltepunkt an einer völlig anderen Stelle im Code aus.
Noch Fragen?
Mir scheint alles richtig zu sein. Das Programm ignoriert if(false) und löst an der Stelle aus, die ihm nach dem Code am nächsten liegt.)
Ich habe den Eindruck, dass alles richtig ist. Das Programm ignoriert if(false) und löst an der nächstgelegenen Stelle im Code aus).
Das ist überhaupt nicht richtig. Wenn ich nur stoppen muss, wenn eine Bedingung erfüllt ist, und der Stopp bei jedem Tick erfolgt, werde ich verrückt, während...
Haben Sie weitere Fragen?
Wie kommen Sie darauf, dass der Compiler den Text der if(false)-Bedingung {....} beim Kompilieren des Projekts nicht weggeworfen hat?
ein Haltepunkt erscheint auf dem ersten ME-Textzeichen des restlichen Codes, da ME keine Strings, Foldings und andere VS-Wunder verschieben kann
ME kann den Code nicht in Echtzeit analysieren, allenfalls sind Autosubstitutionen verfügbar
aber wenn es ein Fehler ist, ist es ein Fehler
Wie kommen Sie darauf, dass der Compiler den Text der if(false)-Bedingung {....} beim Kompilieren des Projekts nicht weggeworfen hat?
der Haltepunkt war am ersten ME-Textzeichen des restlichen Codes, weil ME keine Strings, Foldings und andere VS-Wunder verschieben kann
ME kann den Code nicht in Echtzeit analysieren, allenfalls sind Autosubstitutionen verfügbar
aber wenn es ein Fehler ist, ist es ein Fehler.
Sie müssen es unter normalen Bedingungen testen. Neulich hatte ich folgendes Problem: Wenn ich den Code Schritt für Schritt ausführe
im Debugger, wenn eine explizite Bedingung nicht erfüllt ist, wurden Funktionsaufrufe nicht ausgeführt, aber return; ist. Ich habe beschlossen, dass der Compiler, da nach der geschwungenen Klammer kein weiterer Code folgt und es nur eine weitere geschwungene Klammer gibt, die das void OnTick() beendet, return
Dies sollte in einem normalen Zustand getestet werden.
Ja, das ist es, was ich meine, nicht falsch, sondern so etwas wie:
Normalerweise erkennt der Compiler eine solche Bedingung beim Kompilieren nicht.