ページコードの実行 · 7 / 29
コードの実行

QuantCraft IDE には、編集中のファイルを実行する方法が3 つあり(ワークスペース)、それぞれ目的が異なります。
| ボタン | 動作 | 使う場面 |
|---|---|---|
| Run | 現在のファイルを通常の Python スクリプトとして実行します。 | 簡単な確認、プロトタイピング、値の出力、ヘルパーの動作確認、その場限りのプロット作成。 |
| Test | 戦略のバックテストを開始します。 | 過去データでの戦略評価、単発の実行、パラメータスイープ、遺伝的最適化。バックテスト を参照。 |
| Compile | 後でチャートにアタッチできる、戦略の実行可能バンドルを作成します。 | 完成した戦略を、IDE の外のチャートで動かす準備をする。 |
3 つのボタンはすべて、ファイルを開いているときにエディタ領域の右上にあります。Run と Test はどのファイルでも常に利用でき、Compile は QuantCraft の戦略テンプレートに合致する .py ファイルで表示されます。
クイック実行(Run ボタン)
Run ボタンはコードを実行する最も簡単な方法で、今見ているファイルを、通常の python myfile.py のように上から下まで実行します。
実行方法
- 実行したいファイルをエディタで開きます(戦略である必要はなく、どの
.pyファイルでも構いません)。 - エディタ上のツールバーで Run をクリックします。
- セッションで初回は、Disclaimer ダイアログが表示されます(後述)。I understand をクリックして続行します。
- 出力は、生成されるたびにワークスペース下部の出力パネルにストリーミングされます。
コードの実行中は、実行が重ならないよう Run と Test ボタンが無効になります。
実行されるもの
- アクティブなファイルが入口になります。
- ワークスペース内のその他のファイルやフォルダは、実行中のファイルから
importできるように利用可能になります(ワークスペースのフォルダは Python のパッケージと同様に動作します —from my_folder import my_module)。 - コードは QuantCraft IDE の Python 環境(依存関係)で実行されるため、Packages に表示されているパッケージ(追加したものを含む)はすべてインポートできます。
Run で使えるもの
print(...)や stdout / stderr に書き込まれたものは、出力パネルにリアルタイムで表示されます(エラーは赤字)。- Matplotlib の図(
plt.show()形式のプロット)は、出力パネル内に画像としてレンダリングされます。 - Plotly の図は、インタラクティブなチャートとしてインライン表示されます。
- スクリプトでは、標準ライブラリ、環境内のサードパーティパッケージ、ご自身のワークスペースのモジュールを使用できます。
Run を使うべきでない場合
Run は純粋な Python を実行するだけで、QuantCraft のバックテストエンジンは動かしません。ファイルが戦略コールバックの on_init、on_bar、on_finish に依存している場合、Run はそれらを呼び出しません。代わりに Test を使ってください(戦略のライフサイクル)。
出力
コードが出力、プロット、エラーを出す場所はどこであれ、ワークスペース下部の出力パネルで確認できます。
表示される内容
stdoutに書き込まれたすべてに対する、タイムスタンプ付きのログ行。stderrに書き込まれたすべてに対する赤字のエラーと、パネルヘッダーの小さなエラー件数バッジ。- インラインプロット — Matplotlib の画像と Plotly のインタラクティブなチャート。
- スクリプトが正常に実行されたが何も出力しなかった場合の
(no output)。 - エラーを書き込まずに、ゼロ以外の終了コードでスクリプトが終了した場合の
(exit code N)。
パネルの使い方
- Output タイトル(またはその横の矢印)をクリックして、パネルを折りたたみ/展開します。
- 新しい行が届くたびに、パネルは最新の出力まで自動でスクロールします。
- パネルはファイル間で共有されます — 次に Run または Test を実行すると、以前の出力はクリアされ、新たに始まります。
- パネル上の区切りを使って、画面に占める大きさを変更できます。
Run と Test はどちらも同じ出力パネルに書き込みます。Test はさらに、エディタ領域の Test Results ビューに構造化された結果を表示します。
免責事項
QuantCraft は、お使いのマシン上でご自身のユーザーアカウントを使って Python を実行します。セッションでの最初の実行の前に、これを平易な言葉で説明する Disclaimer ダイアログが表示されます。
免責事項が扱う内容
- コードはサンドボックスなしで実行されます — スクリプトは、アクセス権のあるファイルの読み書き、ネットワークの利用、他のプログラムの起動(たとえば
subprocess経由)を行えます。 - 信頼できるコードを使ったローカル開発には適しています。
- 実行するコード、インストールするパッケージ、外部サービスに送るデータについては、ご自身が責任を負います。
表示される 2 つの形
- Run フローの免責事項 — Run(または Test)をクリックしたときに表示されます。**「Don't show this again」**のチェックボックスがあり、I understand をクリックする前にオンにすると、以降の Run と Test ではダイアログがスキップされ、すぐに実行されます。
- 参照用の免責事項 — 出力パネルのヘッダーにある Disclaimer ボタンからいつでも開けます。このバージョンは読み取り専用で、閉じても設定は変わりません。
あとでダイアログを再び表示させたい場合は、QuantCraft のサイトデータ(ブラウザ/アプリ)を消去するか、通常のアプリのリセット手順を使うと、次の Run で免責事項が再び表示されます。
Run、Test、Compile — どれを使うか
次の簡単なガイドで、適切な操作を選んでください。
Run を使う場面
- スクリプトをすばやく実行して、出力やプロットを確認したいとき。
- ヘルパーのプロトタイプを作ったり、データを探索したり、計算が期待どおりか検証したりするとき。
- 戦略ではない小さなユーティリティスクリプトを書いているとき。
- 開発中に途中の値を出力したいとき。
Run は最速のフィードバックループです。取引をシミュレートせず、パフォーマンス指標も計算せず、戦略テンプレートも不要です。
Test を使う場面
- 過去データで戦略をバックテストしたいとき。
- ファイルが QuantCraft の戦略テンプレート(
on_init、on_bar、on_finish)に従っているとき。 - 構造化された結果(資産曲線、パフォーマンス指標、取引履歴、チャート)が必要なとき。
- パラメータをスイープ(総当たり最適化)したり、遺伝的最適化で良いパラメータの組み合わせを探索したいとき。
Test をクリックすると Backtest ダイアログが開き、銘柄、期間、パラメータ、(任意で)最適化設定を選べます。Test は戦略をバックテストのサブプロセス経由で実行します(通常の Run とは別の経路です)。IDE は WebSocket で設定を送り、進行状況を出力パネルにストリーミングします。その後、結果はエディタの Test Results ビューに表示されます。長時間のテストは、いつでも Stop で止められます。
Compile を使う場面
- 完成した戦略をチャートにアタッチしたいとき(IDE の外で、ライブまたは記録済みデータに対して実行できるようにするため)。
- ファイルが、必須のコールバック(
on_init、on_bar、on_finish)を含む.py戦略であるとき。
Compile は、戦略と、それがインポートするワークスペースのモジュール、必要な IDE のパッケージを、1 つの実行可能バンドルファイル(*.qcraft.json)にまとめ、システムのファイルダイアログでディスクに保存します。バンドルは単体では動作せず、チャートにアタッチして、そこから戦略を動かすためのものです。
Compile ボタンが無効な場合は、ファイルに必須の戦略コールバックのいずれかが欠けています。
def on_init():、def on_bar(...):、def on_finish():を追加する(または既定の戦略テンプレートを使う)と有効になります。
ヒント
- 長い実行を止める — バックテストの実行中は、Run/Test コントロールの横に Stop ボタンが表示されます。通常の Run スクリプトは、ファイルを閉じるかバックエンドを中断することで終了できます。
- 出力はどこへ? — 出力パネルは Run と Test で共有されます。両者を切り替えた場合は、パネルを上にスクロールしてください。最新の実行の出力は一番下にあります。
- ワークスペース内の他のファイルのインポートは Run でも動作します — Run と Test のどちらも、ワークスペースをパッケージツリーとして扱うため、同じ
import文がどちらでも一貫して動作します。 - 共有する前にコンパイルする — チャートで戦略を使いたい場合は、最後の編集の後に必ず Compile してください。そうすれば、バンドルに最新のコードが反映されます。

