Terminal Globals Problem - Seite 2

 

Danke, Deep Thought. Ich werde mir das mal ansehen. Ich habe es schon lange nicht mehr versucht. Ich habe in den späten 70er Jahren mit dem Programmieren begonnen, als es noch keine IDES oder Debugger gab. PC's gab es noch nicht. Wir benutzten Texteditoren, um unsere Programme zu erstellen, und fügten Druckanweisungen zum "Debuggen" ein. Ich benutze Alerts, weil ich sie sehen kann, wenn sie passieren, und ich erhalte automatisch ein Protokoll, das ich mir ansehen kann. Hey, das ist besser, als wir es "früher" hatten :-)

Sie haben Recht, was die verfügbaren Informationen angeht. Sie sind definitiv unzureichend. Die meisten meiner Informationen erhalte ich, indem ich ins Forum komme und Fragen stelle. Ich versuche, nützliche Informationen zu liefern, wenn ich eine Lösung für ein Programmierproblem gefunden habe. Wir sind alle Devs. Wir müssen hier zusammenarbeiten. Es war mir ein Vergnügen, Ihre Bekanntschaft zu machen :-)

 
Hm, siebziger Jahre? Ich habe einen TI-57 mit (ich schätze) 100 Schritten. Zählt das für die Dev-Karriere?
 
Meiner Meinung nach schon. Das Programmieren auf einem programmierbaren Taschenrechner erfordert einiges an geistiger Kraft. Es ist definitiv nicht die einfachste Sache der Welt :-)
 
ProfessorMetal:

Danke, Deep Thought. Ich werde mir das mal ansehen. Ich habe es schon lange nicht mehr versucht. Ich habe in den späten 70er Jahren mit dem Programmieren begonnen, als es noch keine IDES oder Debugger gab. PC's gab es noch nicht. Wir benutzten Texteditoren, um unsere Programme zu erstellen, und fügten Druckanweisungen zum "Debuggen" ein. Ich benutze Alerts, weil ich sie sehen kann, wenn sie passieren, und ich erhalte automatisch ein Protokoll, das ich mir ansehen kann. Hey, das ist besser, als wir es "früher" hatten :-)

Sie haben Recht, was die verfügbaren Informationen angeht. Sie sind definitiv unzureichend. Die meisten meiner Informationen erhalte ich, indem ich ins Forum komme und Fragen stelle. Ich versuche, nützliche Informationen zu liefern, wenn ich eine Lösung für ein Programmierproblem gefunden habe. Wir sind alle Devs. Wir müssen hier zusammenarbeiten. War mir ein Vergnügen, deine Bekanntschaft zu machen :-)

Hallo!

Welche Informationen vermissen Sie über den Debugger ? Hast du in der Hilfedatei von MetaEditor nachgesehen ?

Es gibt einen bekannten Fehler in Build 646, für den ein Fix verfügbar ist.

 

Ja, ich habe in der Hilfedatei nachgesehen. Einige dieser Informationen waren offenbar nicht verfügbar, als ich das tat (das war in Build 600 oder so, wenn ich mich richtig erinnere). Ich kann mich nicht erinnern, zu diesem Zeitpunkt eine Debug-Registerkarte im Dialogfeld Optionen gesehen zu haben. Auch in der Dokumentation habe ich keinen Hinweis darauf gefunden. Offensichtlich war der 646er Fix damals noch nicht verfügbar. Wenn Sie so freundlich wären, mir ein paar Dinge zu erklären. Ich schreibe und speichere meinen Projektcode (und eine Kopie des aktuellen MetaEditor) in einem eigens dafür vorgesehenen Verzeichnis und kopiere die ausführbaren Dateien zum Testen in den richtigen MT4-Installationsordner (nur vorwärts, ich mache keine Rücktests). Es erscheint mir sinnvoll, dass sich das Projekt, das Sie zu debuggen versuchen, im richtigen Ordner Ihrer MT4-Installation befinden muss und dass Sie die MetaEditor-Anwendung von Ihrer laufenden MT4-Anwendung aus verwenden und die mq4- usw. Dateien öffnen müssen, die sich im Installationsordner befinden, sonst weiß der Debugger nicht, was Sie zu debuggen versuchen. Der Indikator, an dem ich arbeite, hat nur eine einzige mq4-Datei, also nehme ich an, dass das die Datei ist, die in MetaEditor geöffnet werden muss. Ist das richtig? Das ist der Ansatz, den ich von Anfang an verfolgte, weil ich davon ausging, dass der Debugger und das laufende MT4 nichts von dem wissen konnten, was ich in meinem separaten Entwicklungsverzeichnis hatte.

