Terminal Globals Problem - Seite 3

 

Hallo, Deep Thought

ich habe das versucht und jedes Mal, wenn ich es versucht habe, hat sich MT4 gesperrt. Ich saß allerdings nicht auf einem Haltepunkt, als ich versucht habe, die Vorlage zu laden. Ich werde versuchen, einen Haltepunkt am Anfang von OnStart() zu setzen und sehen, was passiert. Die IDE sollte unabhängig vom Anwendungstyp angehalten werden, wenn man auf einem Haltepunkt sitzt. Ich habe es gerade versucht - es hat nicht funktioniert. Wenn der Debugger einen Haltepunkt erreicht, wird das Terminal eingefroren. Wenn man versucht, etwas zu tun, wird es blockiert. Mir ist aufgefallen, dass Sie Offline-Diagramme verwenden. Ich tue das nicht. Das könnte der Unterschied sein - wenn Sie MT4 verwenden. Danke für den Rat - es war einen Versuch wert. Jetzt habe ich ein größeres Problem. Mein Debugger funktioniert nicht mehr. Ich muss irgendetwas gemacht haben, aber ich bin mir nicht sicher, was. Ah - das Leben und die Zeiten eines Programmierers :-)

 

Das ist kein Problem.

Aber nein, die Offline-Diagramme haben keine Auswirkung auf das Speichern von Vorlagen (zumindest mit den neuesten Builds, da es vor ein paar Wochen auch einen Fehler gab).

Ja, das Terminal friert während des Debuggens ein. Der Debugger hängt sich in den Haupt-IDE-Thread ein, in dem normalerweise alle Indikatoren laufen. Er friert für eine Weile ein, nachdem er Ihre Ereignismethode (OnStart, OnInit) verlassen hat, und bleibt am Leben, bis Sie ihn an einem Haltepunkt wieder anhalten.

 
ProfessorMetal:

Hallo, Deep Thought

ich habe das versucht, und jedes Mal, wenn ich es versucht habe, hat sich MT4 gesperrt. Ich saß allerdings nicht auf einem Haltepunkt, als ich versucht habe, die Vorlage zu laden. Ich werde versuchen, einen Haltepunkt am Anfang von OnStart() zu setzen und sehen, was passiert. Die IDE sollte unabhängig vom Anwendungstyp angehalten werden, wenn man auf einem Haltepunkt sitzt. Ich habe es gerade versucht - es hat nicht funktioniert. Wenn der Debugger einen Haltepunkt erreicht, wird das Terminal eingefroren. Wenn man versucht, etwas zu tun, wird es blockiert. Mir ist aufgefallen, dass Sie Offline-Diagramme verwenden. Ich tue das nicht. Das könnte der Unterschied sein - wenn Sie MT4 verwenden. Danke für den Rat - es war einen Versuch wert. Jetzt habe ich ein größeres Problem. Mein Debugger funktioniert nicht mehr. Ich muss irgendetwas gemacht haben, aber ich bin mir nicht sicher, was. Ah - das Leben und die Zeiten eines Programmierers :-)

Tut mir leid, aber ich habe kein Problem mit dem Debugger. Er benutzt die debug.tpl, die ich gespeichert habe, und bleibt nicht hängen.

Ich kann Ihnen also 2 Dinge vorschlagen, entweder posten Sie hier, wie Sie Ihr Problem reproduzieren, damit wir versuchen können, Ihnen zu helfen. Oder schreiben Sie an den ServiceDesk von Metaquotes.

 

Nochmals vielen Dank, DeepThought. Ich habe nicht wirklich gedacht, dass die Diagramme etwas damit zu tun haben, aber ich dachte, es wäre eine Erwähnung wert, nur für den Fall. Wenn Sie sich mein Profil angeschaut haben, werden Sie gesehen haben, dass ich ein sehr erfahrener Entwickler bin. Ich habe auf die harte Tour gelernt, dass das, was man für kein Problem hält, sich oft als eines herausstellt. Es lohnt sich immer, eine Frage zu stellen, auch wenn man sie für überflüssig hält. Ich glaube allerdings, dass ich Ihren vorherigen Beitrag missverstanden habe. Wenn das Terminal eingefroren ist, wenn der Debugger auf einen Haltepunkt trifft, gibt es keine Möglichkeit, eine Vorlage für das Diagramm zu laden, in dem Sie sich befinden. Offensichtlich habe ich etwas missverstanden, was Sie mir sagen wollten.

angevoyageur,

