ページデバッグ · 21 / 29
デバッグ
IDE は Python コードをデバッガの下で実行できるため、特定の行で一時停止し、コールスタックと変数を確認できます。デバッグモードは2 つあり、どちらもデバッグツールバーから起動します。
| モード | 実行内容 |
|---|---|
| Debug Run | 現在の Python ファイルをデバッガの下で直接実行します。ファイルが開いているときは常に利用できます。 |
| Debug Test | 戦略を過去のバー(バックテスト)に対してデバッガの下で実行します。アクティブなファイルがバックテストのコールバックを実装した戦略である場合にのみ表示されます。 |
Debug Test は、まずバックテストの設定モーダルを開き、その後実行します。単一のバックテストのみ(最適化スイープは不可)、かつ Selected symbols のソースのみ(Screener は不可)に対応します。ファンダメンタルズは、提出日のルールを含め、バックテストとまったく同じように読み込まれるため、確認する内容は Test 実行で見える内容と一致します。
QuantCraft AI が IDE を操作している間、デバッグツールバーは非表示になり、AI セッションが終了すると元に戻ります。各モードと通常の実行との関係については、コードの実行 と バックテスト を参照してください。
ブレークポイントを設定する
- 行番号の左側のガターをクリックすると、その行のブレークポイントが切り替わります。もう一度クリックすると削除されます。
- ブレークポイントはファイルごとに保持され、セッション開始時に開いているすべてのタブから収集されます。
- ガターは何も実行されていないときにのみクリックできます。実行を開始する前にブレークポイントを設定してください。
セッションを開始する
- 初めてデバッグセッションを開始すると、一度だけ実行に関する免責事項が表示されます(次回からはスキップできます)。
- Debug Run にはファイルが開いている必要があります。Debug Test は、アクティブなタブが、IDE が認識する戦略コールバック(
on_init/on_bar/on_finish)を定義した.pyファイルである場合に表示されます。有効なブローカーのトレーディングアカウントは必要ありません。B2 / QuantCraft のデータは、必要に応じて QC のサインインを使用します。 - バックテストエンジンは、依然として呼び出し可能な
on_tick(およびその他の必須コールバック)を要求します。on_tickがない場合、Debug Test はツールバーに表示されることがありますが、バックテストの開始時に実行が失敗します。 - 同時に実行できるデバッグセッションは 1 つだけで、通常の Run やバックテストの実行中はデバッグがブロックされます。
コントロール
ツールバーには、セッションの状態に応じたコントロールが表示されます。
| コントロール | 表示されるとき | 動作 |
|---|---|---|
| Stop | 実行中 | デバッグセッションを終了します。 |
| Continue | 一時停止中 | 次のブレークポイントまで再開します。 |
| Step Over | 一時停止中 | 現在の行を実行し、同じ関数内にとどまります。 |
| Step Into | 一時停止中 | 現在の行の関数呼び出しの中に入ります。 |
| Step Out | 一時停止中 | 現在の関数が戻るまで実行します。 |
| Step Bar | 一時停止中(Debug Test のみ) | バックテストをローソク足 1 本分進めます。 |
Restart はありません。再起動するには、停止してから Debug Run / Debug Test をもう一度クリックします。
一時停止中に表示されるもの
- エディタが一時停止中のファイルに移動し、一時停止中の行をハイライトします。
- 出力パネル に Debug サブタブが開き、2 つのペインが表示されます。
- Call Stack — フレームの連なりで、それぞれ関数名と
ファイル:行が表示されます。フレームをクリックすると、その変数を確認できます。 - Variables — スコープ別(Locals、Globals、Closure など)にグループ化されています。各変数には名前、型、値が表示され、オブジェクトやリストは展開して内容を確認できます。
- Call Stack — フレームの連なりで、それぞれ関数名と
- Debug Test では、ステップコンテキストのバナーにバックテスト内での位置(例:
Bar 12 / 240 · AAPL · <time> · O … H … L … C …)が表示されます。 - プログラムの出力は、通常どおり出力パネルにストリーミングされます。
制限事項
- ウォッチパネルや式の評価機能はなく、Call Stack と Variables のみです。
- Restart コントロールはありません(停止して再起動してください)。
- Debug Test は単一のバックテストのみで、最適化の実行はデバッグできません。
- Screener のシンボルソースは使えません — Debug Test は
Debug test doesn't support a Screener symbol source …で停止します。Selected symbols に切り替えて、いくつかのティッカーを選んでください。 - Debug Test は、アクティブなタブがバックテストのコールバックを持つ
.py戦略ファイルである必要があります。通常のスクリプトでは Debug Run のみ使えます。 - Debug Test のツールバーでの表示は
on_tickを確認しません。確認するのはエンジンです。
関連項目
- バックテスト — バックテストの実行と Run モーダル
- 戦略のライフサイクル — 戦略のコールバックとシミュレーションの順序
- 発生しうるエラー — よくあるエラーメッセージと対処法

