Guten Tag!
Warum haben Sie die Frage "Verarbeitung der Returncodes des Handelsservers" nicht berücksichtigt?
Das ist viel WICHTIGER als alles, was in Ihrem Artikel steht.
Guten Tag!
Warum haben Sie die Frage "Verarbeitung der Returncodes des Handelsservers" nicht berücksichtigt?
Das ist viel WICHTIGER als alles in Ihrem Artikel.
Lesen Sie zunächst den gesamten Artikel. Wenn Sie ihn nicht verstehen, lesen Sie ihn wieder und wieder, bis Sie ihn ganz verstehen. Erst dann werden Sie erkennen, dass Ihre Nachricht nichts mit dem Thema des Artikels zu tun hat.
Der Artikel hätte nicht"Fehlerbehandlung und Logging im MT5" heißen müssen,
sondern "Bearbeitung von EIGENEN Fehlern und Protokollierung im MT5"!
Guten Tag!
Warum haben Sie die Frage "Verarbeitung der Returncodes des Handelsservers" nicht berücksichtigt?
Sie ist viel WICHTIGER als alles in Ihrem Artikel.
Mikhail, warum schreibst du nicht einfach einen solchen Artikel? Das ist ein vorgefertigtes Thema! :)
Ich denke nicht, dass dieses Thema wichtiger ist als alles andere in diesem Artikel. Wenn du so denkst - nun, dann mach es einfach, warum schimpfst du mit mir, weil ich es nicht tue?
In der Tat habe ich nicht versucht, diesen Punkt im Detail zu betrachten, weil ich allgemeinere Themen ansprechen wollte. So könnten wir zu einer detaillierten Betrachtung von Fehlercodes kommen, die von Standard-Sprachfunktionen zurückgegeben werden. Zum Beispiel, als ein anderes Thema des Artikels - "Behandlung von Fehlern, die bei der Arbeit mit grafischen Objekten in MQL5 auftreten".
Mein Ziel war nicht das gleiche. Aber ja, einen Monat nachdem ich den Artikel geschrieben habe, sehe ich, dass er "so-so" ausgefallen ist. Nun, ich werde versuchen, es in Zukunft besser zu machen.
Warum schreibst du nicht einfach einen Artikel wie diesen? Das ist ein vorgefertigtes Thema! :)
Eigentlich wollte ich diesen Punkt nicht im Detail besprechen, weil ich allgemeinere Themen ansprechen wollte. So können wir eine detaillierte Betrachtung der von den Standard-Sprachfunktionen zurückgegebenen Fehlercodes vornehmen. Zum Beispiel, als ein anderes Thema des Artikels - "Behandlung von Fehlern, die bei der Arbeit mit grafischen Objekten in MQL5 auftreten".
Mein Ziel war nicht das gleiche. Aber ja, einen Monat nachdem ich den Artikel geschrieben habe, sehe ich, dass er "so-so" ausgefallen ist. Nun, ich werde versuchen, es in Zukunft besser zu machen.
Sergej!
Es ist in Ordnung, aber ich würde den Artikel so nennen
"Erweiterte Methoden zum Debuggen von Expert Advisors in MT5 mit Logging".
Denn wenn der Expert Advisor debuggt ist, gibt es keine Fehler mehr,
aber die Return Codes des Trade Servers können voller Fehler sein,
die nur im normalen Modus des Expert Advisors verarbeitet werden müssen.
Sergej!
Alles ist gut, aber ich würde den Artikel als
"Erweiterte Methoden zum Debuggen von Expert Advisors in MT5 mit Logging".
Aber Fehlerbehandlung ist kein Debugging :)
Oder wollen Sie sagen, dass z.B. die Bearbeitung des Fehlers "unzureichende Mittel" (der im Artikel als Beispiel genannt wird) Debugging ist?
Aber Fehlerbehandlung ist keine Fehlersuche :)
Oder wollen Sie sagen, dass z. B. die Bearbeitung des Fehlers "unzureichende Deckung" (das im Artikel erwähnte Beispiel) eine Fehlersuche ist?
"Unzureichende Deckung" ist kein Fehler, sondern eine Meldung an Sie (an den Experten über den Zustand Ihres Kontos) und
dies ist eine standardmäßig behandelte Situation. Und ein normaler Entwickler MUSS, bevor er eine Transaktion durchführt oder eine Bestellung aufgibt.
um die Verfügbarkeit von Geldmittelnzu überprüfen.
//+------------------------------------------------------------------+ //| Expertenfunktion Geld prüfen| //+------------------------------------------------------------------+ bool CheckMoney( const long volume ) { double a_go = SymbolInfoDouble( _Symbol, SYMBOL_MARGIN_INITIAL ) * double(volume); double free_margin = ( AccountInfoDouble( ACCOUNT_FREEMARGIN ) / 100 ) * 90; //--- if ( a_go <= free_margin ) { return( true ); } Print( "Scheckgeld: Nicht genügend Mittel!" ); return( false ); }
"Unzureichende Mittel" ist kein Fehler, sondern eine Nachricht an Sie (an den Expert Advisor über den Zustand Ihres Kontos) und
dies ist eine STANDARD-verarbeitete Situation.
Aber es ist auch kein Moment der Fehlersuche. Nennen Sie es, wie Sie wollen, aber es muss verarbeitet werden (und wie ich es sehe, sind wir uns darüber einig). Meines Erachtens handelt es sich um eine fehlerhafte Situation im Vergleich zum normalen Verlauf der Dinge. Der Sachverständige kann ja davon ausgehen, dass die Mittel ausreichen. Und wenn es nicht in irgendeiner Weise geprüft und bearbeitet wird, wird es sich als nichts herausstellen.
So wie zum Beispiel der Fehler, eine Datei zu öffnen, weil sie nicht vorhanden ist - einerseits ist es eine Standardsituation, die es zu bewältigen gilt, andererseits ist es ein Fehler, davon auszugehen, dass die Datei vorhanden ist und wir mit ihr arbeiten können.
Und noch einmal: In diesem Artikel habe ich versucht, Fragen der Fehlerbehandlung im Programmablauf und nicht Fragen der Software-Fehlersuche zu behandeln. Das ist ein ganz anderes Thema und hat mit dem Artikel nur im Rahmen der Protokollierung zu tun (und das auch nur teilweise).
Und es war nicht mein Ziel, spezifische Fehler zu betrachten (seien es die Rückgabewerte des Handelsservers oder, wie ich oben sagte, zum Beispiel mögliche Fehler bei der Arbeit mit grafischen Objekten). Es ging mir nur um allgemeine Methoden, die auf Fehler (oder Standardsituationen, wenn Sie so wollen) anwendbar sind, die auch vom Handelsserver zurückgegeben werden.
Es tut mir leid, wenn meine Botschaft unklar blieb. Hoffentlich ist jetzt alles klar.
dies ist eine Situation, die STANDARDmäßig gehandhabt wird. Und ein normaler Entwickler MUSS, bevor er eine Transaktion durchführt oder eine Bestellung aufgibt.
oder eine Bestellung aufgeben, um die Verfügbarkeit der Mittel zu überprüfen.
Leider muss ich fragen: Haben Sie den Artikel gelesen oder haben Sie ihn nur überflogen und dann geurteilt? Ich habe in dem Artikel über die Vorabprüfungen gesprochen (ich bereue, dass ich nicht ausdrücklich von der Überprüfung der Geldmittel gesprochen habe, aber ich dachte, das sei klar). Und es ist keine schlechte Idee, einen möglichen Fehler "unzureichende Mittel" auch nach dem Versuch, einen Handel zu eröffnen, zu behandeln, auch wenn wir diese Überprüfung vorher gemacht haben. In der Zeit zwischen der "vorherigen" Prüfung und dem unmittelbaren Eröffnungsversuch kann alles Mögliche passieren.
Leider muss ich Sie fragen: Haben Sie den Artikel gelesen, oder haben Sie ihn nur überflogen und dann geurteilt? Ich sprach über vorläufige Prüfungen in dem Artikel (Ich bereue, ich habe nicht speziell über die Überprüfung der Mittel sprechen, aber ich dachte, es war klar). Und eine mögliche Fehlermeldung "unzureichende Mittel" zu behandeln, nachdem man versucht hat, einen Handel zu eröffnen, ist nicht die schlechteste Idee, selbst wenn wir diese Prüfung vorher durchgeführt haben. In der Zeit zwischen der "vorherigen" Prüfung und dem unmittelbaren Eröffnungsversuch kann alles Mögliche passieren.
Sergej!
So lauten die Rückgabecodes des Handelsservers für solche Situationen.
Beispiel: Sie haben die Verfügbarkeit von freien Mitteln geprüft und ein positives Ergebnis erhalten.
Sie senden eine Order, aber sie wurde nicht angenommen (wie Sie sagten: "Was kann schon passieren"),
Der Handelsserver meldet Ihnen also den Fehler "Unzureichende Mittel" im Rückgabecode.
Und es stellt sich heraus, dass es absolut "keinen Unterschied" macht, wie oft Sie auf den Fehler prüfen.
zwischen Ihrem Scheck (CheckMoney) und dem Rückgabecode des Handelsservers!
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Neuer Artikel Die Fehlerverarbeitung und Protokollierung in MQL5 :
In diesem Artikel werden die meisten Fragen bezüglich der Fehlerverarbeitung im Programm betrachtet. Außerdem betrachten wir Protokollierung und werden ein Beispiel der Log-Realisierung mit MQL5 darstellen.
Während der Arbeit können in den meisten Programmen von Zeit zu Zeit Fehler auftreten. Sie angemessen zu verarbeiten - ist einer der wichtigsten Aspekte der Qualitätsvolle- und Nachhaltigen-Software. In diesem Artikel werden die wichtigsten Methoden der Fehlerverarbeitung betrachtet, werden Ratschläge über ihre Verwendung gegeben, und wird auch die Protokollierung MQL5 betrachtet.
Die Fehlerverarbeitung ist ein schwieriges und umstrittenes Thema. Es gibt viele Arten für die Fehlerverarbeitung, und jede von denen besitzt bestimmte Vor- und Nachteile. Viele dieser Methoden erlauben die gemeinsame Verwendung, aber es gibt kein allgemeines Rezept - für jede spezifische Aufgabe sollte ein angemessener Ansatz gewählt werden.
Autor: Sergey Eremin