Wie erhält man "Fehler"-Informationen aus dem Journal? - Seite 3

 
ydrol:

Ich hoffe, ich sage nicht das Offensichtliche, und entschuldige mich, wenn ich es tue!

Ich vermute, dass alle, die mir geantwortet haben, davon ausgegangen sind, dass Sie es wissen, aber das MT-Journal ist einfach eine Reihe von Dateien, deren letzte Zeilen in der grafischen Benutzeroberfläche angezeigt werden.

Die Dateien (für Backtests) befinden sich im MetaTrader-Installationsordner/tester/logs

Sie können sie mit allen Ihnen zur Verfügung stehenden Tools durchsuchen - z.B. mit dem Dos-Befehl Findstr, um die Dateien zu extrahieren...

cd MetaTrader Folder/tester/logs

Findstr some_text *.log

Findstr some_text *.log > small_log.txt


Nochmals: Bitte entschuldigen Sie, wenn ich das Offensichtliche ausspreche und Sie eigentlich etwas anderes suchen!?


In meiner ersten Antwort fragte ich: "Das Journal enthält vielleicht nicht alle Informationen, aber die Protokolldateien werden nicht gelöscht, oder?"

Ich bin also davon ausgegangen, dass er das Protokoll tatsächlich geöffnet hat.

Möglicherweise war das eine falsche Annahme, und er versucht, das Journal zu überprüfen, nicht das Protokoll.

Wenn er es nicht weiß, können Sie auf das Protokoll zugreifen, indem Sie mit der rechten Maustaste in das Journalfenster klicken und auf "Öffnen" klicken. Dann kann die letzte Protokolldatei oder was auch immer geöffnet werden.

 
Proximus:

+10.000 Zeilen sind nicht genug, ich bin nicht sicher, wie viele von ihnen der MT4 speichert, aber ich bin sicher, dass es nicht genug für mich ist. Ich mache normalerweise heutzutage Backtests mit 5000-7000 Trades oder mehr, 1 Zeile für Orderopen, 3-4 Zeilen für Trailstops, Ordermodify und 1 Zeile für Orderclose =das sind 6 Zeilen/Trade * 7000 Trades =das sind ~42000 Zeilen oder Modus und ich bin sicher, dass das MT4 Journal nicht so viele Zeilen speichert :)

Die Logdatei . . nicht nur das, was im Journal angezeigt wird, wird GBs enthalten, wenn es das ist, was Sie wollen ... Sie scheinen mehr daran interessiert zu sein, die Fehler zu zählen, anstatt sie zu finden und zu beheben, wenn das alles ist, was Sie tun wollen, dann codieren Sie einfach einen Zähler für jede Fehlernummer und erhöhen Sie die Anzahl ... wie das hilft, weiß ich nicht, aber Sie scheinen ziemlich hartnäckig zu sein, also überlasse ich es Ihnen, damit weiterzumachen.
 

Kein Problem, ich habe auf OP geantwortet. Sie können einfach Tools verwenden, um die Protokolldateien zu analysieren? Unter Linux liefert grep "some text" *.log | wc -l eine schnelle Zählung der Treffer, aber ich konnte nicht schnell ein eingebautes Windows-Äquivalent finden (ich verbringe hier zu viel Zeit :) ),

Jetzt denke ich daran, ich vermute, Powershell hat etwas...

 
Ovo:

Sie brauchen sich nicht zu entschuldigen, aber ich habe verstanden, dass OP nicht daran interessiert war, Fehler zu finden und zu beheben, sondern eher an deren Statistik.
Eigentlich beides.Ich möchte zuerst die Arten von Fehlern wissen, die auftreten, weil ich nicht sicher in meinem Code und ziemlich skeptisch bin, also möchte ich alle Fehler in meinem EA ausschließen.Nachdem ich einige Daten über sie habe, wird es einfacher sein, sie zu korrigieren und sie in Zukunft zu vermeiden.
ydrol:

Kein Problem, ich habe auf OP geantwortet. Sie können einfach Tools verwenden, um die Logdateien zu analysieren? Wenn auf Linux, grep "some text" *.log | wc -l bekommt eine schnelle Zählung der Treffer, aber ich konnte nicht schnell ein eingebautes Windows-Äquivalent finden (verbringt zu viel Zeit hier :) ),

Jetzt, wo ich daran denke, vermute ich, dass Powershell etwas hat.

Ein guter Programmierer muss zuerst den optimalen Weg finden, also müssen wir innerhalb des Codes suchen, wenn es noch möglich ist, also im Journal, weil das Log in meinem Fall zu groß ist.Wenn ich die Suchfunktion im Notizblock benutzen würde, würde ich Jahre brauchen, um alle Fehler und ihre spezifischen Details zu finden.

