mcpField
Q
quant-research

quant-research

リモート
quant-mcp.avasis.ai金融データ18 週間前に更新
リポジトリ公式サイト

quant-research について

quant-researchは、バックテスト結果が試行回数やサンプルの不確実性に耐えるかを調べる、定量研究者向けのMCPサーバーです。試行回数をサーバー側の台帳で管理し、独立検証可能な署名付き記録にも対応します。

主な機能

  1. 01Deflated SharpeとPSRの計算
  2. 02バックテスト過剰適合確率の評価
  3. 03パージ付き交差検証とブートストラップ区間
  4. 04戦略群の検定と有効試行数の推定
  5. 05研究証明記録の作成と検証

活用シーン

  1. 01パラメーター探索後の戦略評価
  2. 02バックテスト期間の十分性確認
  3. 03戦略群とベンチマークの比較
  4. 04試行記録の連続性と完全性の検証

MCP 対応

Claude、Cursor、VS Codeなどのクライアントから会話内で研究統計を実行できます。試行回数はサーバー側で保持されます。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://quant-mcp.avasis.ai/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

すべてのエンドポイント
Streamable HTTPhttps://quant-mcp.avasis.ai/mcp認証が必要

ツール

詳細

quant-integrity

バックテストに意味があるかを検証する統計テスト。

PyPI Python Licence CI Typed

このライブラリは、利益を生む戦略を見つけるものではありません。見つけた戦略を退けるためのものです。 ここにあるものはすべて、ひとつの問いに答えるためのものです。この結果を報告するまでに何通りの設定を試したかを踏まえても、その結果は有効でしょうか?

pip install quant-integrity

問題を図で見る

BTC-USD の時間足で、移動平均のクロスオーバーを検証します。パラメーターを一通り試した結果、最良の設定は年率換算シャープレシオ 0.95 を示し、Probabilistic Sharpe は 0.86 でした。これは「おそらくゼロを上回る」と読める値です。

多くのバックテストはここで終わります。同じ結果を、実際に 28 回試行したときの基準と並べてみましょう。

観測されたシャープレシオと試行回数によって定まる基準

すべての根底にあるエッジが正確にゼロでも、28 回の試行のうち最良の結果は大きくなります。その基準に対するディフレート・シャープレシオは 0.157 です。観測された結果は境界線上どころか、運だけで得られる値の半分にも届きません。

PSR が高く DSR が低いのは、境界線上のエッジではなく、過剰適合した探索の典型です。

探索で実際に選ばれていたもの

原因は試行結果そのものに表れていました。記録された 28 回の実行を、トレード数とシャープレシオで並べ替えてみましょう。

すべての試行におけるシャープレシオとトレード数の関係

取引回数が少ない設定ほど、すべて成績がよく見えていました(ρ = −0.96)。これはシグナルの発見ではありません。コストによる目減りを測定していることに加え、上昇相場では動きの遅い移動平均がバイ・アンド・ホールドに近似しているのです。探索で見つかったのはエッジではなく、取引回数が最も少ない設定でした。

そもそも信頼区間は狭くありませんでした

シャープレシオのブートストラップ信頼区間

Sharpe = 0.95 だけを報告すると、データが裏付けていない精度があるかのように見えてしまいます。

上記の数値はすべて再現可能です
git clone https://github.com/abhayjnayakk/quant-integrity
cd quant-integrity && pip install -e .
python docs/make_figures.py        # regenerates all three figures and prints the values
評価した試行回数28
シャープレシオ(年率換算、コスト控除後)0.9500
Probabilistic Sharpe(PSR)0.8556
帰無仮説の下での E[max Sharpe]、28 回の試行1.8525
ディフレート・シャープレシオ(DSR)0.1568
シャープレシオのブートストラップ 95% 信頼区間[−0.93, 2.69] — ゼロをまたぐ
超過尖度18.61
Spearman ρ(シャープレシオ、トレード数)−0.9618(p = 3.8e−16)
バックテストの最小期間1.94 年が必要、利用可能なのは 1.25 年

試行回数は手入力ではなく、記録された実行結果から取得しています。このページの以前のバージョンでは 29 と固定していましたが、ファイルには 28 と記録されており、ディフレート・シャープレシオは一方、バックテストの最小期間はもう一方の値を引用していました。

図とこの表は、examples/btc_ma_runs.npz(24 KB、実際のリターン系列と試行ごとの結果)から同じスクリプトで生成されます。サーバーもアカウントも不要です。さらに詳しい解説は examples/btc_ma_postmortem.ipynb にあります。

このリポジトリにない数値について。 同じ仕様を後日、単一資産ではなく複数資産のバスケットで実行したところ、10 資産をプールしたシャープレシオは −1.376 で、そのうちプラスだったのは 3 資産でした。この結果はホストされたサーバーの台帳にあり、このリポジトリにはありません。ここにあるサンプルファイルには単一資産の試行結果しか含まれないため、バスケットの数値は再現できません。この話の中で最も重要な結果なので引用していますが、確認できない数値には必ずその旨を明記すべきなので、ここでも明示しています。


