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.
| Modus | Was er ausführt |
|---|---|
| Debug Run | Führt die aktuelle Python-Datei direkt unter dem Debugger aus. Immer verfügbar, wenn eine Datei geöffnet ist. |
| Debug Test | Fü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). Fehlton_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.
| Steuerelement | Wann | Was es tut |
|---|---|---|
| Stop | Während des Laufs | Beendet die Debug-Sitzung. |
| Continue | Im pausierten Zustand | Setzt bis zum nächsten Haltepunkt fort. |
| Step Over | Im pausierten Zustand | Führt die aktuelle Zeile aus und bleibt in derselben Funktion. |
| Step Into | Im pausierten Zustand | Springt in den Funktionsaufruf der aktuellen Zeile. |
| Step Out | Im pausierten Zustand | Läuft, bis die aktuelle Funktion zurückkehrt. |
| Step Bar | Im 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.
- Call Stack — die Kette der Frames, jeweils mit Funktionsnamen und
- 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_ticknicht; das tut die Engine.
Siehe auch
- Backtests — einen Backtest ausführen und der Run-Dialog
- Strategie-Lebenszyklus — Strategie-Callbacks und Simulationsreihenfolge
- Mögliche Fehler — häufige Fehlermeldungen und Lösungen