Auch i`ve vergessen zu erwähnen, in der ersten post, dass ich brauche, um zu sehen, die benachbarten Zeilen in der journal too.Because ich habe einige "Print() "s, die einige Schlüsseldaten wie Indikatoren aktuellen Wert, SL, TP drucken wird und es wird zeigen, es schön in der journal/log, aber ich muss sehen, den Fehler auch im Zusammenhang mit, dass Daten, so zum Beispiel, wenn ich fangen ein SL mit Wert 0, dann werde ich wissen, dass der Fehler ist wegen, dass.

So nach einer großen Suche und dem Eintauchen in die mql4 Sprache habe ich dies gefunden:

GetLastError();

Ich denke, die Lösung, die ich brauche, liegt in dieser Funktion.ich habe die Dokumentation dazu gelesen, und sie ist ziemlich kurz.kann mir jemand helfen, sie zu benutzen oder sie genauer zu erklären?

 
Proximus:

So nach einem großen der Suche und Tauchen in die mql4 Sprache habe ich dies gefunden:

Ich denke, die Lösung, die ich brauche, liegt in dieser Funktion.ich habe die Dokumentation dazu gelesen, und es ist ziemlich kurz.kann mir jemand helfen, es zu benutzen oder es genauer zu erklären?

 
Nun, ich denke, wir sind alle davon ausgegangen, dass Sie nach Ausdrucken von GetLastError() gesucht haben;
 
GumRai:
Nun, ich denke, dass wir wahrscheinlich alle davon ausgegangen sind, dass Sie nach Ausdrucken von GetLastError() gesucht haben;
Ja, aber ich muss einen Tester bauen, der die Fehler testet und sie nach Typ gruppiert und sie zählt, wenn es möglich ist. kann jemand genauer erklären, wie ich diese Funktion in fortgeschrittener Codierung verwenden kann?
 
Proximus:
Ja, aber ich muss einen Tester bauen, der die Fehler testet und sie nach Typ gruppiert und zählt, wenn es möglich ist. kann jemand genauer erklären, wie ich diese Funktion in fortgeschrittener Programmierung verwenden kann?

Was sind Funktionsrückgabewerte? Wie kann ich sie verwenden?

Wie kontrolliere ich die Debugging-Ausgabe in das Protokoll?

 
Proximus:

Ich glaube, ihr steht total auf diese Dateisuche, wenn ich euch sage, dass das nicht nötig ist, ist das auch eine Lösung, aber das ist der "harte Weg" Ein guter Programmierer muss zuerst den optimalen Weg finden


Ein guter Programmierer benutzt die richtigen Werkzeuge für seine Arbeit. Das Protokoll ist eine Textdatei. Es gibt eine Unmenge von Werkzeugen, um die Textdatei zu durchsuchen, Zeilen zu zählen und Kontext-/Nachbarschaftszeilen anzuzeigen, wenn Sie wollen. Diese Tools gibt es schon seit Jahren. Ich wette, einige haben sogar eine Point-n-Click-GUI, die Ihnen gefallen würde.

Ein guter Programmierer würde auch nicht etwas programmieren, wenn er es nicht muss (es sei denn aus Neugierde).

Erst erzählen Sie den Programmierern, wie einfach Ihr Trendline-Code ist, obwohl Ihnen die Informationen fehlen, und jetzt tun Sie den einfachsten Weg, Textdateien zu durchsuchen, als den "harten Weg" ab?

Viel Glück damit!

 

Danke für die Informationen, das sieht interessant aus.


ydrol:

Ein guter Programmierer benutzt die richtigen Werkzeuge für seine Arbeit. Das Protokoll ist eine Textdatei. Es gibt eine Unmenge von Werkzeugen, um die Textdatei zu durchsuchen, Zeilen zu zählen und Kontext-/Nachbarschaftszeilen anzuzeigen, wenn Sie wollen. Diese Tools gibt es schon seit Jahren. Ich wette, einige haben sogar eine Point-n-Click-GUI, die Ihnen gefallen würde.

Ein guter Programmierer würde nicht etwas programmieren, wenn er es nicht muss (es sei denn aus Neugierde).

Erst erzählen Sie Programmierern, wie einfach Ihr Trendline-Code trotz fehlender Informationen ist, jetzt tun Sie den einfachsten Weg, Textdateien zu durchsuchen, als den harten Weg ab?

Viel Glück damit!


Sie haben einige interessante Punkte.ok vielleicht ist es nicht so einfach, aber es ist bequem und weckt die Neugier.und auch ich mag es, Sachen zu programmieren, es ist wegen der Faulheit, es ist besser, wenn ein Bot die harte Arbeit macht.das ist ihr Zweck es ersetzt die menschliche Arbeit.