含まれる機能

機能答える質問
deflated_sharpe(returns, n_trials)このシャープレシオは、N 回の試行のうち最良の結果が偶然に得られる水準を上回っていますか?
probability_backtest_overfitting(matrix)選択手順には、そもそも情報が含まれていますか?
combinatorial_purged_cv(...)パージとエンバーゴを適用した交差検証の分割
stationary_bootstrap_ci(returns)実際の区間幅はどのくらいですか?
reality_check(family, benchmark)ファミリー内の最良の手法は、それを選ぶ際に比較対象としたベンチマークを上回っていますか?
effective_tests(matrix)相関のあるテスト群は、独立したテストをいくつ提供しますか?
min_backtest_length(n_trials, ...)実施した探索に対して、サンプル期間は十分に長いですか?
triple_barrier_labels(...), dollar_bars(...)ラベリングと取引量ベースのサンプリング
spec_hash(spec)コンテンツアドレス方式による戦略の識別
verify_attestation(record, key)署名付きの研究記録を独立して検証
import quant_integrity as qi

out = qi.deflated_sharpe(returns, n_trials=28)
print(out["dsr"], out["psr"])

n_trials は、破棄したものも含め、評価したすべての設定を意味します。過少申告すると、都合のよい結果が出ます。このライブラリではその値を確認できません。まさにそれが、次のセクションで取り上げる問題です。


初日から明示している商業上の方針

このリポジトリの統計機能は AGPL-3.0 で公開されており、永久に無料です。 ここにあるすべての手法は、学術研究として発表されています。計算そのものに独自の優位性はなく、アップグレードを販売するために機能を制限したライブラリのバージョンもありません。お試し版は販売の導線として機能せず、信頼性を扱うツールにとって唯一の価値を損なうからです。

ホスト型のアテステーションは有料サービスです。 検証は公開されており、このリポジトリで利用できます。発行は公開されていません。その理由は以下のとおりです。後になって突然の方針変更だと言われないよう、最初に明示しておきます。

セルフホストではアテステーションを発行できない理由

試行回数が意味を持つのは、後から減らせない場合だけです。しかし、自分で台帳を運用するなら、その内容を編集できます。たいていは悪意からではありません。書き直した後に試行回数をリセットしたくなる、ごく自然な誘惑や、成果のなかった探索を記録しないことなどが原因です。自分で発行した信頼性記録には何の証明力もありません。証明する本人が、その結果から利益を得る人だからです。

検証は公開されています。発行がサービスです。

誰でもこのライブラリと発行者の公開鍵を使って、アテステーションを検証できます。発行者の協力は不要で、検証コードも一切非公開にされていません。一方、アテステーションを作成することはできません。署名に価値があるのは、署名者がその受益者ではない場合だけだからです。

重要なのは個々の署名ではなく、チェーンです。verify_chain は一連のアテステーションを対象に、次のことを確認します。

  • シーケンス番号が連続しているため、途中の記録が削除されていないこと。
  • 各記録が直前の記録のダイジェストを参照しているため、後から改変されていないこと。
  • n_trials が決して減少しないこと。

外部の第三者は、台帳を一度も見ずにこれらすべてを確認できます。自分の記録を編集した人は、後続のすべての記録に、自分が持っていない鍵で再署名しなければならないため、同じものを再現できません。

これがビジネスの全容です。計算そのものはこのリポジトリで無料公開しています。ビジネスの要点は、結果に利害関係を持たないインスタンスを運用することです。そのインスタンスがquant.avasis.aiです。MCP サーバーとして、研究を Claude、Cursor、VS Code、または任意の MCP クライアント内で実行でき、試行回数は会話ではなくサーバーによって保持されます。


対象範囲

これは統計的な計測ツールです。以下の機能は意図的に含まれておらず、今後も含まれません。

  • 買い、売り、または保有のシグナルはありません。目標価格、ポジションサイズ、またはストップ水準もありません。
  • モデルポートフォリオや資産配分はありません。
  • リターンに関する主張や、そうした主張を示唆する例はありません。

このライブラリはリターン系列と試行回数を受け取り、それらに関する統計量を返します。何を取引しているかは把握せず、それについて意見を述べることもありません。


インストールとコントリビュート

pip install quant-integrity                 # statistics
pip install "quant-integrity[attestation]"  # + signature verification

Python 3.10 以降が必要です。numpy、scipy、pandas に依存します。完全に型付けされています(py.typed)。

コントリビューションには CLA と DCO のサインオフが必要です。理由についても率直に説明している CONTRIBUTING.md をご覧ください。

ライセンス

AGPL-3.0-or-later。LICENSE と NOTICE をご覧ください。

ネットワーク利用条項は意図的に設けられています。これにより、競合他社がこのコードのクローズドなホスト型フォークを実行できなくなります。一方、公開の有無を問わず、独自の研究でライブラリを使用することは制限されません。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。