Ich werde wahrscheinlich erst Anfang nächster Woche dazu kommen. Ich bin in den USA und war die ganze Nacht auf und habe gearbeitet. Es ist Zeit für mich, "ins Bett zu gehen", wie wir hier in den Staaten sagen. Vielen Dank für Ihre Antwort, und ich werde Ihnen auf jeden Fall mitteilen, was ich erlebe, wenn ich die aktuelle Inkarnation des Debuggers ausprobiere. Wie ich bereits gesagt habe, weiß ich, dass das, was MQ hier tut, nicht trivial ist. Ich bin gerne bereit, Ihnen zu helfen, wo ich nur kann.

Ich wünsche Ihnen ein schönes Wochenende, angevoyageur.

 
ProfessorMetal:

Ja, ich habe in der Hilfedatei nachgesehen. Einige dieser Informationen waren offenbar nicht verfügbar, als ich das tat (das war in Build 600 oder so, wenn ich mich richtig erinnere). Ich kann mich nicht erinnern, zu diesem Zeitpunkt eine Debug-Registerkarte im Dialogfeld Optionen gesehen zu haben. Auch in der Dokumentation habe ich keinen Hinweis darauf gefunden. Offensichtlich war der 646er Fix damals noch nicht verfügbar. Wenn Sie so freundlich wären, mir ein paar Dinge zu erklären. Ich schreibe und speichere meinen Projektcode (und eine Kopie des aktuellen MetaEditor) in einem eigens dafür vorgesehenen Verzeichnis und kopiere die ausführbaren Dateien zum Testen in den richtigen MT4-Installationsordner (nur vorwärts, ich mache keine Rücktests). Es erscheint mir sinnvoll, dass sich das Projekt, das Sie zu debuggen versuchen, im richtigen Ordner Ihrer MT4-Installation befinden muss und dass Sie die MetaEditor-Anwendung von Ihrer laufenden MT4-Anwendung aus verwenden und die mq4- usw. Dateien öffnen müssen, die sich im Installationsordner befinden, sonst weiß der Debugger nicht, was Sie zu debuggen versuchen. Der Indikator, an dem ich arbeite, hat nur eine einzige mq4-Datei, also gehe ich davon aus, dass das die Datei ist, die in MetaEditor geöffnet werden muss. Ist das richtig? Das ist der Ansatz, den ich von Anfang an verfolgte, in der Annahme, dass der Debugger und das laufende MT4 nichts von dem wissen können, was ich in meinem separaten Entwicklungsverzeichnis habe.

Ich werde wahrscheinlich erst Anfang nächster Woche dazu kommen. Ich bin in den USA und war die ganze Nacht auf und habe gearbeitet. Es ist Zeit für mich, "ins Bett zu gehen", wie wir hier in den Staaten sagen. Vielen Dank für Ihre Antwort, und ich werde Ihnen auf jeden Fall mitteilen, was ich erlebe, wenn ich die aktuelle Inkarnation des Debuggers ausprobiere. Wie ich bereits gesagt habe, weiß ich, dass das, was MQ hier tut, nicht trivial ist. Ich bin gerne bereit, Ihnen zu helfen, wo ich nur kann.

Ich wünsche Ihnen ein schönes Wochenende, angevoyageur.

Sie sind herzlich willkommen. Lassen Sie mich wissen, wenn Sie bei der Verwendung des Debuggers auf ein Problem stoßen. Ich werde Ihnen helfen, wenn ich kann, da er für mich sehr gut funktioniert.

Wenn Sie Ihre Datei außerhalb des MT4-Datenordners halten, ist es tatsächlich besser, alle in einer Datei zu halten und dann kopieren Sie es auf den richtigen Ordner beim Debuggen.

 