Ich kann nicht mehr posten, als ich bereits getan habe. Es gibt keine Schritte A, B, C, die dies verursachen. Es verhält sich so, als würde es versuchen, ein Debug-Template zu finden, was ihm nicht gelingt, so dass es kein Diagramm öffnet. Das Protokoll scheint dies zu bestätigen. Wenn ich debug.tpl lösche, wird der Debugger ein Diagramm öffnen. Ich muss das Diagramm immer noch selbst einrichten, aber das ist besser als gar kein Debugging zu haben. Es sieht langsam so aus, als wäre das ein Problem für den Service Desk. Ich weiß nicht, warum ich das sehe und Sie und DeepThought nicht. Ich bin sogar so weit gegangen, MT4 neu zu installieren, und das Problem besteht weiterhin. Es könnte auch sein, dass mit meinem Code etwas nicht stimmt, was zum Absturz führt, wenn er versucht, die Vorlage zu laden. Ich werde dieser Möglichkeit nachgehen, bevor ich mich an den Service Desk wende. Jetzt muss ich erst einmal schlafen gehen und mich ausruhen. Ich bin zu müde, um mich zu konzentrieren. Nochmals vielen Dank für Ihre Hilfe.

 
Oh, jetzt verstehe ich Ihren fehlenden Punkt. Es heißt, dass die Vorlage debug.tpl automatisch geladen wird, wenn der Chart vom Debugger aus geöffnet wird - das Gleiche passiert für default.tpl mit jedem normalen Chart, tester.tpl mit einem Strategietester, offline.tpl mit einem Offline-Chart, und zusätzlich zum Strategietester wird vorzugsweise <ea_name>.tpl geladen.
 

Um ehrlich zu sein, habe ich nie einen Debugger benutzt. Ich benutze nur Print-Funktionen. Auf diese Weise kann ich schneller debuggen. Natürlich benutze ich ein Demokonto, aber es ist eher ein Vorwärtstest als ein Rückwärtstest.

Viele Leute mögen Backtests, aber ich mag Vorwärtstests. Welchen Sinn hat es, die Optimierung mit historischen Daten durchzuführen?

Ich führe die Optimierung an echten Live-Daten durch. Dadurch ist mein EA zu 100% stabil und kann die meisten Fehler ohne mein Zutun beheben.

Natürlich habe ich dafür viele Monate gebraucht, aber das war es wert.

 
ProfessorMetal:

Nochmals vielen Dank, DeepThought. Ich habe nicht wirklich gedacht, dass die Diagramme etwas damit zu tun haben, aber ich dachte, es wäre eine Erwähnung wert, nur für den Fall. Wenn Sie sich mein Profil angeschaut haben, werden Sie gesehen haben, dass ich ein sehr erfahrener Entwickler bin. Ich habe auf die harte Tour gelernt, dass das, was man für kein Problem hält, sich oft als eines herausstellt. Es lohnt sich immer, eine Frage zu stellen, auch wenn man sie für überflüssig hält. Ich glaube allerdings, dass ich Ihren vorherigen Beitrag missverstanden habe. Wenn das Terminal eingefroren ist, wenn der Debugger auf einen Haltepunkt trifft, gibt es keine Möglichkeit, eine Vorlage für das Diagramm zu laden, in dem Sie sich befinden. Offensichtlich habe ich etwas missverstanden, was Sie mir sagen wollten.

angevoyageur,

Ich kann nicht mehr posten, als ich bereits getan habe. Es gibt keine Schritte A, B, C, die dies verursachen. Es verhält sich so, als würde es versuchen, ein Debug-Template zu finden, was ihm nicht gelingt, so dass es kein Diagramm öffnet. Das Protokoll scheint dies zu bestätigen. Wenn ich debug.tpl lösche, wird der Debugger ein Diagramm öffnen. Ich muss das Diagramm immer noch selbst einrichten, aber das ist besser als gar kein Debugging zu haben. Es sieht langsam so aus, als wäre das ein Problem für den Service Desk. Ich weiß nicht, warum ich das sehe und Sie und DeepThought nicht. Ich bin sogar so weit gegangen, MT4 neu zu installieren, und das Problem besteht weiterhin. Es könnte auch sein, dass mit meinem Code etwas nicht stimmt, was zum Absturz führt, wenn er versucht, die Vorlage zu laden. Ich werde dieser Möglichkeit nachgehen, bevor ich mich an den Service Desk wende. Jetzt muss ich erst einmal schlafen gehen und mich ausruhen. Ich bin zu müde, um mich zu konzentrieren. Nochmals vielen Dank für Ihre Hilfe.

