Dokumentation1.0 (latest)
SeitenDebugging · 21 / 29

Debugging

Die IDE kann Ihr Python unter einem Debugger ausführen, sodass Sie in einer Zeile anhalten und den Aufrufstapel sowie die Variablen untersuchen können. Es gibt zwei Debug-Modi, die beide über die Debug-Symbolleiste gestartet werden.

ModusWas er ausführt
Debug RunFührt die aktuelle Python-Datei direkt unter dem Debugger aus. Immer verfügbar, wenn eine Datei geöffnet ist.
Debug TestFührt Ihre Strategie über historische Balken (einen Backtest) unter dem Debugger aus. Erscheint nur, wenn die aktive Datei eine Strategie ist, die die Backtest-Callbacks implementiert.

Debug Test öffnet zuerst den Backtest-Konfigurationsdialog und führt dann aus. Es unterstützt nur einen einzelnen Backtest — keine Optimierungsläufe — und nur die Quelle Selected symbols (keinen Screener). Fundamentaldaten werden genau wie bei einem Backtest gelesen, einschließlich der Regel zum Einreichungsdatum, sodass das, was Sie untersuchen, dem entspricht, was ein Test-Lauf sehen würde.

Die Debug-Symbolleiste ist ausgeblendet, solange QuantCraft AI die IDE steuert; sie kommt zurück, wenn die KI-Sitzung endet. Wie sich die Modi zur normalen Ausführung verhalten, finden Sie unter Code ausführen und Backtests.


Haltepunkte setzen

  • Klicken Sie in den Falz links neben den Zeilennummern, um einen Haltepunkt in dieser Zeile ein- oder auszuschalten; ein erneuter Klick entfernt ihn.
  • Haltepunkte gelten pro Datei und werden beim Start einer Sitzung aus allen geöffneten Tabs gesammelt.
  • Der Falz ist nur anklickbar, wenn nichts läuft — setzen Sie Ihre Haltepunkte, bevor Sie einen Lauf starten.

Eine Sitzung starten

  • Beim ersten Start einer Debug-Sitzung sehen Sie einen einmaligen Ausführungshinweis (beim nächsten Mal können Sie ihn überspringen).
  • Debug Run benötigt eine geöffnete Datei. Debug Test erscheint, wenn der aktive Tab eine .py-Datei ist, die von der IDE erkannte Strategie-Callbacks definiert (on_init / on_bar / on_finish); ein aktives Broker-Trading-Konto ist dafür nicht erforderlich. B2- / QuantCraft-Daten verwenden bei Bedarf Ihre QC-Anmeldung.
  • Die Backtest-Engine verlangt weiterhin einen aufrufbaren on_tick (und die anderen erforderlichen Callbacks). Fehlt on_tick, kann Debug Test in der Symbolleiste erscheinen, der Lauf schlägt aber beim Start des Backtests fehl.
  • Es läuft nur eine Debug-Sitzung gleichzeitig, und Debugging ist gesperrt, solange ein normaler Run oder Backtest läuft.

Steuerelemente

Die Symbolleiste zeigt Steuerelemente abhängig vom Sitzungszustand.

SteuerelementWannWas es tut
StopWährend des LaufsBeendet die Debug-Sitzung.
ContinueIm pausierten ZustandSetzt bis zum nächsten Haltepunkt fort.
Step OverIm pausierten ZustandFührt die aktuelle Zeile aus und bleibt in derselben Funktion.
Step IntoIm pausierten ZustandSpringt in den Funktionsaufruf der aktuellen Zeile.
Step OutIm pausierten ZustandLäuft, bis die aktuelle Funktion zurückkehrt.
Step BarIm pausierten Zustand (nur Debug Test)Setzt den Backtest um eine Kerze weiter.

Es gibt kein Restart — zum Neustarten beenden Sie die Sitzung und klicken erneut auf Debug Run / Debug Test.


Was Sie im pausierten Zustand sehen

  • Der Editor springt zur pausierten Datei und hebt die pausierte Zeile hervor.
  • Im Ausgabebereich öffnet sich ein Unter-Tab Debug mit zwei Bereichen:
    • Call Stack — die Kette der Frames, jeweils mit Funktionsnamen und Datei:Zeile. Klicken Sie auf einen Frame, um seine Variablen zu untersuchen.
    • Variables — gruppiert nach Gültigkeitsbereich (Locals, Globals, Closure usw.). Jede Variable zeigt Name, Typ und Wert; Objekte und Listen lassen sich aufklappen, um ihren Inhalt anzuzeigen.
  • In Debug Test zeigt ein Schrittkontext-Banner Ihre Position im Backtest, z. B. Bar 12 / 240 · AAPL · <time> · O … H … L … C ….
  • Die Programmausgabe wird wie gewohnt in den Ausgabebereich gestreamt.

Einschränkungen

  • Kein Watch-Panel und kein Ausdrucksauswerter — nur Call Stack und Variables.
  • Kein Restart-Steuerelement (beenden und neu starten).
  • Debug Test ist nur für einen einzelnen Backtest — es kann keinen Optimierungslauf debuggen.
  • Keine Screener-Symbolquelle — Debug Test bricht mit Debug test doesn't support a Screener symbol source … ab. Wechseln Sie zu Selected symbols und wählen Sie einige Ticker.
  • Debug Test erfordert, dass der aktive Tab eine .py-Strategiedatei mit den Backtest-Callbacks ist; ein einfaches Skript erhält nur Debug Run.
  • Die Sichtbarkeit von Debug Test in der Symbolleiste prüft on_tick nicht; das tut die Engine.

Siehe auch

Debugging — Dokumentation (1.0 (latest)) | QuantCraft