ページリファレンス · 28 / 29
QuantCraft ドキュメントリファレンス
QuantCraft には、相互に補完する 2 種類のドキュメントが付属しています。IDE 内で読むアプリ内トピックと、API の詳細のために製品に同梱されているストラテジーリファレンスの Markdown です。これらを合わせて、ストラテジーの書き方、バックテストの実行方法、IDE の使い方を説明しています。この Web ドキュメントは、それらのトピックの多くを反映しています。まずははじめにまたは入門から始めてください。
アプリ内でドキュメントを読む場所
- メインアプリから QuantCraft を開きます。
- 右サイドバーを展開します(折りたたまれている場合)。
- Documentation タブ(QuantCraft AI の隣)を開きます。
トピックの検索可能な索引が表示されます。検索ボックスに入力すると、タイトル、要約、埋め込まれたキーワード(たとえば on_finish、PaperAccount、chart_indicator_series)で絞り込めます。
トピックカードをタップすると、記事全文が開きます。Back で索引に戻ります。
トピック索引(アプリ内)
トピックは、Documentation サイドバーに対応する 2 つのセクションにまとめられています。
Getting started
| トピック | 学べること |
|---|---|
| ファンダメンタルデータ | 財務諸表データ、日付をキーとするテーブル、ファンダメンタルデータがバーにどう整列するか、ストラテジーでの読み方。 |
| Fama-French ファクター | fama_french.qc によるグローバルな月次 FF3/FF5 ファクターリターン(Premium。コールバック引数なし)。 |
| カレンダーデータ | 配当、株式分割、決算日、提出書類(calendar コールバック引数、バックテストのみ)、およびシミュレーションでのコーポレートアクション。 |
| アカウント | PaperAccount:バックテスト中に利用できる残高、ポジション、注文、損益、パフォーマンス指標。 |
| ライフサイクル | コールバックの順序:on_init、on_bar、on_tick、任意の on_timer(フォワードのみ)、on_finish — 複数シンボルの基本と、任意の全系列 on_finish(bars) を含みます。 |
Reference
| トピック | 学べること |
|---|---|
| 入力パラメータ | quantcraft.inputs.params の宣言、型、実行ダイアログ(バックテスト、バルクフォワード、チャートフォワード)から値が渡される仕組み。 |
| 実行プリセット(.qcs) | 実行ダイアログの設定を、ワークスペース内の .qcs ファイルとして保存・再読み込みする。 |
| デバッグ | Debug Run と Debug Test、ブレークポイント、ステップ実行、コールスタック、変数。 |
| AutoTrading | アルゴリズムとエージェントのローカルなフォワード実行、New Bulk / Agent Bulk Run、バルク/チャートジョブの監視。 |
| QuantCloud | PC の電源が切れていてもクラウドランナーで実行できるバルクフォワード(デスクトップユーザーガイド)。 |
| エージェント | Trading、Test、Optimization エージェント。手作業または AI Builder によるノードグラフの構築。公開パラメータと最適化。ペーパーでのバックテスト、接続済みブローカー経由のフォワード/ライブ。.qca のインポート/エクスポート。 |
| QuantCraft AI | IDE の AI チャット、モデルの接続(AI → API Providers)、スクリーナーツール、AI Tools、MCP サーバー、エージェントの AI Prompt ノード。 |
| QuantCraft Tools | AI が呼び出せる組み込みの読み取り専用マーケットツール(チャット、AI Prompt ノード、Test / Optimization エージェント)。 |
| OHLCV | バーの形(OhlcvBarView)、ローダー(接続済みブローカーと B2)、時間範囲、コールバックでのバーデータの使い方。 |
| インジケーター系列 | バックテスト結果のチャートに chart_indicator_series のオーバーレイ(ライン、ヒストグラム、ペイン)を構築する。 |
索引のカードのうち、まだ記事全文が開かないものには、UI 上で Soon と表示されます。
アプリ内ドキュメントとワークフローの関係
IDE で何かをしているときは、このクイックマップを使ってください。
| やりたいこと | まず読むもの |
|---|---|
| シンボル、日付、ファンダメンタルデータを設定してシミュレーションを実行する | ストラテジーのライフサイクル + OHLCV。続いてコードの実行(Test)とテスト結果。 |
| ポジションサイズやストップを決める、または Sharpe/ドローダウンを読む | アカウントモデル |
| コードを編集せずにユーザーがしきい値を調整できるようにする | 入力パラメータ |
| 資産チャートに独自の系列をプロットする | インジケーター系列 |
| 価格と提出書類/財務諸表を組み合わせる | ファンダメンタルデータ |
| 価格とグローバルなファクターリターンを組み合わせる | Fama-French ファクター |
| 配当/分割に反応する、または決算日の前後を避ける | カレンダーデータ — calendar コールバック引数、days_to_earnings、コーポレートアクション |
| プライマリと副時間枠を組み合わせる | OHLCV とバーデータ — Additional timeframes + rt.get_bar |
| バックテストやフォワードのダイアログ設定を再利用する | 実行プリセット(.qcs) |
| ある行で一時停止して変数を調べる | デバッグ |
| 自分のマシンでアルゴをフォワード実行する | AutoTrading |
| リモートのランナーでアルゴを実行する | QuantCloud |
| ビジュアルなノードで自動化を構築する | エージェント |
アプリ内の記事は、ストラテジー作成者と IDE ユーザー向けに書かれています。QuantCloud のサーバー運用者向けのセットアップは、この公開ドキュメントでは扱いません。
ストラテジーのインポート
すべてのインポートは quantcraft.* で書いてください。モジュール名はサフィックスなしです(たとえば quantcraft.inputs であり、quantcraft.inputs_module ではありません)。古い ide.* や quantcraft.*_module のパスも、quantcraft.backtest.*(quantcraft.process.* に改名される前のパッケージの旧名)と同様に、引き続き解決されるため、既存のストラテジーは変更なしで動き続けますが、新しいコードはそれらに対して書かないでください。
| 主要なインポート | 見かけるかもしれない古いパス | 用途 |
|---|---|---|
quantcraft.process.runtime | quantcraft.backtest.runtime, ide.backtest.runtime | account、chart_indicators、qc_fundamentals、qc_fama_french、qc_calendar、get_bar(import quantcraft.runtime as rt 経由) |
quantcraft(Timeframe) | — | rt.get_bar(Timeframe.DAILY, shift=1)(プライマリと追加の時間枠)用の時間枠の列挙型 |
quantcraft.runtime | — | quantcraft.process.runtime と同じモジュールを短く書いたもの — rt.get_bar とランタイムのハンドルには import quantcraft.runtime as rt |
quantcraft.timeframes | — | Timeframe 列挙型(from quantcraft import Timeframe でも可) |
quantcraft.inputs | ide.inputs_module, quantcraft.inputs_module | 実行ダイアログからの params |
quantcraft.process.ohlcv | quantcraft.backtest.ohlcv, ide.backtest.ohlcv_module, quantcraft.backtest.ohlcv_module | QcOhlcv、qc_ohlcv |
quantcraft.fundamentals | ide.fundamentals_module, quantcraft.fundamentals_module | QcFundamentals |
quantcraft.fama_french | ide.factors_module | QcFamaFrench、fama_french.qc |
quantcraft.account | quantcraft.process.account, quantcraft.backtest.account, ide.account_module, quantcraft.account_module | PaperAccount、OpenPosition |
quantcraft.process.indicator_series | quantcraft.backtest.indicator_series, ide.backtest.indicator_series_module, quantcraft.backtest.indicator_series_module | ChartIndicatorSeries、coerce_chart_time |
quantcraft.calendar_module | — | BacktestCalendar — カレンダーデータが有効なときに calendar コールバック引数として渡されます。カレンダーデータを参照。_module サフィックスを保持する唯一のモジュールで、quantcraft.calendar は存在しません。 |
quantcraft.cross_sectional | — | ユニバース全体のランキング/z スコア — 下記を参照 |
quantcraft.process | — | clamp_indicator_period |
より短い再エクスポートも使えます:quantcraft.indicator_series、quantcraft.account。Fama-French では、from quantcraft import fama_french を使い、コールバック内で fama_french.qc を読み取ることを推奨します。
Fama-French の行へのアクセス: dataset["rows"] はリストではなく YYYYMM → 値の dict です。.row(...) または .rows_chronological(...) を使い、latest_row(...) はフォワード実行でのみ使ってください(バックテストでは先読みになります — Fama-French ファクターを参照)。rows[0] / rows[-1] は使わないでください。
ストラテジースクリプトでは、quantcraft.b2.*(価格やファンダメンタルデータのローダーの背後にあるデータダウンロード層)や quantcraft.ai_assistant.* のような内部パッケージを使わないでください。これらはストラテジー API ではなく、内部ヘルパーです。quantcraft.process.ohlcv(ストラテジー用 OHLCV API)と quantcraft.b2.ohlcv(内部データ層)を混同しないでください。
クロスセクショナルヘルパー
quantcraft.cross_sectional には、多数のシンボルを一度に比較するためのベクトル化されたヘルパー(numpy)があります:stack_field、latest_return、latest_sma、latest_std、latest_rsi、rank、zscore、demean、winsorize、そして ColumnarBarArena。
import quantcraft.runtime as rt
import quantcraft.cross_sectional as xs
def on_bar(bar_index, bar, symbol=None):
syms, close = xs.stack_field(rt.qc_ohlcv_by_symbol, "close")
momentum = xs.latest_return(close, 20) # per-symbol 20-bar return
score = dict(zip(syms, xs.rank(momentum))) # rank in [0, 1]書かれているとおり、フォワード/バルク実行専用です。****バックテストでは、
rt.qc_ohlcv_by_symbolは各シンボルの読み込み範囲全体を保持するため、そこでの「最新」はテストの最後のバーを意味し、先読みになります。バックテストでは、実行が進む間に各シンボルのbarから終値を収集し、それらの配列をヘルパーに渡してください。
モジュールハンドルとインポート名の違い
quantcraft.process.runtime と quantcraft.fama_french はモジュールのエイリアスなので、属性アクセスはセッションごとの最新の値を読み取ります。
import quantcraft.process.runtime as rt
import quantcraft.fama_french as ff
rt.account # this run's PaperAccount
rt.chart_indicators # this run's collector
ff.qc # this run's Fama-French loaderそれ以外はすべて名前を値で再エクスポートするため、from ... import <name> はインポート時に取られたスナップショットを束縛します。
エンジンが実行ごとに割り当てるハンドルについては、エンジンがルートのアルゴファイルを読み込んだ後にそれらの名前を再束縛するため、再束縛される名前に限り、そこでは from ... import の形で安全です。
- バックテスト / Debug Test:
account、chart_indicators、get_bar、qc_ohlcv、qc_ohlcv_by_symbol、qc_ohlcv_by_tf、qc_fundamentals、qc_fama_french、qc_calendar。 - フォワード実行:
account、qc_fundamentals、qc_fama_frenchのみ — そのため、chart_indicatorsや OHLCV のハンドルにはrt.<name>を使ってください。
# Fine in the root algo file — the engine rebinds these after loading your script
from quantcraft.process.runtime import account, qc_fundamentals, qc_fama_french分割されたヘルパーモジュールは異なります。同じプロセス内で実行をまたいで sys.modules にキャッシュされ続けるため、インポートした名前は最初のインポート時に現行だったセッションのハンドルを保持し、次の実行(フォワード/バルク)では古くなります。ヘルパーモジュールでは、モジュールをインポートして属性アクセスを使ってください。
# helpers/signals.py — always read through the module
import quantcraft.process.runtime as rt
def record(sym, t, value):
rt.chart_indicators.add(...) # live handle for *this* runfrom quantcraft.inputs import params は例外です。params は実行ごとに値が変わる 1 つのライブなオブジェクトなので、from の形はどこでも安全です — 入力パラメータを参照してください。
同梱のストラテジーリファレンス(Markdown)
モジュールの動作の細部、コールバックの契約、エンジンの詳細については、製品に quantcraft-dev バンドル(概念的には「QuantCraft ストラテジーリファレンス」)として Markdown も含まれています。典型的な目次は次のようになります。
| ドキュメント | 焦点 |
|---|---|
| IMPORTS | quantcraft.* のインポートパス(quantcraft.cross_sectional を含む)、既存スクリプト向けに引き続き解決される古い ide.* / quantcraft.backtest.* パス、モジュールハンドルとインポート名の違い |
| BACKTEST_README | バックテストパッケージの概要 |
| BACKTEST_ENGINE | エンジンのオーケストレーション、設定、コールバック、結果ペイロード |
| BACKTEST_MODULE | IDE からの WebSocket バックテストのエントリーポイント |
| IDE_BACKTEST_RUNNER | Python サービスの隣にあるサブプロセスランナー |
| RUNTIME | ランタイムのグローバル:account、chart_indicators、get_bar / プライマリと追加の時間枠、セッションごとのハンドルと rt.<name> アクセス |
| INPUTS_MODULE | 実行ダイアログからの params の接続 |
| RUN_CONFIG_QCS | .qcs 実行プリセットの形式とダイアログ間のマッピング |
| ACCOUNT_MODULE | PaperAccount の取引 API、手数料/スリッページ |
| OHLCV_MODULE | QcOhlcv ローダー、コールバック内の bar、副時間枠 |
| INDICATOR_SERIES_MODULE | チャート系列のペイロードとヘルパー |
| FUNDAMENTALS_MODULE | ファンダメンタルデータの JSON の形と API |
| FAMA_FRENCH | グローバルな Fama-French ファクター / fama_french.qc / YYYYMM の行 dict |
| CALENDAR_MODULE | 配当、株式分割、決算日(calendar コールバック引数)、シミュレーションでのコーポレートアクション — ユーザー向けページはカレンダーデータ |
| DEBUGGING | Debug Run / Debug Test、ブレークポイント、コールスタック、変数 — ユーザー向けページはデバッグ |
| AUTO_TRADING | ローカルなフォワード実行(アルゴ+エージェントのバルク)と New Run ダイアログ — ユーザー向けページは AutoTrading |
| QUANT_CLOUD | クラウドランナー上のアルゴリズムのバルクフォワードジョブ — ユーザー向けページは QuantCloud |
| AGENTS | Trading / Test / Optimization エージェント、AI Builder、ペーパーでの Test と接続済みブローカーでのフォワード/ライブ — ユーザー向けページはエージェント |
| AI_ASSISTANT | IDE の AI チャット、モデルプロバイダー、スクリーナーツール、AI Tools、MCP サーバー — ユーザー向けページは QuantCraft AI |
| QUANTCRAFT_TOOLS | AI 向けの組み込み読み取り専用マーケットツール — ユーザー向けページは QuantCraft Tools |
| SCREENER | ノーコードおよび Python のスクリーン、プリセット、スクリーナー駆動の実行 — ユーザー向けページは Screener |
| POSSIBLE_ERRORS | よくあるエラーと対処法 — ユーザー向けページは考えられるエラー |
これらのファイルは、正確な名前と契約を必要とするストラテジー作成者向けです。BACKTEST_MODULE(WebSocket バックテストのエントリーポイント)や IDE_BACKTEST_RUNNER(サブプロセスランナー)のような上級トピックは、コントリビューター向けにバンドルに含まれていますが、主要なユーザー経路ではありません。IDE の QuantCraft AI にはこの資料があらかじめ読み込まれており、回答が出荷されているモジュールと整合し続けるようになっています。
QuantCraft のその他のヘルプの入口
これらは Documentation タブではありませんが、ユーザー向けの同じ「リファレンスのエコシステム」の一部です。
- QuantCraft AI — 自然言語で質問できます。回答は同じ開発用コーパスを引用できます。AI → API Providers でモデルを接続します(自分のキー、または QuantCraft Premium/ホスト型オプション)。
- インポートとエクスポート —
.py(および関連)ファイルをディスクとワークスペースの間で移動します。 - テスト結果 — バックテスト後の資産チャート、指標、取引、HTML エクスポート。
検索のヒント
- コード内に現れる短いトークンを優先してください:
on_finish、params、chart_indicator_series、coerce_chart_time、pane_id。 - 何も一致しない場合は検索をクリアしてください。索引にはセクションごとにすべてのトピックが並んでいます。
- 複数のトピックにまたがるアイデア(たとえば「ファンダメンタルデータ +
on_bar」)には、しばしば2 つの記事が必要です。データの形はファンダメンタルデータで、それがいつ利用できるかはストラテジーのライフサイクルで確認してください。
ドキュメントの履歴
アプリ内ドキュメントは、ストラテジーランタイムと並行して保守されています。Python モジュールやバックテストのペイロードが変わると、アプリ内トピックと同梱の Markdown が一緒に更新され、例や名前が同期した状態に保たれます。ストラテジーのインポート例は、一貫してサフィックスなしの quantcraft.* パスで書かれており、古い ide.*_module や quantcraft.*_module のパスは、既存スクリプトを読むための補助としてのみ記載されています。