Hallo, angevoyageur

Dies könnte einen eigenen Thread verdienen, aber hier geht's los - wenn ich den Debugger starte, muss ich wirklich das Diagramm, das er aufruft, nach meinen Vorgaben einstellen. Ich habe einen Indikator, den ich bereits fertiggestellt habe, sowie ein paar andere Dinge, die ich im Diagramm haben möchte. Außerdem muss das Diagramm auf bestimmte Spezifikationen eingestellt werden, z. B. die Anzeige von Candlesticks, die Vergrößerung auf einen bestimmten Punkt usw. Das brauche ich, damit ich mich auf den Start des von mir entwickelten Indikators konzentrieren und beobachten kann, was er tut. So wie die Dinge stehen, ist entweder die Ausführung an mir vorbeigeflogen und hat Dinge getan, die ich übersehen habe, wodurch mein Testlauf ungültig wurde, oder wenn ich versuche, etwas einzurichten, bleibt alles hängen und ich muss den Task-Manager verwenden, um den Vorgang zu beenden und es erneut zu versuchen.

Die Kursgrafik, die im Debug-Fenster angezeigt wird, läuft komplett auf der rechten Seite des Charts, was dazu führt, dass Handelsindikatoren angezeigt werden, die ich nicht sehen kann. Daher weiß ich nicht, was gerade passiert ist und warum. In der MQL5-Dokumentation heißt es, dass es im Ordner profile/templates eine Datei debug.tpl gibt, mit der man, so nehme ich an, diese Art von Einstellungen vornehmen kann, damit das Debug-Fenster so konfiguriert wird, wie man es braucht. Meine MT4-Installation verfügt nicht über einen solchen Ordner, und das Anlegen eines solchen Ordners und das Speichern einer Vorlagendatei darin hat nicht funktioniert. Ich dachte nicht, dass es funktionieren würde, aber ich habe es trotzdem versucht.

Gibt es eine Lösung für dieses Problem, die ich einfach nicht finde, oder verfügt die aktuelle Version von MQL4 einfach nicht über diese Funktion? Eine andere Sache, die wirklich schön wäre, wäre ein Tooltip-Popup, das Ihnen den Wert einer Variablen beim Mouseover anzeigt.

Ich will nicht nerven, aber Sie haben gesagt, wenn ich etwas gefunden habe ... :-)

 
ProfessorMetal:

Hallo, angevoyageur

Dies könnte ein eigenes Thema verdienen, aber hier geht's los - wenn ich den Debugger starte, muss ich wirklich das Diagramm, das er aufruft, nach meinen Vorgaben einstellen. Ich habe einen Indikator, den ich bereits fertiggestellt habe, sowie ein paar andere Dinge, die ich im Diagramm haben möchte. Außerdem muss das Diagramm auf bestimmte Spezifikationen eingestellt werden, z. B. die Anzeige von Candlesticks, die Vergrößerung auf einen bestimmten Punkt usw. Das brauche ich, damit ich mich auf den Start des von mir entwickelten Indikators konzentrieren und beobachten kann, was er tut. So wie die Dinge stehen, ist entweder die Ausführung an mir vorbeigeflogen und hat Dinge getan, die ich übersehen habe, wodurch mein Testlauf ungültig wurde, oder wenn ich versuche, etwas einzurichten, bleibt alles hängen und ich muss den Task-Manager verwenden, um den Vorgang zu beenden und es erneut zu versuchen.

Die Kursgrafik, die im Debug-Fenster angezeigt wird, läuft komplett auf der rechten Seite des Charts, was dazu führt, dass Handelsindikatoren angezeigt werden, die ich nicht sehen kann. Daher weiß ich nicht, was gerade passiert ist und warum. In der MQL5-Dokumentation heißt es, dass es im Ordner profile/templates eine Datei debug.tpl gibt, mit der man, so nehme ich an, diese Art von Einstellungen vornehmen kann, damit das Debug-Fenster so konfiguriert wird, wie man es braucht. Meine MT4-Installation verfügt nicht über einen solchen Ordner, und das Anlegen eines solchen Ordners und das Speichern einer Vorlagendatei in diesem Ordner hat nicht funktioniert. Ich dachte nicht, dass es funktionieren würde, aber ich habe es trotzdem versucht.

