ドキュメント1.0 (latest)
ページデバッグ · 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 など)にグループ化されています。各変数には名前、型、値が表示され、オブジェクトやリストは展開して内容を確認できます。
  • 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 を確認しません。確認するのはエンジンです。

関連項目

デバッグ — ドキュメント (1.0 (latest)) | QuantCraft