ドキュメント1.0 (latest)
ページリファレンス · 28 / 29

QuantCraft ドキュメントリファレンス

QuantCraft には、相互に補完する 2 種類のドキュメントが付属しています。IDE 内で読むアプリ内トピックと、API の詳細のために製品に同梱されているストラテジーリファレンスの Markdown です。これらを合わせて、ストラテジーの書き方、バックテストの実行方法、IDE の使い方を説明しています。この Web ドキュメントは、それらのトピックの多くを反映しています。まずははじめにまたは入門から始めてください。


アプリ内でドキュメントを読む場所

  1. メインアプリから QuantCraft を開きます。
  2. 右サイドバーを展開します(折りたたまれている場合)。
  3. 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、バルク/チャートジョブの監視。
QuantCloudPC の電源が切れていてもクラウドランナーで実行できるバルクフォワード(デスクトップユーザーガイド)。
エージェントTrading、Test、Optimization エージェント。手作業または AI Builder によるノードグラフの構築。公開パラメータと最適化。ペーパーでのバックテスト、接続済みブローカー経由のフォワード/ライブ。.qca のインポート/エクスポート。
QuantCraft AIIDE の AI チャット、モデルの接続(AI → API Providers)、スクリーナーツール、AI Tools、MCP サーバー、エージェントの AI Prompt ノード。
QuantCraft ToolsAI が呼び出せる組み込みの読み取り専用マーケットツール(チャット、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.runtimequantcraft.backtest.runtime, ide.backtest.runtimeaccount、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.inputside.inputs_module, quantcraft.inputs_module実行ダイアログからの params
quantcraft.process.ohlcvquantcraft.backtest.ohlcv, ide.backtest.ohlcv_module, quantcraft.backtest.ohlcv_moduleQcOhlcv、qc_ohlcv
quantcraft.fundamentalside.fundamentals_module, quantcraft.fundamentals_moduleQcFundamentals
quantcraft.fama_frenchide.factors_moduleQcFamaFrench、fama_french.qc
quantcraft.accountquantcraft.process.account, quantcraft.backtest.account, ide.account_module, quantcraft.account_modulePaperAccount、OpenPosition
quantcraft.process.indicator_seriesquantcraft.backtest.indicator_series, ide.backtest.indicator_series_module, quantcraft.backtest.indicator_series_moduleChartIndicatorSeries、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* run

from quantcraft.inputs import params は例外です。params は実行ごとに値が変わる 1 つのライブなオブジェクトなので、from の形はどこでも安全です — 入力パラメータを参照してください。


同梱のストラテジーリファレンス(Markdown)

モジュールの動作の細部、コールバックの契約、エンジンの詳細については、製品に quantcraft-dev バンドル(概念的には「QuantCraft ストラテジーリファレンス」)として Markdown も含まれています。典型的な目次は次のようになります。

ドキュメント焦点
IMPORTSquantcraft.* のインポートパス(quantcraft.cross_sectional を含む)、既存スクリプト向けに引き続き解決される古い ide.* / quantcraft.backtest.* パス、モジュールハンドルとインポート名の違い
BACKTEST_READMEバックテストパッケージの概要
BACKTEST_ENGINEエンジンのオーケストレーション、設定、コールバック、結果ペイロード
BACKTEST_MODULEIDE からの WebSocket バックテストのエントリーポイント
IDE_BACKTEST_RUNNERPython サービスの隣にあるサブプロセスランナー
RUNTIMEランタイムのグローバル:account、chart_indicators、get_bar / プライマリと追加の時間枠、セッションごとのハンドルと rt.<name> アクセス
INPUTS_MODULE実行ダイアログからの params の接続
RUN_CONFIG_QCS.qcs 実行プリセットの形式とダイアログ間のマッピング
ACCOUNT_MODULEPaperAccount の取引 API、手数料/スリッページ
OHLCV_MODULEQcOhlcv ローダー、コールバック内の bar、副時間枠
INDICATOR_SERIES_MODULEチャート系列のペイロードとヘルパー
FUNDAMENTALS_MODULEファンダメンタルデータの JSON の形と API
FAMA_FRENCHグローバルな Fama-French ファクター / fama_french.qc / YYYYMM の行 dict
CALENDAR_MODULE配当、株式分割、決算日(calendar コールバック引数)、シミュレーションでのコーポレートアクション — ユーザー向けページはカレンダーデータ
DEBUGGINGDebug Run / Debug Test、ブレークポイント、コールスタック、変数 — ユーザー向けページはデバッグ
AUTO_TRADINGローカルなフォワード実行(アルゴ+エージェントのバルク)と New Run ダイアログ — ユーザー向けページは AutoTrading
QUANT_CLOUDクラウドランナー上のアルゴリズムのバルクフォワードジョブ — ユーザー向けページは QuantCloud
AGENTSTrading / Test / Optimization エージェント、AI Builder、ペーパーでの Test と接続済みブローカーでのフォワード/ライブ — ユーザー向けページはエージェント
AI_ASSISTANTIDE の AI チャット、モデルプロバイダー、スクリーナーツール、AI Tools、MCP サーバー — ユーザー向けページは QuantCraft AI
QUANTCRAFT_TOOLSAI 向けの組み込み読み取り専用マーケットツール — ユーザー向けページは 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 のパスは、既存スクリプトを読むための補助としてのみ記載されています。

リファレンス — ドキュメント (1.0 (latest)) | QuantCraft