Gibt es eine Lösung für dieses Problem, die ich einfach nicht finde, oder verfügt die aktuelle Version von MQL4 einfach nicht über diese Funktion? Eine andere Sache, die wirklich schön wäre, wäre ein Tooltip-Popup, das Ihnen den Wert einer Variablen beim Mouseover anzeigt.

Ich will ja nicht nerven, aber Sie haben gesagt, wenn ich etwas gefunden habe ... :-)

Ah ah. Sie lesen die Hilfedatei nicht, es ist alles da. In MetaEditor, Menü Hilfe, Hilfethemen, suchen Sie nach "Debugging".

Sie müssen die Debugger-Optionen für das auszuführende Symbol/Zeitfenster festlegen. Sie können eine debug.tpl-Vorlage verwenden, um das Diagramm wie gewünscht einzustellen.

 

Ich habe die Hilfedatei gelesen. Daraus habe ich die zitierten Informationen entnommen. Darüber hinaus sind die Debugger-Optionen für das Symbol und den Zeitrahmen so eingestellt, wie ich sie haben möchte. So steht es in der Dokumentation, und das ist, soweit ich es finden kann, alles, was sie zu diesem Thema sagt.

Presetting

Before you start the program debugging, it's necessary to check its parameters in the "Debugging" tab of the MetaEditor options window. In this window you can specify a symbol and a chart period, in which the debugging of applications will be performed. Such a chart will be temporarily created each time when debugging is started, and it will be deleted after the debugging completion.

The "debug.tpl" template located in the /profiles/templates folder of the client terminal is applied to a chart created for debugging.
 

Wie gesagt, die MT4-Installation hat dieses Verzeichnis nicht, also habe ich es erstellt, ein Diagramm nach meinen Wünschen eingerichtet und es dort als debug.tpl gespeichert. So sollte es aussehen:

Chart-Einstellung A

Wie Sie sehen können, habe ich einen EA und zwei Indikatoren auf dem Chart. Der ganze gleitende Durchschnitt im Hauptfenster ist der Indikator, an dem ich arbeite. Der Indikator am unteren Rand des Charts ist ein bereits erstellter Indikator. Das ist das, was ich als debug.tpl gespeichert habe. Der Debugger benutzt sie nicht. Er öffnet ein Diagrammfenster und den Eigenschaftsdialog für meinen MA-Indikator und zeigt den Indikator im Hauptfenster an. Das Fenster ist weit herausgezoomt und der Preis wird als Balken angezeigt. Ich kann alles manuell einrichten, aber das bedeutet, dass ich alles jedes Mal neu einrichten muss, wenn ich einen Debug-Lauf durchführe, und außerdem ist es sehr wahrscheinlich, dass ich etwas verpasse, weil die Codeausführung ausgelöst wurde, während ich den Chart wieder einrichte.

Wie ich schon sagte, scheint es, als ob diese Funktionalität in MQL4 nicht implementiert ist.

 

Hallo Jeff,

während Sie an einem Haltepunkt in einem Debugger sitzen, scheint die IDE angehalten zu sein (bei EAs und Skripten bin ich mir nicht ganz sicher, aber ich glaube, bei Indikatoren schon). Die Indikatoren in der Vorlage sollten also nicht stören.

Kümmern Sie sich nicht um den physischen Speicherort der Vorlagendatei. Klicken Sie mit der rechten Maustaste auf den Chart, den Sie als Vorlage zum Debuggen verwenden möchten:

Wie Sie sehen können, habe ich bereits mehrere Vorlagen für die Fehlersuche gespeichert, so dass ich in der Regel wählen Sie laden z. B. Debug-1, dann Vorlage speichern und überschreiben die Debug.tpl

Ich habe gesehen, dass Sie vorhin um Hilfe gerufen haben, aber Sie haben explizit den Moderator gefragt, also habe ich auf seine qualifizierte Antwort gewartet.