Canli Quant について
Canli Quantは、検索可能な235個のツールと399個の戦略スリーブを提供する、ローカル実行型のクオンツ金融MCPサーバーです。研究者やエージェント向けに、独立実装との照合を行い、計算で生じたNaNやInfinityを成功結果として扱わず拒否します。
主な機能
- 01クオンツ金融ツール235種
- 02戦略スリーブ399種
- 03ツールの検索とオンデマンド実行
- 04独立実装による照合
- 05計算で生じたNaNとInfinityの拒否
- 06ハッシュ付き計算レシート
活用シーン
- 01ポートフォリオの実績とリスク分析
- 02オプションや債券の価格評価
- 03複数試行を考慮した戦略検証
- 04市場データの注釈付けとMLラベル生成
MCP 対応
検索可能なツール、入力スキーマ、ワークフロープロンプト、カタログリソースをMCPクライアントに公開します。ローカルのstdioで動作し、ネットワーク通信を行わず、クライアント提供のデータを計算します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
3掲載時のツール一覧 · 4 日前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| limit | integer | いいえ | デフォルトは 8 です。 |
| query | string | はい | 必要な内容を平易な言葉で入力します。 |
| toolset | enum | いいえ | このツールセットのみ。performance | options | indicators | econometrics | exotics | rates | risk | returns | portfolio | execution | sizing | crypto_fx | strategies | sleeves | data_checks | labeling | tvm | valuation |
詳細
canli-quant-mcp
計算結果が NaN または Infinity の場合、該当フィールド名を示すツールエラーが返されます。 説明のない null に変わったり、成功を示すレシートが返されたりすることはありません。入力のスケールと 計算の定義域を確認してください。通常の有限な結果と、ウォームアップ期間の null の位置はそのまま保持されます。
パフォーマンスとリスク、オプションとエキゾチック商品、債券、ポートフォリオ構築、計量経済学、テクニカル指標、執行、ポジションサイジング、暗号資産と FX、 バリュエーション、戦略のバックテスト、399 種類の戦略スリーブのライブラリ、データチェック、データアノテーションと ML ラベリングに対応する 235 個の定量金融ツールを、1 つの MCP サーバーで提供します。各ツールは 送信されたデータを使って計算を行い、すべてのツールの結果はテストスイートで独立した実装(QuantLib、statsmodels、arch、TA-Lib、numpy-financial、scikit-learn、 empyrical、scipy、pandas、dcor)と照合されます。参照ケースは 465 件で、データチェックには埋め込み不具合テストもあります。
ローカル stdio で動作し、キーもアカウントもネットワーク呼び出しも不要です。データがマシンの外部に送信されることはありません(テストで強制される プライバシーを参照)。
コンテキスト内の 3 つのツール、その背後に 235 個
238 個のツールを直接一覧表示すると、リクエストごとにコンテキストを 83,944 トークン(o200k)消費します。デフォルトでは、このサーバーが一覧表示するのは 3 個で、680 トークンです。
| ツール | 機能 |
|---|---|
find_tool | 平易な言葉でカタログを検索します(「cornish fisher var」、「barrier option」、「kpss」など)。 |
describe_tool | 1 つのツールの説明と正確な入力スキーマを表示します。 |
run_tool | 名前を指定して任意のツールを実行します。receipt: true を指定すると計算レシートが追加されます。 |
find_tool は、各ツールの名前、タイトル、キーワード、説明に対して、ステミングと金融分野の略語(cvar、npv、irr、ytm など)を使った BM25 検索で順位付けします。110 件のテストリクエストでは、94% のケースで適切なツールが最上位に、99% のケースで上位 3 件以内に表示されます(test/search.test.mjs)。そのため、モデルが再検索を必要とすることはほとんどありません。run_tool では digits(有効数字 3~10 桁、デフォルトは 10)を指定して、完全な精度が不要な場合に出力トークン数を削減できます。測定した結果では、4~6 桁で 9~19% 削減されました。
Apple シリコン搭載ノート PC(Node 24)での測定値は、接続と初期化が 140 ms、stdio 経由の一般的なツール呼び出しが中央値 0.26 ms、find_tool が 1 ms、1,200 日分の 6 資産データを使う 399 スリーブの全件トーナメントが約 2 s です。
ツール一覧は起動のたびにバイト単位で同一なため、プロバイダーはキャッシュできます。ツールセットを直接一覧表示するには、CANLI_TOOLSETS にカンマ区切りのリスト(例:performance,options。performance のみでは 8,053
トークン)または all を設定します。
クイックスタート
npx -y canli-quant-mcp
Claude Code:
claude mcp add canli-quant -- npx -y canli-quant-mcp
Claude Desktop、Cursor、または任意の MCP クライアント:
{ "mcpServers": { "canli-quant": { "command": "npx", "args": ["-y", "canli-quant-mcp"] } } }
その後、たとえば次のように質問できます。
- 「私の戦略の日次リターンはこちらです。40 個のバリエーションを試しました。デフレーション補正後も優位性は残っていますか?」
- 「満期 6 か月、ストライク 100、バリア 90、ボラティリティ 25% のダウン・アンド・アウト・コールを価格評価し、バニラオプションと比較してください。」
- 「このスプレッドは平均回帰していますか?ADF、KPSS、分散比を計算してから、コストを含めてバックテストしてください。」
- 「このオプションチェーンに裁定機会がないか、サーフェスをフィッティングする前に確認してください。」
- 「全件を試した影響を補正したうえで、これらの ETF 価格で堅調な 399 種類のスリーブはどれですか?」
- 「現在の市場は平穏なレジームと乱高下するレジームのどちらにありますか?また、各レジームはどのくらい続きますか?」
ツールセット
| ツールセット | ツール | 検証対象 |
|---|---|---|
performance | 23 | numpy、scipy、statsmodels、empyrical-reloaded |
options | 12 | QuantLib(解析エンジン。アメリカンオプションには有限差分法);CBOE VIX 手法の独立実装;Breeden-Litzenberger の対数正規密度 |
indicators | 30 | TA-Lib の C ライブラリとバーごとに照合。TA-Lib にない指標には pandas |
econometrics | 27 | statsmodels(OLS、HAC、ADF、KPSS、Engle-Granger と Johansen の共和分、Granger、ARCH LM、マルコフスイッチング、逐次最小二乗法と CUSUM)、arch(GARCH、分散比)、scipy、dcor(順位相関と距離相関) |
exotics | 9 | QuantLib(バリア、アジアン、Heston、SABR、Kirk、Margrabe、ルックバック、チューザーの各エンジン) |
rates | 15 | QuantLib の債券と短期金利モデル。カーブとスワップには numpy と scipy。Merton には scipy fsolve |
risk | 7 | numpy と scipy による再導出。EVT には scipy の一般化パレート尤度 |
returns | 4 | pandas によるリサンプリングと閉形式 |
portfolio | 15 | numpy の閉形式、scipy SLSQP、scikit-learn Ledoit-Wolf、HRP 論文のコード |
execution | 7 | 閉形式(Almgren-Chriss のカッパは数値的に求解)、statsmodels OLS |
sizing | 7 | scipy と閉形式 |
crypto_fx | 9 | 閉形式とシミュレーションしたプールの準備金 |
strategies | 20 | すべてのレシピとコストを考慮したエンジンの、独立した pandas 実装 |
sleeves | 8 | すべてのレシピとエンジンの、独立した numpy・pandas 移植版。arch の Reality Check と、同じブートストラップ抽出に対する独立した再学生化 SPA および StepM。scipy の平均連結法。numpy CSCV。さらに、すべてのスリーブに対する先読みなしとウォームアップのチェック |
data_checks | 10 | 埋め込み不具合テスト:各チェックは埋め込まれた不具合を検出し、クリーンなデータでは反応しない必要があります |
labeling | 7 | Advances in Financial Machine Learning のコードスニペット(ewm ボラティリティ、CUSUM フィルター、トリプルバリア、ユニークネス、パージ付き k 分割交差検証)の pandas 移植版と statsmodels OLS の t 値 |
tvm | 15 | numpy-financial と閉形式 |
valuation | 10 | 公開済みの公式を独立して再導出 |
ワークフロー(プロンプト)
プロンプトは、よくある作業向けにツールを連携させます:analyze_strategy、audit_backtest、value_company、
price_option、test_mean_reversion、build_portfolio、analyze_trade_log、sleeve_tournament、
build_sleeve_book、label_dataset、check_dataset。
リソース:canli-quant://catalog(すべてのツール)、canli-quant://methods(各ツールセットの検証対象)、
canli-quant://tools/{name}(1 つのツールのスキーマ)、canli-quant://sleeves(スリーブライブラリ)、
canli-quant://sleeves/{id}(1 つのスリーブの仕様)、canli-quant://privacy。
スリーブライブラリ
18 ファミリーにまたがる 399 個の戦略スリーブです。それぞれ、通常のパラメーターをシンプルなグリッドで網羅した、公開済みのアイデアです。移動平均クロスオーバー、時系列モメンタム、複数期間のトレンド、チャネルブレイクアウト、MACD、z スコアと RSI による平均回帰、ボラティリティターゲティング、クロスセクショナルモメンタム、デュアルモメンタム、リスクパリティ、均等加重、最小分散、低ボラティリティ、短期リバーサル、トレンドフィルター付きアロケーション、52 週高値モメンタム、ペアトレードが含まれます。すべてのスリーブには固定ルール、明示されたウォームアップ期間、参考資料、既知のリスク、仕様の SHA-256 が定められています。バックテストの成績が良かったから選ばれたものはありません。これらは定義であり、実績ではありません。
多くの戦略を実行して最良のものを選ぶと、バックテストは過剰適合します。そのため、複数のスリーブを一度に実行するツールは、その影響を補正します。
| ツール | 確認できる内容 |
|---|---|
sleeve_tournament | お使いの価格データではどのスリーブが優位で、最良のスリーブは、すべてのスリーブと独立性の実効数を考慮したディフレート・シャープレシオ、White の Reality Check、Hansen の SPA 検定、すべてのリサンプルで再スチューデント化する Romano-Wolf StepM、バックテスト過剰適合確率(CSCV)をクリアするでしょうか? |
sleeve_walk_forward | 過去のシャープレシオに基づいて上位スリーブを選び続けていた場合、アウトオブサンプルでどれだけのリターンが得られ、そのインサンプルのシャープレシオのうちどれだけが偶然によるものでしょうか? |
sleeve_clusters | このデータでは、スリーブは実質的に何種類の異なる賭けをしているでしょうか? |
sleeve_regime_map | 落ち着いた市場、乱高下する市場、上昇市場、下落市場で、どのスリーブが持ちこたえたでしょうか? |
combine_sleeves | 選んだスリーブで構成したポートフォリオはどのようなものになり、直近の終値時点でどのような資産配分を必要とするでしょうか? |
テストでは、どのスリーブも先読みをしないこと(将来の価格を書き換えても過去のターゲットが変わらないこと)、ウォームアップ期間の前に取引しないこと、また、トーナメントの統計値が、同じブートストラップ抽出を使った arch の Reality Check と、独立して再スチューデント化した SPA および StepM、scipy のクラスタリング、独立した numpy CSCV と一致することを確認します。
run_sleeve と combine_sleeves は銘柄ごとの target_weights を返します。canli-paper-trading-mcp などのペーパーブローカーを使って、これらのウェイトに合わせてリバランスできます。
データの注釈付けと ML ラベル
labeling ツールセットは、お客様自身のデータに注釈を付け、リーケージなしで学習用ラベルを作成します。
| ツール | 機能 |
|---|---|
annotate_price_series | 各期間にタグを付けます。異常な値動き、古い価格、ドローダウンの発生、新高値、因果的なボラティリティレジームを識別します。 |
cusum_filter_events | ラベル付けに値する期間を選びます(対数価格に対する CUSUM フィルター)。 |
triple_barrier_labels | ボラティリティに合わせて調整した利益確定、損切り、時間制限のうち、最初に到達したものに基づいてラベルを付けます。サイドが指定されている場合は、メタラベルも付けます。 |
fixed_horizon_labels | 固定またはボラティリティに合わせて調整したデッドゾーンを設け、所定の期間における将来リターンに基づいてラベルを付けます。 |
trend_scanning_labels | 最も強い将来トレンドの t 統計量に基づいてラベルを付けます。 |
sample_weights | 重複するラベルに対して、独自性、リターン帰属、時間減衰のウェイトを付与します。 |
purged_cv_splits | 重複するラベルをパージし、各テスト分割の後の期間にエンバーゴを適用する K 分割の分割を作成します。 |
各ラベルには、使用した将来の期間が記録されているため、パージとエンバーゴを正確に適用できます。各手法は Lopez de Prado の Advances in Financial Machine Learning に準拠しており、コードを pandas に移植した実装と照合済みです。
プライバシー
お客様のデータはお使いのマシン上に保持されます。サーバーはローカルの stdio プロセスで、ネットワーク関連のコードはなく、ディスクへの書き込みもログの記録も行わず、プロセスも起動しません。また、引数を保持するのは呼び出し中だけです。test/privacy.test.mjs では、すべてのソースファイルを静的スキャンし、Node のパーミッションモデルのもとでサーバーを実行して、読み取りをパッケージ内に限定し、書き込み、子プロセス、ワーカーを禁止することで、この仕組みを検証します。同じ制限を適用して使用するには、次のコマンドを実行してください。
npm i -g canli-quant-mcp
node --permission --allow-fs-read="$(npm root -g)/canli-quant-mcp" "$(npm root -g)/canli-quant-mcp/src/server.mjs"
canli-quant://privacy では、サーバー内部からプライバシー保護の保証内容を確認できます。計算レシートに記録されるのはハッシュであり、データそのものではありません。
計算レシート
run_tool に receipt: true を指定すると、ツール名と引数の SHA-256、結果の SHA-256、サーバーのバージョンが返されます。同じバージョンで同じ引数を使って同じツールを実行すれば、誰でも出力ハッシュを比較できます。結果は決定論的です。時計やネットワークは使わず、唯一の乱数要素であるスリーブのブートストラップも、明示されたシードから生成されます。
規約
- リターンは単純リターンの小数表記(0.01 = 1%)で、古い順に並べます。ツールは、-100%以下のリターン、およびパーセント表記と思われる系列を受け付けません。
- 金利は年率です。オプションでは連続複利を使用し、債券利回りはクーポンの支払頻度で複利計算します。
- 結果は有効数字10桁に丸められます。
- 戦略のバックテストでは、期間 t の終値でウェイトを決定し、期間 t+1 のリターンを得ます。リバランスの間はウェイトが変動し、売買回転率に対してコストが課されます。
すべてのツール
performance:パフォーマンスとリスク(23)
| ツール | 説明 | |---|---| | `return_stats` | リターン系列を要約します。期間数、年率幾何平均リターン(CAGR)とボラティリティ、シャープレシオ、最大ドローダウン、歪度、超過尖度、最良・最悪の期間、プラスの期間の割合を示します。 | | `sharpe_ratio` | 独立同分布の正規リターンを仮定した場合(Lo 2002)と、歪度およびファットテールを考慮した場合(Mertens 2002)について、標準誤差と95%信頼区間を含む年率シャープレシオを計算します。多数の試行の中で偶然を上回る確率を調べるには、canli-validation-mcp を使用してください。 | | `sortino_ratio` | 年率ソルティノレシオを計算します。目標リターンを上回る平均リターンを、目標リターンを下回る下方偏差で割った値と、下方偏差自体を示します。 | | `max_drawdown` | 最大ドローダウンと、最悪のドローダウン期間を特定します。深さ、ピーク、トラフ、回復、期間数での長さ、および水面下の期間を示します。 | | `calmar_ratio` | カルマーレシオを計算します。系列全体の年率幾何平均リターンを、最大ドローダウンの絶対値で割った値です。 | | `omega_ratio` | しきい値におけるオメガレシオを計算します。しきい値を上回る利益の合計を、しきい値を下回る損失の合計で割った値です。 | | `value_at_risk` | バリュー・アット・リスクを正の損失率として推定します。1期間以上を対象に、ヒストリカル法、ガウス法、コーニッシュ=フィッシャー法(歪度と尖度で調整)を用います。 | | `expected_shortfall` | 期待ショートフォール(CVaR)を正の損失率として推定します。ヒストリカル法とガウス法により、バリュー・アット・リスクを超える平均損失を示します。 | | `capm_regression` | ベンチマーク超過リターンに対して超過リターンを回帰分析します。ベータ、アルファ(年率)、それぞれの t 統計量と p 値、決定係数、相関、残差(固有)ボラティリティを示します。 | | `information_ratio` | ベンチマークに対する戦略のアクティブリターン、トラッキングエラー、インフォメーションレシオを年率で計算します。 | | `treynor_ratio` | トレイナーレシオを計算します。ベンチマークに対するベータ1単位あたりの年率超過リターンです。 | | `m2_measure` | モディリアーニの M² を計算します。ベンチマークと同じボラティリティになるようレバレッジをかけた場合に戦略が得たであろうリターンと、ベンチマークとの差を示します。 | | `capture_ratios` | 上昇相場および下落相場でのキャプチャーレシオを計算します。ベンチマークの上昇期間と下落期間における戦略の年率リターンを、それぞれベンチマークのリターンと比較します。 | | `ulcer_index` | アルザ―指数(ドローダウンの二乗平均平方根)、マーティンレシオ(アルザーパフォーマンスレシオ)、ペイン指数とペインレシオ(平均ドローダウン)を計算します。 | | `drawdown_at_risk` | ドローダウン・アット・リスク(期間ごとのドローダウン分位点)と、条件付きドローダウン・アット・リスク(それを超えるドローダウンの平均)を正の割合として推定します。 | | `tail_ratio` | テールレシオ(95パーセンタイルのリターンを5パーセンタイルの絶対値で割った値)と、ラチェフレシオ(最良テールの平均を最悪テールの平均損失で割った値)を計算します。 | | `gain_to_pain` | シュワガーのゲイン・トゥ・ペインレシオを計算します。リターンの合計を、損失リターンの絶対値の合計で割った値です。 | | `trade_stats` | 決済済み取引の結果を要約します。勝率、プロフィットファクター、ペイオフレシオ、期待値、最大利益と最大損失、最長の連勝と連敗を示します。 | | `kelly_fraction` | 成長率を最大化するケリー比率を計算します。リターン系列から算出する方法(連続リターンの場合は (mean - rf) / variance)と、勝率およびペイオフオッズから算出する方法があります。ハーフ・ケリーも示します。 | | `autocorrelation` | リターン系列の系列相関を検定します。各ラグの自己相関と、p 値を含むリュング=ボックス Q 統計量を示します。 | | `normality_test` | ジャック=ベラ検定により、リターンが正規分布に従うかを検定し、歪度と超過尖度を示します。 | | `autocorrelation_adjusted_sharpe` | 系列相関を考慮してシャープレシオを年率換算します(Lo 2002)。平滑化されたリターンや自己相関のあるリターンでは、通常の sqrt(time) によるシャープレシオが過大評価されます。 | | `rolling_sharpe` | 期間を指定して、ローリング・シャープレシオを要約します。最新値、最小値、最大値、中央値、ゼロを下回るウィンドウの割合を示し、パフォーマンスが安定しているか低下しているかを確認できます。 |オプション:オプションとデリバティブ(12)
| ツール | できること | |---|---| | `black_scholes` | 配当利回りを考慮し、Black-Scholes-Merton モデルでヨーロピアンオプションの価格を算出します。デルタ、ガンマ、ベガ、セータ、ロー、バンナ、ボルガ、チャーム、スピード、および満期時にイン・ザ・マネーとなるリスク中立確率も算出します。 | | `implied_volatility` | オプション価格からヨーロピアンオプションの Black-Scholes-Merton インプライド・ボラティリティを求めます。裁定機会のない価格範囲を外れる価格は受け付けません。 | | `black76` | Black-76 モデルで先物またはフォワードのヨーロピアンオプションの価格を算出し、デルタ、ガンマ、ベガも算出します。フォワード金利のキャップ、フロア、スワップションにも使用できます。 | | `bachelier` | 負のフォワード(金利、スプレッド)も扱える Bachelier 正規モデルでヨーロピアンオプションの価格を算出し、デルタ、ガンマ、ベガも算出します。 | | `american_option` | 配当利回りを考慮し、アメリカンオプションの価格を算出します(Richardson 外挿を用いた二項 Black-Scholes モデル)。ヨーロピアン価格と早期行使プレミアムも算出します。 | | `digital_option` | Black-Scholes-Merton モデルでヨーロピアンのキャッシュ・オア・ナッシング型またはアセット・オア・ナッシング型のデジタルオプションの価格を算出し、デルタも算出します。 | | `put_call_parity` | ヨーロピアンのプットとコールのペアについて、パリティ差、インプライド・フォワード、インプライド金利と利回りの差を調べ、誤った価格設定や古い気配値を見つけます。 | | `option_strategy_payoff` | 複数レッグのオプションポジション(コール、プット、原資産)について、満期時の損益を評価します。純プレミアム、指定価格でのペイオフと損益、損益分岐点、最大利益と最大損失を算出します。 | | `option_portfolio_greeks` | 1つの原資産に対する複数のオプションポジションについて、Black-Scholes-Merton のグリークスを集計します。ネット・デルタ、ガンマ、ベガ、セータ、ロー、およびドル・デルタとドル・ガンマを算出します。 | | `volatility_conversions` | ボラティリティを期間や形式間で換算します。年率から日次、週次、月次への換算、期間中の予想変動幅、対数正規ボラティリティから近似正規(ベーシスポイント)ボラティリティへの換算を行います。 | | `vix_style_index` | CBOE 方式でオプションチェーンから VIX 方式のモデルフリー・インプライド・ボラティリティを算出します。プット・コール・パリティによるフォワードの算出、2 回連続でゼロ・ビッドとなるところまでのアウト・オブ・ザ・マネーのオプション列、満期ごとの分散、および一定満期(デフォルトは 30 日)への補間を行います。 | | `risk_neutral_density` | 行使価格ごとのコール価格から市場のリスク中立分布を復元します(Breeden-Litzenberger)。各行使価格での密度と累積確率、その平均、ボラティリティ、歪度、尖度、指定水準を超える確率、および密度が負となる行使価格(バタフライ裁定)を算出します。 |indicators:テクニカル指標(30)
| ツール | 機能 | |---|---| | `sma` | 遡及期間における終値の単純移動平均を計算します。 | | `ema` | 指数移動平均を計算します(TA-Lib と同様、単純平均を初期値として使用します)。 | | `wma` | 線形加重移動平均を計算します(最新の価格に最も大きな重みを付けます)。 | | `dema` | 二重指数移動平均(2 EMA - EMA の EMA)を計算します。EMA より遅れが少なくなります。 | | `tema` | 三重指数移動平均(3 EMA - 3 EMA2 + EMA3)を計算します。 | | `hull_moving_average` | Hull 移動平均(WMA(2 WMA(n/2) - WMA(n), sqrt n))を計算します。高速で滑らかなトレンドラインです。 | | `kama` | Kaufman 適応移動平均を計算します。トレンド時には反応が速く、ノイズが多いときには遅くなります(効率比、速い期間 2、遅い期間 30)。 | | `rsi` | Wilder 相対力指数(0~100)を計算します。70 超は買われすぎ、30 未満は売られすぎと見なされることがよくあります。 | | `macd` | MACD(短期 EMA - 長期 EMA)、シグナルライン、ヒストグラムを TA-Lib と同様に計算します。 | | `bollinger_bands` | ボリンジャーバンドを計算します。移動平均と、その上下に k 倍の母標準偏差を加えたバンドに加え、%B とバンド幅も算出します。 | | `stochastic` | スロー・ストキャスティクスを計算します。%K(高値と安値の範囲内における終値の平滑化された位置)と %D を算出します。 | | `williams_r` | Williams %R(-100~0)を計算します。直近の高値と安値の範囲内における終値の位置を示します。 | | `cci` | 商品チャネル指数を計算します。平均絶対偏差を単位として、代表価格が平均からどれだけ離れているかを示します。 | | `atr` | Wilder 平均真幅と、価格に対する割合(NATR)を計算します。損切り幅やポジションサイズの決定に使われる標準的なボラティリティ指標です。 | | `adx` | +DI と -DI を含む Wilder ADX のトレンド強度を計算します(TA-Lib の平滑化を使用)。ADX が 25 を超えると、通常はトレンド相場と見なされます。 | | `obv` | オンバランスボリュームを計算します。終値の方向に応じて符号を付けた出来高の累積値です。 | | `money_flow_index` | 代表価格と出来高から、マネーフロー指数(出来高加重 RSI、0~100)を計算します。 | | `rate_of_change` | 変化率(n 本分のバーにおける変化率)とモメンタム(n 本分のバーにおける価格差)を計算します。 | | `trix` | TRIX を計算します。三重平滑化した EMA の 1 本分のバーにおける変化率で、ノイズを除いたモメンタム・オシレーターです。 | | `aroon` | Aroon アップとダウン(0~100:最高値と最安値がいつ記録されたか)および Aroon オシレーターを計算します。 | | `chande_momentum` | Chande モメンタム・オシレーター(-100~100)を、TA-Lib と同様に Wilder 平滑化で計算します。 | | `ultimate_oscillator` | Williams アルティメット・オシレーターを計算します。3 つの期間(デフォルトは 7、14、28)における買い圧力を組み合わせます。 | | `accumulation_distribution` | Chaikin 蓄積/分配ラインと Chaikin オシレーター(ラインの短期 EMA - 長期 EMA)を計算します。 | | `donchian_channels` | ドンチャン・チャネルを計算します。遡及期間における最高値と最安値、およびその中間値を算出します(ブレイクアウト戦略向け)。 | | `keltner_channels` | ケルトナー・チャネルを計算します。終値の EMA と、その上下に ATR の倍数を加えたバンドを算出します。 | | `vwap` | 代表価格から累積出来高加重平均価格を計算するか、期間を指定してローリング VWAP を計算します。 | | `ichimoku_cloud` | 一目均衡表の各線を計算します。転換線(tenkan)、基準線(kijun)、先行スパン A と B(前方にずらさず、計算したバーに表示)、遅行スパンを算出します。 | | `rolling_zscore` | 各価格について、ローリング平均と標本標準偏差に対する Z スコアを計算します。平均回帰シグナルの基本指標です。 | | `stochastic_rsi` | ストキャスティクス RSI を計算します。直近の RSI の範囲内における RSI の位置(%K。デフォルトでは TA-Lib と同様に平滑化なし)と、その移動平均 %D を算出します。 | | `parabolic_sar` | トレンド方向を含む Wilder パラボリック SAR のトレーリングストップを計算します(デフォルトでは加速係数 0.02、ステップ 0.02、最大 0.2)。 |econometrics:統計と計量経済学(27)
| ツール | 機能 | |---|---| | `linear_regression` | 複数の説明変数を用いて y の通常最小二乗法による回帰を行い、古典的標準誤差、異分散頑健標準誤差(HC1)、または Newey-West HAC 標準誤差、R 二乗、F 検定、AIC を算出します。 | | `factor_regression` | 戦略の超過リターンをファクターリターン(例:Fama-French の市場、サイズ、バリュー、モメンタム)に対して回帰し、Newey-West 標準誤差を用いて年率換算アルファ、その t 統計量、ファクターベータ、R 二乗を算出します。 | | `adf_test` | 拡張 Dickey-Fuller 検定により、価格、スプレッド、または金利系列の単位根(非定常性)を検定します。統計量、MacKinnon の p 値、臨界値、AIC で選択されたラグを算出します。 | | `kpss_test` | KPSS 検定(Hobijn ラグ規則)により、系列が水準定常またはトレンド定常であるという帰無仮説を検定し、ADF を補完します。p 値は 0.01~0.10 の範囲で表から補間されます。 | | `variance_ratio_test` | Lo-MacKinlay 分散比検定により、1 つ以上の期間で価格のランダムウォーク仮説を検定します(重複あり、バイアス補正済み、異分散頑健)。1 を上回るとトレンド、下回ると平均回帰を示します。 | | `cointegration_test` | 2 つ以上の価格系列が共和分しているかを検定します(Engle-Granger)。ヘッジ比率、残差スプレッドに対する ADF 検定(MacKinnon の p 値と臨界値を含む)、スプレッドの半減期を算出します。 | | `mean_reversion_fit` | スプレッドまたは価格系列に AR(1)/Ornstein-Uhlenbeck モデルを当てはめ、半減期、平均、平均回帰速度、均衡ボラティリティ、現在の z スコアを算出します。 | | `garch_volatility` | 最尤法により、平均一定の GARCH(1,1) モデルを当てはめます。オメガ、アルファ、ベータ、持続性、長期ボラティリティ、ボラティリティの半減期、次期のボラティリティ予測を算出します。 | | `ewma_volatility` | 指数加重ボラティリティ(デフォルトでは RiskMetrics、lambda 0.94)を算出します。現在の年率換算値と、必要に応じて全系列を返します。 | | `range_volatility` | 始値、高値、安値、終値から、終値間、Parkinson、Garman-Klass、Rogers-Satchell、Yang-Zhang の各推定量を用いてボラティリティを推定し、年率換算します。 | | `probabilistic_sharpe_ratio` | Bailey と López de Prado の手法により、トラックレコードの長さ、歪度、尖度を踏まえて、真のシャープレシオがベンチマークを上回る確率と、必要な最小トラックレコード長を算出します。 | | `deflated_sharpe_ratio` | Bailey と López de Prado(2014)の手法により、試した戦略の数を考慮してバックテストのシャープレシオを補正し、帰無仮説の下で期待される最大シャープレシオと、結果がそれを上回る確率を算出します。 | | `pca_factors` | 資産リターンに主成分分析(相関または共分散)を実行し、各成分の説明分散、累積寄与率、各成分の負荷量を算出します。 | | `rolling_beta` | ベンチマークに対するリターンの移動ウィンドウベータ(および相関)を算出します。最新値、平均、最小値、最大値と、必要に応じて全系列を返します。 | | `granger_causality` | x の過去の値が、y 自身の過去の値を超えて y の予測に役立つか(Granger 因果性)を検定します。最大ラグまで各ラグの F 検定を行います。 | | `arch_effects_test` | Engle の ARCH ラグランジュ乗数検定により、平均を差し引いたリターンのボラティリティ・クラスタリングを検定します。LM 統計量、カイ二乗 p 値、F 検定版を算出します。 | | `mean_return_test` | 1 標本 t 検定と、自己相関に頑健な Newey-West t 統計量により、戦略の平均リターンがゼロ(または目標値)と異なるかを検定します。 | | `compare_sharpe_ratios` | 同じ期間のリターンを用いて、Jobson-Korkie 検定(Memmel 補正付き)により、2 つの戦略のシャープレシオが異なるかを検定します。 | | `welch_t_test` | 2 つの標本(例:異なるレジームのリターン、変化の前後)の平均が異なるかを、等分散を仮定せずに(Welch の検定で)検定します。 | | `markov_regime_switching` | 最尤法により、各レジームに平均とボラティリティを持つ Hamilton マルコフ切替モデル(2 または 3 レジーム)を当てはめます。レジームごとの平均とボラティリティ、遷移確率、期待継続期間、現在のレジーム確率、各レジームで過ごした時間の割合を算出します。 | | `johansen_cointegration` | Osterwald-Lenum 臨界値を用いた Johansen トレース検定と最大固有値検定により、複数の価格系列を結び付ける共和分関係の数を検定します。5% 水準で共和分ランクを選択し、正規化された共和分ベクトルを算出します。 | | `recursive_stability_test` | 回帰係数が時間の経過とともに安定していたかを確認します。再帰最小二乗法による係数の推移と、5% 境界を用いた Brown、Durbin、Evans の CUSUM 検定および CUSUM 二乗検定を行い、それぞれが最初に境界を越える期間を示します。 | | `chow_break_test` | 既知の期間における回帰の構造変化を検定します(Chow F 検定)。または、トリミング範囲内の各候補変化点を調べ、最大の F 統計量とその発生箇所を示します。 | | `har_rv_forecast` | Corsi の異質自己回帰(HAR)モデルを実現分散の日次、週次、月次平均に当てはめ、Newey-West 標準誤差を用いて、次の期間の分散とボラティリティを予測します。 | | `realized_volatility_measures` | 日ごとの日中リターンから、実現分散、バイパワー変動、ジャンプ成分、Barndorff-Nielsen-Shephard ジャンプ検定(トライパワー・クォータシス)、実現セミバリアンス、実現歪度と実現尖度、および HAR 予測用の日次系列を算出します。 | | `dependence_measures` | 2 つの系列の連動性を測定します。p 値付きの Pearson、Spearman、Kendall 相関、距離相関(非線形依存を検出)、実証的な下側および上側のテール依存度(同時に急落するか)を算出します。 | | `bootstrap_confidence_interval` | 定常ブロック・ブートストラップにより、パフォーマンス統計量(シャープ、ソルティノ、CAGR、ボラティリティ、最大ドローダウン、カルマー、平均)の信頼区間を算出します。自己相関とボラティリティ・クラスタリングを保持し、ブートストラップ標準誤差と、ゼロ以下となる再標本化結果の割合も返します。 |exotics:エキゾチックオプションとボラティリティモデル(9)
| tool | 概要 |
|---|---|
barrier_option | 継続的に監視される単一バリアオプション(ダウン/アップ、イン/アウト、コール/プット、リベート付き)を、閉形式(Reiner-Rubinstein)で価格付けします。バニラオプションの価格とバリア割引率も算出します。 |
asian_option_geometric | 継続的に平均化される幾何平均価格アジアンオプションを、閉形式(Kemna-Vorst)で価格付けします。算術平均アジアンオプションの下限および制御変数として利用できます。 |
heston_option | Heston 確率的ボラティリティモデルに基づくヨーロピアンオプションを、特性関数のフーリエ積分によって価格付けします。デルタ、イン・ザ・マネー確率、Feller 条件も算出します。 |
sabr_volatility | alpha、beta、nu、rho に基づき、SABR モデル(Hagan et al. 2002)における行使価格の Black インプライドボラティリティを算出します。オプションで複数の行使価格を指定してスマイルを計算できます。 |
spread_option | 2 つの先物(F1 - F2 - K)のスプレッドを対象とするヨーロピアンオプションを、Kirk の近似式で価格付けします。クラックスプレッドやスパークスプレッドに使われます。 |
exchange_option | 一方の資産をもう一方の資産と交換するオプション(max(Q1 S1 - Q2 S2, 0))を、閉形式(Margrabe)で価格付けします。両資産の配当利回りも指定できます。 |
lookback_option | 継続的に監視される変動行使価格のルックバックオプション(Goldman-Sosin-Gatto)を価格付けします。コールは最終価格から最小価格を差し引いた額、プットは最終価格を最大価格から差し引いた額を支払います。 |
chooser_option | 保有者が選択日に、同じ行使価格と満期日のコールまたはプットを選べるシンプルなチューザーオプション(Rubinstein)を価格付けします。 |
jump_diffusion_option | Merton のジャンプ拡散モデル(対数正規ジャンプ)に基づくヨーロピアンオプションを、Black-Scholes 価格のポアソン加重和として価格付けします。 |
rates:債券と金利(15)
| ツール | 機能 | |---|---| | `bond_price` | 実際の日付と日数計算基準に基づき、利回りから固定利付債を評価します。クリーン価格とダーティ価格、経過利息、マコーレー・デュレーションと修正デュレーション、コンベクシティ、DV01を算出します。 | | `bond_yield` | クリーン価格から固定利付債の最終利回りを求め、その利回りにおけるデュレーション、コンベクシティ、DV01を算出します。 | | `zero_coupon_bond` | 年1回、期間ごと、または連続複利のもとで、利回りからゼロクーポン債を評価するか、価格から利回りを求め、デュレーションとコンベクシティを算出します。 | | `bootstrap_zero_curve` | パー利回りをクーポンのグリッドに線形補間し、割引係数、ゼロレート(連続複利および期間複利)、期間フォワードレートをブートストラップします。 | | `forward_rate` | 連続複利、期間複利、または単利のもとで、2つの満期のゼロレートが示すフォワードレートを計算し、フォワード割引係数も算出します。 | | `nelson_siegel_fit` | 最小二乗法で、観測利回りにネルソン・シーゲル曲線(レベル、傾き、曲率、減衰 tau)をフィッティングし、フィッティング後の利回りとRMSEを算出します。tauが指定されていない場合は探索します。 | | `interest_rate_swap` | ゼロカーブ(単一カーブ)を用いて、スポットスタートの固定金利・変動金利スワップを評価します。パースワップレート、固定金利支払者にとっての価値、固定レッグの年金係数、DV01を算出します。 | | `forward_rate_agreement` | ゼロカーブを用いて金利先渡契約を評価します。期間の単利フォワードレートと、固定金利を支払う当事者にとっての価値を算出します。 | | `z_spread` | 固定利付債のZスプレッドを求めます。連続複利のゼロカーブに上乗せする一定のスプレッドでキャッシュフローを再評価し、市場のダーティ価格に一致させます。 | | `credit_hazard_rate` | 信用スプレッドと回収率から一定のハザード率(クレジット・トライアングル)、期間内の生存確率とデフォルト確率を算出し、逆算も行います。 | | `short_rate_bond_price` | VasicekまたはCox-Ingersoll-Ross短期金利モデルの閉形式を用いて、ゼロクーポン債の価格と利回りを算出します。 | | `treasury_bill_yields` | Tビルの価格または銀行割引率を、割引利回り、債券換算(投資)利回り、短期金融市場利回り、実効年利に換算します。 | | `key_rate_durations` | ゼロカーブの各ピラーに対する固定利付債の感応度を測定します。1つのピラーを1 bp変動させ(三角形状の変動で、間は線形)、再評価することで、並行変動の数値と合計が一致するキー・レートDV01およびデュレーションを算出します。 | | `breakeven_inflation` | 同じ満期の名目利回りと実質(インフレ連動)利回りから、損益分岐インフレ率を厳密な方法(フィッシャー式)と近似的な方法で計算し、インフレ見通しから導かれる実質利回りも算出します。 | | `merton_credit_risk` | マートン・モデル(株式を資産に対するコールとして扱う)を用いて、株式価値と株式ボラティリティから企業の資産価値と資産ボラティリティを逆算し、デフォルトまでの距離、デフォルト確率、インプライド信用スプレッド、負債価値を算出します。 |リスク:ポートフォリオのリスクとストレス(7)
| ツール | 機能 | |---|---| | `portfolio_var` | 資産リターンの履歴に基づいて、ポジションで構成されるポートフォリオの過去およびパラメトリック(正規分布)によるバリュー・アット・リスクと期待ショートフォールを計算し、各ポジションの寄与度と分散効果も示します。 | | `stress_test` | 名前付きシナリオ(ポジションごとのリターンショック、または各ポジションのベータを通じて適用する市場ショック)をポートフォリオに適用し、各シナリオの損益と最も影響の大きいポジションを報告します。 | | `option_scenario_grid` | 欧州型オプションと株式のポートフォリオを、スポット価格の変動とボラティリティの変化のグリッドにわたって再評価します(完全なブラック・ショールズ再評価)。各セルの損益と、ポートフォリオの現在のグリークスを示します。 | | `exposure_and_hedge` | ロング/ショートのポートフォリオのグロス、ネット、ベータ調整後のエクスポージャーを集計し、ベータを中立化する指数ヘッジ(先物契約またはETFの株式数)を算出します。 | | `concentration_metrics` | ハーフィンダール指数、実効ポジション数、最大および上位k件の比率、ウェイトのジニ係数を用いて、ポートフォリオの集中度を測定します。 | | `liquidation_horizon` | 平均日次出来高に対する最大割合を基に、各ポジションの解消にかかる日数と、1日、5日、20日以内に解消できるポートフォリオの割合を推定します。 | | `extreme_value_tail` | 極値理論を用いて損失のテールをモデル化します。高い閾値を超える損失(閾値超過法)に一般化パレート分布を当てはめ、テール指数のヒル推定値とともに、テールのかなり深い領域におけるバリュー・アット・リスクと期待ショートフォールを推定します。 |returns:リターンの変換とアトリビューション(4)
| ツール | 機能 |
|---|---|
convert_returns | 価格、単純リターン、対数リターンの間で変換するか、価格系列の開始値を100にリベースし、変換後の系列を返します。 |
resample_returns | 日付に基づき、期間リターンを暦週(ISO)、月、四半期、年単位で複利計算します。 |
monthly_returns_table | 期間リターンと日付から年別・月別のリターン表を作成します。各年の複利リターン、最良および最悪の月、プラスリターンとなった月の割合も示します。 |
brinson_attribution | ポートフォリオとベンチマークのウェイトおよびリターンから、セグメントごとのアクティブリターンを配分、選択、交互作用の効果に分解します(ブリンソン・ファクラー方式)。 |
portfolio:ポートフォリオの構築とリスク(15)
| ツール | 機能 | |---|---| | `portfolio_risk` | ポートフォリオのボラティリティを各資産のリスク寄与度に分解します。限界リスク、分散効果比率、有効資産数、パラメトリック VaR、ベンチマークに対する事前トラッキングエラーも算出します。 | | `min_variance_portfolio` | 完全投資の最小分散ポートフォリオを求めます。ロングオンリーの場合は任意のウェイト上限付き(厳密なアクティブセット解)、制約なしの場合は閉形式で計算します。 | | `max_sharpe_portfolio` | シャープレシオが最大のポートフォリオを求めます。ロングオンリー(厳密解)または制約なし(閉形式の接点ポートフォリオ)で計算し、期待リターン、ボラティリティ、シャープレシオを返します。 | | `mean_variance_portfolio` | 目標期待リターンを達成する最小分散ポートフォリオ、またはリスク回避度に応じて効用を最大化するポートフォリオを、ロングオンリーまたは制約なしで求めます。 | | `risk_parity_portfolio` | すべての資産がポートフォリオのボラティリティに均等(または指定された予算比率)に寄与するロングオンリーのウェイトを、ニュートン法で求めます。 | | `inverse_volatility_weights` | 資産のボラティリティ(または分散)の逆数に比例してウェイトを設定する、シンプルなリスク均衡化ヒューリスティックです。 | | `hierarchical_risk_parity` | López de Prado の階層的リスク・パリティで配分します。相関距離に基づく単連結クラスタリング、準対角化による並べ替え、再帰的二分法を使用します。 | | `efficient_frontier` | 効率的フロンティアをたどります。最小分散ポートフォリオからリターンが最も高い資産まで、等間隔に設定した目標リターンごとの最小ボラティリティとウェイトを算出します。 | | `black_litterman` | 市場から推定される均衡リターンと、確信度を指定した絶対または相対的な見通しを組み合わせ、Black-Litterman の事後リターンと制約なしの最適ウェイトを算出します。 | | `covariance_shrinkage` | Ledoit-Wolf 収縮により、スケール調整した単位行列に向けて共分散行列を縮小し、条件の良い行列を推定します。収縮強度と、収縮前後の条件数も返します。 | | `correlation_matrix` | 資産間の Pearson 相関または Spearman 順位相関を計算します。平均ペアワイズ相関と、最大固有値の寄与率(単一の因子が全体に及ぼす影響の大きさ)も算出します。 | | `rebalance_trades` | 現在の保有資産と目標ウェイトから、ポートフォリオのリバランスに必要な売買株数を算出します。売買回転率、任意の売買抑制バンド、残余現金も返します。 | | `kelly_portfolio` | 資産全体の成長最適(ケリー)ウェイトを計算します。超過リターンに逆共分散行列を掛けて算出し、ハーフケリー、推定レバレッジ、成長率も返します。 | | `max_diversification_portfolio` | 分散効果比率(加重平均ボラティリティをポートフォリオのボラティリティで割った値)が最大となるロングオンリーのポートフォリオを求めます。Choueifaty と Coignard による最も分散効果の高いポートフォリオです。 | | `index_tracking_portfolio` | ベンチマークのウェイトに対する事前トラッキングエラーを最小化する、資産のサブセットにおけるロングオンリーのウェイトを求めます。資産ごとの上限も指定できます。 |execution:執行と市場マイクロストラクチャー(7)
| ツール | 機能 | |---|---| | `almgren_chriss_schedule` | ブロック注文のAlmgren-Chriss最適清算スケジュールを計算します。期間ごとの保有量と取引量、指定したリスク回避度における予想インパクトコストとその標準偏差を算出します。 | | `market_impact_estimate` | 平方根インパクト則(コスト = Y x ボラティリティ x sqrt(注文量 / 1日の出来高))に半分のスプレッドを加え、注文コストをベーシスポイントと通貨単位で推定します。 | | `implementation_shortfall` | 約定した注文の意思決定価格に対する実行ショートフォールを測定し、遅延、執行(インパクト)、未約定株の機会費用、手数料に分解します。 | | `execution_schedule` | 注文を時間枠ごとに均等(TWAP)または予想出来高プロファイル(VWAP)に基づいて分割します。最大参加率を上限とし、期間内に執行できない分も示します。 | | `spread_estimators` | 気配値がない場合に、取引価格のみ(Roll 1984)または日次高値と安値(Corwin-Schultz 2012)から実効ビッド・アスク・スプレッドを推定します。 | | `liquidity_measures` | 取引単位あたりの価格インパクトを測定します。Amihudの非流動性(取引通貨あたりの \|リターン\|)とKyleのラムダ(回帰による符号付き出来高あたりの価格変動)を算出します。 | | `order_book_analysis` | オーダーブックのスナップショットを分析します。ミッド価格、スプレッド、マイクロプライス、板の不均衡、指定サイズの成行注文が板をたどる際の平均約定価格とスリッページを算出します。 |sizing:ポジションサイジングと取引リスク(7)
| ツール | 機能 |
|---|---|
position_size_from_stop | ストップに到達した際の損失が資本の一定割合になるように取引サイズを決定します。株数、想定元本、リスク資本、レバレッジを算出し、必要に応じて最大ポジション比率で上限を設定します。 |
volatility_target_size | ポジションを調整し、予想ボラティリティを目標値に合わせます。資産のボラティリティからウェイト(レバレッジ)を算出し、指定資本に対する株数も計算します。必要に応じて上限を設定できます。 |
optimal_f | 取引結果のリストをもとに、取引ごとにリスクにさらす最大損失の割合 f を求め、最終資産を最大化します(Vinceのoptimal f)。幾何平均と、fに基づくポジションサイズも算出します。 |
trade_expectancy | 取引ルールのコスト控除後の1取引あたり期待値、ペイオフに対する損益分岐勝率、およびその勝率で必要なペイオフを計算します。 |
drawdown_probability | 指定されたリターンとボラティリティを持つ戦略について、開始時の資本を指定割合だけ下回る確率を推定します(ドリフト付きブラウン運動、連続時間)。指定期間内に下回る確率も算出します。 |
leverage_and_margin | レバレッジを利用したポジションのレバレッジ、当初証拠金、維持証拠金、余剰証拠金、および追証が発生する不利な価格変動を計算します。 |
var_position_limit | 資産のボラティリティをもとに、1日(またはn日)のパラメトリック・バリュー・アット・リスクが予算内に収まる最大ポジションを求めます。 |
crypto_fx:暗号資産とFX(9)
| ツール | 説明 | |---|---| | `funding_rate_carry` | 無期限先物の資金調達率を年率換算(単利APRと複利APY)し、保有期間中にポジションが支払う、または受け取る資金調達額を計算します。単一のレートまたは履歴を指定できます。 | | `futures_basis` | 現物価格に対する満期付き先物のベーシス、年率換算したキャリー(単利・複利)、およびインプライド調達金利を計算し、キャッシュ・アンド・キャリー取引に利用します。 | | `liquidation_price` | 分離マージンにおけるレバレッジポジションの清算価格を推定します。初期証拠金は1/レバレッジで、エクイティが維持率まで低下すると清算されます(取引所の計算式では手数料や階層が加味されます)。 | | `fx_forward` | スポットレートと2通貨の短期金融市場金利から、FXフォワードをプライシングします(カバード金利平価、ACT/360またはACT/365)。ピップ単位のフォワードポイントも計算でき、提示フォワードレートからインプライド金利を逆算することもできます。 | | `fx_cross_rate` | 共通通貨に対する2つのレート(例:EURUSDとUSDJPYからのEURJPY)からクロスレートのビッドとアスクを算出し、各レッグの提示方向を考慮します。 | | `triangular_arbitrage` | スプレッドと手数料を考慮し、3つの通貨(または暗号資産)のレートに三角裁定機会があるかを確認します。三角形を一周する各方向のリターンを計算します。 | | `pip_value` | 口座通貨での1ピップの価値をロットサイズごとに計算し、ピップ単位のストップ幅で指定金額をリスクにさらす場合のロットサイズも算出します。 | | `carry_trade_return` | キャリートレードのリターンを金利差とスポット変動に分解し、高金利通貨の損益分岐となる下落率を算出します。 | | `impermanent_loss` | 価格変動に基づき、定積プールまたは集中流動性レンジ(Uniswap v3形式)における流動性ポジションのインパーマネントロス(乖離損失)を、保有し続けた場合と比較して計算します。 |strategies:戦略バックテスト(20)
| ツール | 機能 | |---|---| | `backtest_ma_crossover` | コストと先読みなしの条件で、価格に対する短期・長期移動平均線のクロスオーバーをバックテストします。CAGR、シャープレシオ、ドローダウン、売買回転率、コストによるパフォーマンス低下を算出し、比較用のバイ・アンド・ホールドも示します。 | | `backtest_time_series_momentum` | 時系列(絶対)モメンタムをバックテストします。過去のリターンがプラスのときに資産を保有し、オプションでボラティリティを目標値に調整します。コストを考慮し、先読みはありません。 | | `backtest_breakout` | コストと先読みなしの条件で、ドンチャン・チャネル・ブレイクアウト(高値更新時にエントリーし、より短期の安値で決済するタートル流の手法)をバックテストします。 | | `backtest_zscore_reversion` | 価格のローリングZスコアを使った平均回帰をバックテストします。大きく下落したときに買い(大きく上昇したときに売り)、平均付近で決済し、コストを考慮します。 | | `backtest_rsi_reversion` | 古典的なRSI売られすぎ戦略をバックテストします。RSIがしきい値を下回ったときに買い、回復したときに売ります。コストを考慮し、先読みはありません。 | | `backtest_volatility_target` | 直近の実現ボラティリティを使い、レバレッジ上限とリバランス頻度を設定して、資産を一定のボラティリティ目標に合わせて保有する戦略をバックテストします。 | | `backtest_cross_sectional_momentum` | ユニバース内の横断的(相対)モメンタムをバックテストします。定期的に過去のリターン(直近1か月を除く)上位の資産を保有し、オプションで下位の資産をショートします。 | | `backtest_dual_momentum` | デュアルモメンタム(Antonacci)をバックテストします。現金または安全資産を上回る場合は最もパフォーマンスの高いリスク資産を保有し、それ以外の場合は安全資産に移します。 | | `backtest_risk_parity_rebalance` | 複数資産の逆ボラティリティ(単純なリスクパリティ)ポートフォリオを定期的にリバランスする戦略をバックテストします。オプションでボラティリティ目標に合わせて調整します。 | | `backtest_trend_ensemble` | 複数の期間にわたるトレンドシグナルをバックテストします。複数のルックバック期間における時系列モメンタムの符号を平均し、オプションでボラティリティを目標値に調整します。コストを考慮し、先読みはありません。 | | `backtest_macd_trend` | コストと先読みなしの条件で、MACDラインとシグナルラインを比較する戦略(上回る場合はロング、下回る場合はポジションなしまたはショート)をバックテストします。 | | `backtest_equal_weight_rebalance` | 固定スケジュールでユニバース内の資産を等ウェイトにリバランスする戦略をバックテストします。最適化ポートフォリオが上回るべき1/Nベンチマークです。 | | `backtest_min_variance_rebalance` | 固定スケジュールで過去の標本共分散から再推定する、ロングのみの最小分散ポートフォリオをバックテストします。コストを考慮します。 | | `backtest_low_volatility` | ユニバース内でボラティリティが最も低い資産群を保有し、スケジュールに沿って再順位付けする戦略をバックテストします。コストを考慮し、先読みはありません。 | | `backtest_short_term_reversal` | ユニバース内で直近の下落が最も大きい資産を買い(オプションで上昇が最も大きい資産をショートし)、スケジュールに沿って再順位付けする戦略をバックテストします。コストを考慮します。 | | `backtest_trend_filter_allocation` | 各資産が移動平均線を上回っている間のみ保有する、戦術的資産配分(Faber流)をバックテストします。等ウェイトまたは逆ボラティリティで加重します。 | | `backtest_high_proximity` | 直近高値に最も近い価格で取引されている資産(George-Hwangの52週高値モメンタム)を保有し、スケジュールに沿って再順位付けする戦略をバックテストします。 | | `backtest_pairs_trading` | 2つの価格系列を使ったペアトレードをバックテストします。ローリング・ヘッジ比率、残差スプレッドのZスコア、市場中立のエントリーと決済を用い、コストを考慮します。 | | `backtest_weights` | 期間ごとの目標ウェイト(各終値で決定し、次の期間に適用)を指定して任意の戦略をバックテストします。同じコスト考慮・ドリフト対応エンジンを使い、nullの行は保有継続を意味します。 | | `strategy_sweep` | 1つの戦略レシピをパラメーターグリッド(最大400パターン)で実行し、シャープレシオで順位付けします。試行回数を考慮して最良のパターンを補正するため、調整による偶然の成果を実力と見なすことはできません。 |sleeves:戦略スリーブライブラリ(8)
| tool | 内容 | |---|---| | `list_sleeves` | 399 個の事前定義済み戦略スリーブ(18 のファミリー:トレンド、モメンタム、平均回帰、ボラティリティ、アロケーション、ペア)を閲覧します。それぞれは仕様ハッシュを持つ固定ルールです。ファミリー、データ形状、またはキーワードで絞り込めます。 | | `describe_sleeve` | 1 つのスリーブについて、正確なルール、パラメーター、ウォームアップ期間、根拠、公開されている参考文献、既知のリスク、仕様の SHA-256 を確認します。 | | `run_sleeve` | ライブラリー内のスリーブ 1 つを、コストを考慮し、先読みなしで価格データに対してバックテストします。CAGR、シャープレシオ、ドローダウン、売買回転率、コストによるパフォーマンス低下、最新終値時点の目標ウェイト(ペーパーベースのリバランスにすぐ使えます)を算出します。 | | `sleeve_tournament` | 価格データに適合するライブラリー内のすべてのスリーブ(最大 399 個)を共通の期間で実行して順位付けし、さらに探索によるバイアスを補正します。ベンチマークに対する、デフレーテッド・シャープレシオ(試行回数の実数値と実効値)、White の Reality Check、再スチューデント化 Hansen SPA、Romano-Wolf StepM、バックテスト過剰適合確率(CSCV)を算出します。 | | `sleeve_walk_forward` | 選択プロセス自体をテストします。各再適合時に、直近のシャープレシオが最も高いスリーブを選び、次の期間保有する処理を繰り返します。アウト・オブ・サンプルの結果を、選択したスリーブのイン・サンプルでの成績、すべてのスリーブを保有した場合、ベンチマークと比較します。 | | `combine_sleeves` | 選択したスリーブを(均等、または先行期間の逆ボラティリティ・ウェイトで、先読みなしに)組み合わせて 1 つのポートフォリオにします。その統計値、各スリーブの統計値、相関、分散投資比率、最新終値時点のポートフォリオ全体の資産目標ウェイトを確認できます。 | | `sleeve_clusters` | 価格データに対して実行されたスリーブを、リターン相関(sqrt((1 - rho) / 2) による平均リンケージ法)でグループ化します。このデータでライブラリーが実質的に異なる賭けをいくつ行っているか、各グループで最良のスリーブはどれかを確認できます。 | | `sleeve_regime_map` | 価格データに適合するすべてのスリーブを、ベンチマークの各レジームで評価します。レジームは、ボラティリティが低い・通常・高い状態(直近のボラティリティの三分位)と、上昇・下降トレンド(移動平均を上回る・下回る)です。すべてのレジームで持ちこたえたスリーブを見つけます。 |data_checks:データ品質チェック(10)
| ツール | 機能 | |---|---| | `check_price_series` | 使用前に価格系列のエラーを確認します。ゼロ以下または欠損値、未調整の株式分割、外れ値となるリターン、古いデータの連続区間、重複したタイムスタンプ、順序が不正なタイムスタンプ、間隔の空いたタイムスタンプを検出します。 | | `check_ohlc_bars` | 始値・高値・安値・終値・出来高のバーに、実現不可能な値がないか確認します。始値・終値を下回る高値、それらを上回る安値、負の出来高、値幅がゼロのバー、極端な夜間ギャップを検出します。 | | `check_option_chain` | オプションチェーンの単一期限を確認します。クロスした、または負の気配値、無裁定条件の範囲外にある価格、権利行使価格に対して単調または凸でない価格、プット・コール・パリティの崩れ、インプライド・ボラティリティを算出できない気配値を検出します。 | | `check_yield_curve` | ゼロクーポンカーブの問題を確認します。順序が不正な残存期間、満期に伴って上昇する割引係数、負または急変するインプライド・フォワードレート、隣接する点から大きく離れた屈曲を検出します。 | | `check_funding_rates` | 無期限先物の資金調達率の履歴を確認します。不規則な間隔、取引所の上限を超えるレート、外れ値、長く続く一方向の偏りを検出し、年率換算した範囲も示します。 | | `check_cross_venue_prices` | 同じ時刻における、同一銘柄の取引所間の価格を比較します。各取引所の価格と取引所間の中央値との差、更新が止まっている取引所、乖離が最も大きいケースを検出します。 | | `check_timestamps` | タイムスタンプ列を確認します。解析不能な値、重複、順序が不正な行、タイムゾーンオフセットの混在、未来の日付、週末のエントリーを検出し、間隔の分布も示します。 | | `check_returns_series` | リターン系列によくある誤りを確認します。分率ではなくパーセントでの記録、-100%を下回る実現不可能な単純リターン、一定値またはゼロで埋められた区間、極端な値、平滑化(ラグ1の自己相関が高い状態)を検出します。 | | `check_fundamentals` | 報告されたファンダメンタルズを会計恒等式に照らして確認します。資産 = 負債 + 純資産、流動項目が合計額以内であること、売上総利益 = 売上高 − 売上原価、キャッシュフローの各区分の合計が現金の増減と一致すること、EPS × 株式数が純利益に近いことを検証します。 | | `check_corporate_actions` | 未調整終値と調整後終値の系列を比較し、株式分割と配当を検出します。調整係数の各変化を株式分割(比率)または配当(割合)に分類し、不一致があればフラグを付けます。 |ラベリング:データアノテーションとMLラベル(7)
| ツール | 機能 | |---|---| | `cusum_filter_events` | 対数価格に対する対称 CUSUM フィルターを使って、ラベル付けする価値のある期間をサンプリングします。最後のイベントからの累積上昇または下落がしきい値(固定値、または直近のボラティリティの倍数)を超えるとイベントが発生するため、すべてのバーではなく、意味のある値動きにラベルを集中させます。 | | `triple_barrier_labels` | トリプルバリア法でイベントにラベルを付けます。直近のボラティリティの倍数として設定する利確幅と損切り幅、および時間制限を使います。各ラベルは、どのバリアに最初に到達したか(+1、-1、または時間制限時点の符号)を示し、重複するラベルを除去できるよう、到達した期間も含みます。期間ごとのサイドを指定すると、メタラベル(1 = ベットが利益をもたらした)を生成します。 | | `fixed_horizon_labels` | 固定期間における将来リターンで各期間にラベルを付けます。しきい値を上回れば +1、マイナスのしきい値を下回れば -1、その間なら 0 です。しきい値は固定値、または直近のボラティリティに応じて調整できます。クラスの比率と、各ラベルが対象とする将来の期間も含みます。 | | `trend_scanning_labels` | 最も強い将来のトレンドに基づいて各期間にラベルを付けます。指定範囲のすべての将来ウィンドウについて価格を時間に対して回帰し、傾きの \|t 統計量\| が最大となるウィンドウを選び、その符号でラベル付けします。t 統計量は信頼度を示します(Lopez de Prado のトレンドスキャニング)。 | | `sample_weights` | 期間が重複するラベルに重みを付け、モデルが同じ情報を過剰に数えないようにします。期間ごとの同時発生数、各ラベルの平均一意性、リターン帰属に基づく重み、および任意の時間減衰を計算します(Lopez de Prado、第 4 章)。 | | `purged_cv_splits` | 時間にまたがるラベルに対し、データ漏洩のない k 分割交差検証の分割を構築します。テストフォールドと期間が重複する学習ラベルはパージされ、テストフォールドの直後に始まるラベルにはエンバーゴが適用されます。各フォールドで除外された内容と、任意でインデックスを報告します。 | | `annotate_price_series` | 価格系列のすべての期間に注釈を付け、注目すべき期間を一覧表示します。ロバスト Z スコアによる外れ値の値動き、停滞した(同じ値が繰り返される)価格、ギャップ(期間をまたぐ急変)、高値・安値・回復を含むドローダウン局面、過去最高値の更新、および因果的なボラティリティレジーム(穏やか、通常、乱高下)を検出します。独自のデータに結合できるよう、期間ごとのタグを返します。 |tvm:貨幣の時間価値とコーポレートファイナンス(15)
| ツール | 機能 | |---|---| | `net_present_value` | 定期的なキャッシュフロー(最初の発生時点は時点 0)のNPVを、収益性指数、割引回収期間、およびIRRが存在する場合はそのIRRとともに計算します。 | | `internal_rate_of_return` | 定期的なキャッシュフローのIRRを求めます。符号の変化によって複数のIRRが存在し得る場合は警告し、いくつかの利率におけるNPVプロファイルも表示します。 | | `modified_irr` | MIRRを計算します。マイナスのキャッシュフローは調達利率で割り引き、プラスのキャッシュフローは再投資利率で複利計算するため、戻り率は一意です。 | | `xnpv_xirr` | 不規則な日付のキャッシュフローについて、初日からACT/365でNPVとIRRを計算します。スプレッドシートのXNPVおよびXIRRと同様です。 | | `time_value_solver` | 残りの4つの値を指定して、利率、期間数、支払額、現在価値、将来価値のいずれか1つを求めます(ローン、貯蓄、年金)。支払いは各期間の末尾または開始時に行えます。 | | `amortization_schedule` | 元利均等返済ローンの返済スケジュールを作成します。各期間の支払額、利息、元金、残高、および利息の合計を表示します。 | | `rate_conversion` | 名目利率を異なる複利計算頻度の利率、実効年利、連続複利利率に換算し、インフレ率を除去します(正確なフィッシャー実質利率)。 | | `growing_annuity` | 1期間後に初回支払いがある成長年金(現在価値と将来価値)、または成長永久年金を評価します。 | | `payback_period` | 投資額を回収する期間内で補間して、単純回収期間と割引回収期間を計算します。 | | `equivalent_annual_annuity` | プロジェクトのNPVを均等な年間金額に換算し、耐用年数の異なるプロジェクトを比較します。 | | `wacc` | 時価総額と株主資本、負債、優先株のコストからWACCを計算します。負債コストは税引後で計算し、株主資本コストはCAPMから求めることもできます。 | | `levered_beta` | 観測された株式ベータから資産ベータをアンレバーし、目標負債資本比率で再レバーします(浜田モデル)。類似企業の株主資本コストの算定に使用できます。 | | `break_even` | 価格、変動費、固定費から、損益分岐点の販売数量と売上高、限界利益率、安全余裕率、営業レバレッジ度を計算します。 | | `loan_true_cost` | 前払手数料によって実際の受取額が減るローンの実質年間コストを求めます。支払額、手数料を反映した名目APRと実効年利、および総コストを表示します。 | | `retirement_projection` | 給与に応じて毎年増加する拠出金を含めて貯蓄残高を予測し、その後、インフレ調整後の持続可能な引き出し額を算出します。退職時の残高、引き出しが続く期間、安全に使える支出額を表示します。 |評価:評価とファンダメンタルスコア(10)
| ツール | 機能 | |---|---| | `dcf_valuation` | Gordon成長モデルまたは出口倍率によるターミナルバリューを用いて、予測フリーキャッシュフローから企業を評価します。企業価値と株主価値、1株当たり価値、割引率と成長率の感応度グリッドを算出します。 | | `reverse_dcf` | 割引率とターミナル成長率を指定し、現在の株価が予測期間にわたって織り込んでいるフリーキャッシュフロー成長率を逆算します。 | | `dividend_discount_model` | Gordon成長モデル、2段階モデル、Hモデルの配当割引モデルで株式を評価するか、株価が織り込んでいる要求収益率を逆算します(Gordonモデル)。 | | `residual_income_valuation` | 簿価に割引後の残余利益(期首簿価に対する株主資本コストを上回る利益)を加えて株主価値を評価します。クリーンサープラスに基づく簿価とターミナルバリューを使用します。 | | `enterprise_value_multiples` | 時価総額、負債、優先株、非支配持分、現金から企業価値を算出し、EV/EBITDA、EV/EBIT、EV/売上高、P/E、P/B、利益利回り、FCF利回りを計算します。 | | `altman_z_score` | 破産予測指標であるAltman Zスコアを計算します(上場製造業向けZ、非公開企業向けZ'、または非製造業向けZ'')。5つの比率とゾーンを表示します。 | | `piotroski_f_score` | 2年分の財務諸表から、収益性、レバレッジと流動性、経営効率の各シグナルを示し、企業の財務健全性を0~9点で評価します。 | | `beneish_m_score` | 2年分の財務諸表から、8変数を用いたBeneish Mスコアによる利益操作スクリーニングを実施し、すべての指数を表示します。-1.78を上回る場合、利益操作の可能性を示します。 | | `dupont_analysis` | 自己資本利益率を、利益率、総資産回転率、レバレッジ(3段階)に分解し、さらに税負担、利息負担、営業利益率、回転率、レバレッジ(5段階)に分解します。 | | `graham_valuation` | Benjamin Grahamの数値(√22.5 × EPS × 1株当たり簿価)と、改訂版の成長率算式による価値を計算し、株価に対する安全余裕を示します。 |結果からは判断できないこと
正しい数式でも、入力データが不適切なら結果は誤りです。見慣れないデータでは、まずdata_checksツールを実行してください。多くのパラメーターセットを試した場合、1つのセットのバックテストだけではほとんど意味がありません。試行回数を数え、strategy_sweep、sleeve_tournament、またはdeflated_sharpe_ratioを使用してください。1つの期間であらゆる修正に耐えたスリーブも、あくまでバックテストです。証拠となるのは将来の結果です。閉形式モデル(Black-Scholes、Heston、SABR、Kirk)にはそれぞれ前提があり、結果には使用したモデル名が示されます。
開発
npm ci && npm test
参照フィクスチャは、scripts/reference/内のPythonスクリプトで再生成されます(各スクリプトのdocstringに、正確なuv runコマンドが記載されています)。テストでPythonを呼び出すことはありません。コミット済みのフィクスチャと比較します。
関連
- canli-validation-mcp:試行台帳を備えたバックテストの過剰適合テスト(deflated Sharpe、CSCV/PBO、WhiteのReality Check、HansenのSPA)。
- canli-backtest-mcp:SEC提出書類に基づくポイントインタイムのファクターバックテスト。
MITライセンス。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。