MetaEditor hat einen eingebauten Debugger, mit dem Sie die Programmausführung Schritt für Schritt (durch einzelne Funktionen) überprüfen können. Setzen Sie Haltepunkte in den Code. Dies sind die Stellen, an denen die Programmausführung angehalten werden soll. Dann starten Sie das Programm auf einem normalen Chart oder dem Strategietester. Sobald das Programm einen Haltepunkt erreicht, wird es angehalten. Dadurch können Sie die Werte der berechneten Variablen sehen und die Programmausführung Schritt für Schritt fortsetzen, indem Sie den Ausführungsalgorithmus überprüfen.
Setzen Sie vor dem Debuggen die allgemeinen Parameter in MetaEditor Einstellungen. Sie können ein Symbol und einen Zeitrahmen angeben, auf dem das Debugging von Anwendungen stattfinden soll. Ein solches Chart wird jedes Mal, wenn Sie mit dem Debuggen beginnen, temporär erstellt und sofort nach seiner Beendigung wieder entfernt.
debug.tpl Template im Ordner /profiles/templates der Handelsplattform wird auf ein Debugging-Chart angewendet. |
Ein Haltepunkt (Breakpoint) ist ein Befehl, der ausgelöst wird, wenn eine Programmausführung eine bestimmte Zeile erreicht. Der Befehl stoppt die Ausführung an dieser Zeile. Haltepunkte erlauben es, das Verhalten eines Programms in einem bestimmten Codebereich zu untersuchen: die Variablenwerte und den Funktionsstapel anzuzeigen. In Zukunft kann der Debugging-Prozess wieder aufgenommen oder abgebrochen werden.
Setzen Sie vor dem Start eines Debuggens mindestens einen Haltepunkt im Programmcode. Dafür machen Sie einen Doppelklick im grauen Bereich links von der Codezeile. Sie können auch einen Cursor auf die Zeile positionieren und auf die Schaltfläche Aktivieren/Deaktivieren eines Haltepunktes im Menü Debug oder mit F9. Haltepunkte werden auf die gleiche Weise wieder deaktiviert.
Wenn Sie zu dem Punkt springen müssen, an dem die Programmausführung gestoppt wurde, machen Sie einen Doppelklick auf die Funktion im Aufrufstapel des Ansichtsfensters. Außerdem können Sie über das Kontextmenü des Fensters die Liste aller Haltepunkte des aktuell debuggten Programms öffnen:
Sie können zu einem beliebigen Haltepunkt springen, indem Sie darauf einen Doppelklick machen.
Um zu debuggen, öffnen Sie die Hauptprogrammdatei oder ein Projekt. Debugging kann in zwei Modi durchgeführt werden:
Sobald die Programmausführung im Debugging-Modus einen Haltepunkt erreicht, wird sie angehalten. Die Zeile, bei der die Ausführung angehalten wird, ist gekennzeichnet mit dem Symbol Symbol. Der Reiter Debug erscheint ebenfalls im Fenster der Toolbox. Im linken Teil zeigt die Funktion den Aufrufstapel.
Während des Debuggens können die Werte verschiedener Ausdrücke (Variablen) nach dem aktuellen Programmschritt kontrolliert werden. Im rechte Teil des Reiters Debug des Fensters der Toolbox zeigt die entsprechenden Ergebnisse an. Um die Ausdruckswerte zu verfolgen, fügen Sie sie zu den beobachteten hinzu:
Sie können auch die automatische Anzeige von lokalen Variablen in der Watchlist des Debuggers aktivieren. Die Anzeige kann über den Befehl "Lokal" im Kontextmenü aktiviert werden. Wenn die Debugger-Operation durch den Code fortschreitet, werden die Variablen des aktuellen Bereichs automatisch in der Liste angezeigt.
Im Fenster der Werte der Ausdrücke können Sie einfache mathematische Berechnungen (Addition, Subtraktion, Multiplikation und Division) durchführen sowie bestimmte Werte eines Arrays anzeigen, z.B. durch Angabe von A[3][4], wobei A ein Arrayname ist, während 3 und 4 die jew. Indices seiner Dimensionen sind. Beim Hinzufügen von Objekten zu beobachteten Ausdrücken können Sie die Liste ihrer Mitglieder anzeigen, indem wir am Ende einen Punkt angeben oder auf Strg+Leertaste klicken:
Um den Inhalt eines Arrays oder Objekts anzuzeigen, machen Sie darauf einen Doppelklick im Beobachtungsfenster.
Standardmäßig werden ganze Zahlen im Beobachtungsfenster in dezimaler Form angezeigt. Um den Wert in binärer oder hexadezimaler Form anzuzeigen, geben Sie den kommagetrennten b- oder x-Modifikator entsprechend im Feld Ausdruck an.
Daten zur Rückgabe der Steuerung aus Unterprogrammen (geschachtelte Funktionen) an das Programm (Hauptereignisbehandlung OnInit, OnTick, etc.) werden im Aufrufstapel angegeben. Der Stack erlaubt es, die gesamte Sequenz eines Ereignisses in der Handelsplattform bis zum Aufruf einer bestimmten Funktion zu verfolgen.
Zu jeder Funktion werden folgende Daten angezeigt:
Debug Menü oder Standard Toolbar-Befehle werden für das schrittweise Debugging mit der Möglichkeit, den Aufrufstapel anzuzeigen, verwendet:
Die Befehle für eine Schritt-für-Schritt Debugging können nur verwendet werden, nachdem das Programm im Debug-Modus angehalten wurde:
Ereignisse treten weiterhin in der Handelsplattform auf. auch wenn sich das Programm an einem Haltepunkt befindet. Alle aufgetretenen Ereignisse werden in eine Liste gestellt und ihre Verarbeitung durch einen Experten wird fortgesetzt, nachdem der aktuelle Event-Handler den Code verlassen hat. |
Das Programm wird während des Debuggens automatisch gestoppt, sobald die Ausführung einen Zeichenkette mit installiertem Haltepunkt erreicht. Das Debugging kann auch manuell gesteuert werden:
|
Neben Echtzeit-Kursdaten kann auch das Debugging von Handelsrobotern und technischen Indikatoren in der Historie durchgeführt werden. Jedes Programm kann mit den erforderlichen historischen Daten getestet werden, ohne auf bestimmte Handelsereignisse in Echtzeit warten zu müssen.
Das Debugging mit historischen Daten läuft im visuellen Testmodus im Strategietester. Eine Anwendung wird in einem Chart ausgeführt, das auf einer emulierten Sequenz von Ticks im Tester oder akkumulierten historischen Ticks (von einem Broker erhalten) basiert.
Um das Debugging mit der Historie zu starten, setzen Sie die Testparameter in MetaEditor Einstellungen.
Setzen Sie die Haltepunkte im Code und starten Sie das Debugging mit historischen Preisen.
Dadurch wird der visuelle Test und der Debugging-Prozess eingeleitet.