Können Sie es mit einer sehr einfachen Vorlage versuchen? Vielleicht hängt es mit der Vorlage selbst zusammen? Wenn es mit einer einfachen Vorlage funktioniert (z.B. Display Candlestick), dann gehen Sie Schritt für Schritt vor, indem Sie jeweils 1 Element in Ihre Vorlage einfügen.

Wenn es nicht von Anfang an funktioniert, ist es definitiv etwas für den ServiceDesk.

 

DeepThought,

"Esheißt, dass die Vorlage debug.tpl automatisch geladen wird, wenn der Chart vom Debugger aus geöffnet wird" Ein Problem könnte etwas sein, das ich bereits erwähnt habe. Die MT4-Installation hat nicht das Verzeichnis profiles/templates, das laut Dokumentation vorhanden sein sollte. Deshalb habe ich es selbst hinzugefügt und dann meine Debug-Vorlage dort gespeichert. Ich habe versucht, den Debugger sowohl bei laufendem MT4 als auch bei ausgeschaltetem MT4 zu starten und den Debugger alles starten zu lassen - mit dem gleichen Ergebnis. Ich habe ein paar seltsame Dinge mit beiden Ansätzen gesehen. Das Protokoll meldet manchmal einen Unitialisierungsfehler 2, der anzeigt, dass mein Indie neu kompiliert wird, wenn ich den Debugger starte. Das macht keinen Sinn. Ich habe versucht, den Debugger sowohl bei laufendem MT4 zu starten als auch den Debugger selbst zu starten - mit demselben Ergebnis. Das passiert nur, wenn ich den Ordner profiles/template mit der Datei debug.tpl darin habe. Wenn ich das loswerde, zeigt der Debugger einen Chart an, der den Indie enthält, den ich zu testen versuche, und sonst nichts. Wenn ich den Debugger gestartet habe und dann versuche, eine Vorlage zu laden, wird der Debugger sofort beendet, wenn ich die Vorlage auswähle, und ich sehe den Chart, als hätte ich MT4 mit einem Profil gestartet, das den Chart mit meinem Setup enthält.

deysmacro, ich stimme zu.

Backtesting ist nutzlos. Wie Sie, teste ich nur vorwärts. Das kostet zwar viel Zeit, aber man erhält ein viel genaueres Bild davon, was die Anwendung tun wird. Wenn ich ein Tool für meinen persönlichen Gebrauch oder für den kommerziellen Verkauf entwickle, dann beurteile ich seine Effizienz anhand dessen, was der Markt JETZT tut, und nicht anhand dessen, was er vor fünf Jahren getan hat. Das ist für mich das einzige, was Sinn macht.

Ein guter Vorschlag, angevoyageur. Daran hätte ich selbst denken sollen. Ich bin mir immer noch nicht ganz sicher, ob der Indie, an dem ich arbeite, daran unschuldig ist. Ich berechne die Ein- und Ausstiegspunkte auf der Grundlage der MAs und erhalte gelegentlich Null-Dividenden. Die Protokolle legen nahe, dass das nicht das Problem ist, aber wer weiß. Ein Grund dafür, dass ich nicht glaube, dass das das Problem ist, ist, dass, wenn ich das Verzeichnis und die Dateistruktur gemäß der Dokumentation eingerichtet habe, das Protokoll zeigt, dass die Indies und EA erfolgreich geladen und dann sofort deinitialisiert werden, ohne einen Grund dafür anzugeben. Ich habe Alerts in den OnInit()- und OnDeinit()-Funktionen und keine von ihnen wird ausgeführt, was darauf hindeutet, dass das, was auch immer in die Luft fliegt, dies tut, bevor irgendetwas überhaupt eine Chance hat, ausgeführt zu werden. Ich werde weiter an der Sache arbeiten und berichten, was ich herausfinde. Es kann sein, dass ich das Problem an den ServiceDesk weitergeben muss. Wie ich bereits sagte, habe ich jedoch eine Lösung, so schmerzhaft sie auch sein mag. :-)

 
ProfessorMetal:

DeepThought,

Die MT4-Installation hat nicht das Verzeichnis profiles/templates, das es laut Dokumentation geben sollte. Deshalb habe ich es selbst hinzugefügt und dann meine Debug-Vorlage darin gespeichert.


Bei mir ist es auch nicht im Installationsverzeichnis. Macht nichts.
 
DeepThought:

Bei mir ist es auch nicht im Installationsverzeichnis. Macht nichts.

:-)