mcpField
M
Monte-Neo strategy verifier

Monte-Neo strategy verifier

ローカル
neozork.github.io金融データ8今日更新

Monte-Neo strategy verifier について

Monte-Neoは、トレーダーやAIエージェントが作成した戦略のバックテストを独立検証するツールです。先読み、取引コスト、過剰適合を調べ、判定と根拠、再現可能な証明書を返します。

主な機能

  1. 01先読みバイアスの検出と静的検査
  2. 02取引コストとスリッページの検査
  3. 03Sharpeと多重検定の分析
  4. 04ウォークフォワードとロックボックス検証
  5. 05戦略修正とアルファ準備度の評価
  6. 06再現可能な検証証明書

活用シーン

  1. 01投資前にエージェント作成のバックテストを監査
  2. 02取引コスト控除後の戦略を確認
  3. 03研究委員会向けにランキングシグナルを評価
  4. 04バックテストと実運用のリターンを監視

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"neozork-monte-neo": {
"command": "uvx",
"args": [
"monte-neo"
]
}
}
}
起動コマンドuvx monte-neo

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypimonte-neo0.54.0

ツール

17

掲載時のツール一覧 · 1 週間前に更新

パラメーター型必須説明
jobsintegerいいえ
claimanyいいえ
ledgerbooleanいいえ
sl_pctnumberいいえ
tp_pctnumberいいえ
compactbooleanいいえ
isolatebooleanいいえ
repaintstringいいえ
timeoutnumberいいえ
n_trialsanyいいえ
positionsstringいいえ
side_modeanyいいえ
trail_pctnumberいいえ
ohlcv_pathstringはい
warmup_barsanyいいえ
registrationanyいいえ
signals_pathanyいいえ
slippage_bpsnumberいいえ
symbol_costsanyいいえ
signal_timingstringいいえ
strategy_pathanyいいえ
commission_bpsnumberいいえ
borrow_bps_per_barnumberいいえ
funding_bps_per_barnumberいいえ

詳細

Monte-Neo のロゴ

Monte-Neo:AI エージェントと人間が作成したトレーディング戦略の独立検証ツール

AI エージェントと人間が作成したトレーディング戦略の独立検証ツールです。
バックテストが資金に影響を及ぼす前に、先読みバイアス、隠れた取引コスト、過剰適合を検出します。

PyPI のバージョン 累計ダウンロード数 月間ダウンロード数 Python のバージョン CI MIT ライセンス
MCP レジストリ Claude Code と Qwen Code(ローカル)でテスト済み GitHub のスター数

ドキュメント · クイックスタート · エージェントから利用する · 検証 API · Trap Suite · 変更履歴

バックテストのリークを検出できましたか? リポジトリにスターを付けて、ほかのクオンツやエージェント開発者にも見つけてもらいましょう。 または、見逃した問題をお知らせください。


問題点

コーディングエージェントなら、トレーディングのアイデアを数分でバックテストにできます。そして、その戦略は年率 40%、シャープレシオ 3 だと報告するでしょう。しかし、その数値はほとんどの場合、いくつかの同じ理由で間違っています。

  • 先読みバイアス。 コードが未来のバーを読み取っています。例:shift(-1)、中央揃えウィンドウ、bfill、系列全体を対象にした統計、np.gradient、FFT フィルター。
  • コストの欠落。 エッジが手数料やスリッページより小さい、または約定が 1 バー遅れると消えてしまいます。
  • 選択バイアス。 エージェントが 300 個のバリエーションを試し、最良のものを唯一の結果であるかのように報告します。

バックテストライブラリは、渡されたコードをそのまま実行します。バックテスト自体に問題があると知らせてくれるライブラリはありません。

解決策

Monte-Neo が検証するのはアイデアではなく、バックテストです。 価格データと戦略コード、またはポジションを渡してください。4 種類の判定のいずれか、判定の根拠となるチェック、具体的な次のステップ、そして再現可能で任意に署名できる証明書が返されます。

monte-neo verify はリークのあるエージェント戦略を却下し、エージェントが修正すると、正直な判定が返されます

エージェントの戦略では shift(-1) が使われていたため、次の終値が分かっていました。Monte-Neo は 4 つの独立した方法でリークを見つけ、該当する行を示しました。修正後は先読みがなくなり、検証ツールは正直な結果を伝えます。ランダムウォークでは、コストを差し引くと戦略に優位性はありません。

同じ実行結果を、人向けのレポートとして出力できます(--html report.html:1 ファイル、スクリプトなし、ネットワーク通信なし)。

却下された戦略の HTML レポート:一文で示す判定、チェック項目の種類ごとのカード、概要、買い持ちと比較した資産曲線、ドローダウン、リターン分布

正直な戦略やパラメーター探索など、その他のレポートはギャラリーでご覧いただけます。

最初の実行結果のテキスト出力
$ monte-neo verify --ohlcv prices.csv --strategy agent_strategy.py --n-trials 40
REJECT  certificate 7f0603b0e604bea5
  check                    category    status  summary
  data_integrity           integrity   pass    OHLCV is clean
  lookahead_truncation     lookahead   fail    truncation probe: LEAK DETECTED
  lookahead_perturbation   lookahead   fail    future-perturbation probe: LEAK DETECTED
  lookahead_static_lint    lookahead   fail    static lint: negative_shift
  implausible_accuracy     lookahead   fail    next-bar hit rate 1.000 over 2999 bars (z 54.8)
  net_profitability        economics   fail    net total return -64.97% after costs
  deflated_sharpe          statistics  fail    deflated Sharpe 0.000 over 40 trial(s)
  ...                                          (16 more checks)
→ The signal at bar t changes when later bars are removed: compute features only from rows <= t
  (no shift(-k), centered windows, bfill or full-sample stats).
→ Fix the flagged source lines (negative shift, center=True, backward fill) and re-run verify. Lines: 6.

実行には合成ランダムウォークを使用しました。出力は一部省略しています。

判定意味CLI の終了コード
PASS問題は見つかりませんでした0
PASS_WITH_WARNINGS使用できます。警告を確認してください0
NEEDS_MORE_EVIDENCE取引が少なすぎるか、試したバリアント数を踏まえるとシャープレシオが維持されません1
REJECTバックテストに不備があるか、コストを差し引くと損失が出ます2

v0.53 の新機能:却下されたバックテストから委員会へ

過剰適合させずに戦略を修復する

monte-neo repair:リークが修復されると優位性はなくなります。ノイズの多いトレンドシグナルを平滑化すると、一度だけ開くロックボックスでも利益が残ります。シードのない戦略は修復できません

monte-neo repair --demo
monte-neo repair --ohlcv data.csv --strategy my_strategy.py --out repair/

オプティマイザーはリターンを最大化するため、過剰適合します。repair が最小化するのは欠陥です。まず、先読みとリペイントを修正します。次に、宣言済みの限られた修正方法(平滑化、保有期間、取引なしのバンド、分割執行、中立化、上限、ボラティリティ目標)から、履歴の最初の 70 % を使って選択します。選択基準は残った欠陥の数であり、リターンではありません。また、候補はすべて試行回数に数えます。最後の 30 % はロックボックスとして、一度だけ開きます。

結果は次の 4 種類です。

  • REPAIRED:選択に使われていないデータでも、戦略はコスト差し引き後に利益を上げ、却下されません(ただし、ロックボックスで取引数の増加など、さらなる証拠を求められる場合があります)。
  • REPAIRED_NO_EDGE:欠陥はなくなりましたが、利益もなくなりました。利益は欠陥によって生じていたからです。
  • NOT_REPAIRABLE:ご自身で対応する必要があります。
  • NOTHING_TO_REPAIR:カタログに修正可能な項目がありませんでした。

元のファイルは変更されません。ランダムウォークでは、Trap Suite のリークがある 68 個の戦略のうち、REPAIRED になるものはありません。ガイド。

アルファですか?委員会向けアルファ準備度レベル
monte-neo alpha --demo --aum 2e5
monte-neo alpha --ohlcv universe.csv --scores scores.csv --aum 5e7 --book book.csv --n-trials 40

ランキングシグナルについて、ファンドの調査委員会が資金を拠出する前に行うチェックを実施します。

  • シグナルの強さ:ランク IC、減衰、分位点、プラセボスコア;
  • 帰属:それはアルファですか、それとも新しい名前を付けたモメンタムやショートボラティリティですか?
  • ポートフォリオにとっての価値:限界シャープレシオ;
  • 実装可能性:運用資本に応じた平方根型インパクト、容量、ショート側、リバランス日;
  • ロバスト性:サブセット、開始日、ブートストラップした市場;
  • データとプロセス:今日の指数構成銘柄、不一致のある取引所の終値、公表後の減衰;
  • 多重検定:t ≥ 3 の基準、バックテストの最短期間;
  • リスク:具体的な危機、テールリスク。

すべてを最後に1行でまとめます。たとえば、ARL 6/9 — blocked at 7: tradable and robust (rebalance_timing_luck)。 証拠が不足している場合は「未評価」とし、合格扱いにはしません。ガイド。

モデルリスク委員会に提出できる証拠
monte-neo dossier --certificate cert.json --framework sr11-7 --name "Momentum 20" --owner "Desk A"
monte-neo monitor --certificate cert.json --live live.csv        # after launch: is the alpha dead?

検証ドシエは、次のものをまとめた1つのフォルダーです。

  • 印刷可能な1ページ:概要、チェック項目、準備度レベル、前提条件と制約、再現方法、承認欄;
  • SR 11-7、PRA SS1/23、MiFID II RTS 6、暗号資産チェックリスト、または学術論文の付録への条項マップ;
  • 証明書と環境。

マップが示すのは証拠であり、コンプライアンスではありません。monitor はライブリターンをバックテストと比較し、実現スリッページを測定して、エッジが失われたときに逐次アラームを発します。 ガイド。

機械学習、LLMシグナル、イベント、運用実績
  • fit / predict. signal(df) の代わりに fit(train) と predict(model, df) を定義します。検証器は過去のデータのみで再学習し、利益がファイル全体を使った学習に依存していたモデルは ml_refit_gap で不合格になります。
  • --model-cutoff 2024-06. 言語モデルの学習データのカットオフより前にしか存在しないエッジは、モデルの記憶を介した先読みです。
  • --events events.csv. ニュース、決算、LLMの出力は公表時刻で結合されます。レポートには、イベント時刻で結合した場合に得られたリターンも表示されます。
  • verify --returns manager.csv. リターンのみからデューデリジェンスを行います:平滑化、小さな損失の欠落、不自然な一貫性、運用者のファンド数を考慮した有意性。
  • verify --legs legs.csv と --null-test pairs.py:pnl. ペア戦略や統計的アービトラージ戦略における見かけ上の利益:ローリングヘッジ比率をポジションとスプレッドの変化の積として計上すると、独立したランダムウォークであっても、トレーダーには得られない利益が発生します。--legs は各レッグの保有数量から損益を再計算し、レッグが実際に生み出していない報告リターンを不合格にします(修正後の系列も書き出します)。--null-test はランダムウォークで戦略を実行し、利益が発生しないことを確認します。monte-neo verify --demo-phantom をお試しください。
  • 所属機関のルールと履歴。 --policy policy.toml は所属機関の基準値を適用し、それらを証明書に記録します。--trials-from mlflow:./mlruns(Optuna、W&B、Ray Tune にも対応)を使うと、すでに記録した実行回数を数えます。共有ドライブで --ledger を使うと、チーム全体の試行回数を数えます。
  • すでに作業している環境。 Jupyter での %%verify、入力としての Polars フレーム、そしてシャープレシオを読まない人向けの平易な言葉による1ページ要約を作成する monte-neo dossier --lite。
  • ML コード向けの追加リントルール2つ。 full_sample_transform(全行でスケーラーまたは PCA を学習)と target_encoding_full(全行のターゲット平均を特徴量にマッピング)。

ガイド:ML とイベント · 運用実績 · ペア戦略における見かけ上の利益 · ポリシー、試行回数、モデルのカットオフ · 参照アルファ。

ミリ秒単位に潜む先読みを検出

monte-neo verify --quotes: 高速な戦略は取引所の時刻では+191%の利益を上げますが、到着時刻では23%の損失になります。低速で正直な戦略は利益を維持します

問題点。 気配値には2つの時刻があります。取引所がタイムスタンプを付けた時刻と、あなたに届いた時刻です。日中の気配値を使ったバックテストの多くはタイムスタンプで集計するため、高速な戦略はまだ見えていない価格で取引します。コードのリンターでは検出できません。漏洩はコードではなく、時計にあります。

Monte-Neo の機能(monte-neo verify --quotes quotes.csv --strategy my_strategy.py):

  • 到着時刻の先読み。 同じ戦略を到着時刻で作成したバーに適用し、市場に対して取引します。遅延ゼロの場合にしか利益が出ないなら、それはミリ秒単位の漏洩です。
  • 利益が消える遅延。 対応に活用できる数値を1つ提示します。「追加遅延が38 msになると利益が消失します」。
  • レイテンシーのモンテカルロ分析。 各気配値のレイテンシーを、実際に観測されたレイテンシー(各取引所内)から再抽出し、シードを固定して200回試行します。リターンの分布と損失の確率を示し、利益がレイテンシーの偶然によるものだったかを明らかにします。
  • 注文遅延。 --order-latency-ms はすべての約定を遅らせるため、即時執行に依存する優位性は棄却されます。
  • 取引所の近くにサーバーがありませんか? --latency-model lognormal:8,25 はレイテンシーの中央値と95パーセンタイル(ms)を読み込む代わりに仮定します。証明書には、実測値ではなく仮定値であることが明記されます。
  • 1つの戦略で複数のフィードを利用。 --symbol と --feeds を使うと、ある銘柄の価格を使って別の銘柄を取引できます(先行・遅行、先物と現物など)。各フィードには独自のレイテンシーが適用されます。フォロワーが動いた後にリーダーが届くケースを検出します。
  • 先読みプローブにも対応。 verify_strategy の切り詰めプローブと摂動プローブは到着バーに対して実行されるため、次のバー(shift(-1))を読み取る戦略は棄却されます。この漏洩はどの時刻基準でも発生するためです。
  • 気配値の品質。 クロス気配、負のレイテンシー、到着順の乱れ、そしてバースト状のレイテンシーに対応します。混雑した経路(VPN、Wi-Fi)はメッセージを滞留させて一斉に解放します。このチェックはその状況を示し、ネットワークの影響を結果として報告することを防ぎます。
  • 証明書。 署名付きで、他の証明書と同様に --recheck で再現できます。
$ monte-neo verify --demo-quotes     # no files: a fast strategy and an honest one
$ python -m monte_neo.data.quote_recorder --symbol BTCUSDT --seconds 600 --out quotes.csv   # your own latency

他との違い:これは環境ではなく監査です。あらゆるソースの完成済み戦略(任意の signal(df) 関数やエージェントのコード)と、独自に記録した気配値を受け取り、データが到着した時刻を考慮しても利益が維持されるかを、他者が再現可能な証明書とともに示します。戦略は特定のエンジン向けに作成する必要はありません。

正直な適用範囲:実験的な機能です。レイテンシーのチェックは参考情報にすぎず(最大でも warn)、合成データで調整されています。そのため、実際に取引を行うマシンで実レイテンシーを記録するか、仮定したレイテンシーを明記し、判定がその前提に基づくものとして読み取ってください。約定はミッド価格でのテイカー注文とし、データのレイテンシー(気配値から取得、または仮定値)に固定の注文遅延を加えます。キュー順位と部分約定は意図的にモデル化していません(注文板とパッシブ注文モデルが必要であり、概算式では精度を誤認させるため)。したがって、マーケットメイキング戦略はここでは検証できません。証明書にはこれらの前提が記載されます。 ガイドを読む。

インジケーターを正直に探索

monte-neo discover --ohlcv data.csv --out found/

因果性のある数千の数式を試し、探索回数を数え、シャッフルした市場とロックボックスで検証し、最良の候補の証明書を作成します。ランダムウォークでは何も選ばれません(キャリブレーションで60回の探索中0回)。一方、単純な探索ではシャープレシオが6を超えると報告されます。ガイドをご覧ください。

ワークフローの残り

  • verify --ledger は試したすべてのバリアントを数えます。verify --suggest-fix はリークを差分として書き換えます (ガイド)。
  • シグナルが再描画されてはなりません。表示後に変化するシグナルは失敗となり、バー自身の価格を必要とするシグナルは報告されます (ガイド)。
  • history、register、oracle、portfolio、doctor:回帰終了コード付きの証明書履歴、事前登録された仮説、エージェント向けの Thresholdout ホールドアウト、一度に複数の戦略を扱う機能、データのエクスポートに関する既知の問題です (ガイド)。
  • 誠実性スコアカードでは、検証ツールがリークを検出する頻度と、誠実な戦略を誤って退けない頻度を確認できます(仮説の動物園、信頼区間、既知の不足点を含みます)。

チェック項目

分類チェック内容
先読み切り詰めプローブ(後続のバーを削除すると、バー t は変化しますか?)、未来摂動プローブ、外部データ監視(戦略が読み取るファイルやネットワーク)、静的 AST リント(23 個のルール)、非現実的な勝率
経済性手数料とスリッページ控除後の純リターン(オプションの資金調達コスト、空売り借入手数料、バー内のストップ、ユニバース向けのシンボル別コストを含む)、損益分岐コスト(bps)、1 バーおよび 2 バーの約定遅延、モデル化されたコストと併記する高値・安値からのスプレッド推定値、出来高から算出した容量(ユニバースでは最も制約の厳しいシンボルを明記)
統計n_trials を考慮した確率的 Sharpe と Deflated Sharpe、モンテカルロ・タイミング検定(シグナルはシフトした複製を上回っていますか、それとも単に市場に連動しているだけですか?)、サンプルサイズ、ホールドアウトの一貫性、ブートストラップ信頼区間、最小トラックレコード長と 6 つの等しい期間それぞれの結果。グリッドサーチでは、ウォークフォワードのアウトオブサンプル検証、パラメータ・プラトー、バックテスト過剰適合確率(PBO)、Reality Check / SPA 検定
整合性破損した OHLCV(NaN、不正な価格、時系列順でないバー)、架空の利益を生む不正データ(1 バーの急騰、価格の凍結、未調整の株式分割、時間の空白)、非決定的なシグナル、ユニバースにおけるサバイバーシップ・バイアス
レイテンシ(クオート)到着時点の先読み(到着時点ではなく取引所の時刻に基づく利益)、利益が消失する遅延(ミリ秒単位)、観測されたレイテンシ分布を用いたモンテカルロ、注文遅延、バースト性レイテンシを含むクオート品質。ガイド
申告値--claim:申告された Sharpe、リターン、ドローダウン、取引回数を検証済みの値と照合します(過大申告は失敗となります)
コンテキスト同じデータとコストを用いたバイ・アンド・ホールド、年/四半期/月別および市場レジーム別の結果、1 つの期間が利益のすべてを生み出している場合の警告

すべてのルールは Trap Suite によって裏付けられています。 嘘をつくことが判明している 80 の戦略と、誠実な対照群 35 個を収録しています。すべてのビルドで実行されるため、検証ツールがリークを検出できなくなったり、誠実なコードを誤って告発し始めたりすることはありません。

他のツールとの違い

ツールの種類機能Monte-Neo が追加するもの
パフォーマンスレポートライブラリリターン系列からチャートや比率を作成しますリターンの元となるバックテストに問題がないかを確認し、試したバリアント数を考慮し、証明書を発行します
バックテストフレームワーク与えられた戦略コードを実行します結果に対する独立したセカンドオピニオンを提供します。vectorbt、Backtrader、backtesting.py、bt、Nautilus Trader、Zipline、Freqtrade、Lean、通常の約定データに対応するアダプターを備えています(最初の6つは実際のフレームワークでテスト済みです)
バックテスト内のレイテンシシミュレーションその環境向けに書かれた戦略を対象に、バックテストの実行時にフィードと注文のレイテンシをモデル化します任意のソースから得た完成済みの戦略を、独自の気配値記録で監査します。利益が失われる箇所、実際のレイテンシ分布に基づくモンテカルロ分析、署名付き証明書を提供します
単一のフレームワーク内の先読み検出ツールそのフレームワークの戦略について、データを切り詰めたときのインジケーター値を比較します任意の戦略関数やポジションに対応し、コスト、選択バイアス、主張の検証を追加します
統計ライブラリ(Deflated Sharpe、PBO)自分で組み合わせて使う数式を提供しますプローブ、エンジン、統計、レポート、証明書、エージェントツールを含むパイプライン全体を提供します

活用方法

対象Monte-Neo の用途
コーディングエージェントを使って戦略を構築している方(Claude Code とローカルの Qwen Code でテスト済み)結果を報告する前にエージェントが自身のバックテストを検証し、可能な問題を修正できるようにします。MCP サーバーと Claude Code プラグインがこれを自動的に行います。
戦略リポジトリを運用している方GitHub Action を追加します。バックテストにデータ漏洩がある場合や、コスト控除後に損失が出る場合、そのプルリクエストは CI で失敗し、判定結果が PR コメントとして投稿されます。
クオンツ、レビュアー、またはアロケーター他の人から受け取った戦略を、その人のデータとコードを使って、1つのコマンドで検証します。受け取った証明書を再確認するか、署名を検証します。
プロップファーム、戦略マーケットプレイス、またはトレーディング講座人が確認する前に提出物を審査します。掲載する戦略の横に署名付き証明書を公開します。
ファンドのリサーチ委員会、またはモデルリスクチームアルファレポートと検証資料一式を求めます。これには、ファクター帰属、運用可能規模、準備状況、SR 11-7、SS1/23、または RTS 6 への条項対応表、再現可能な証明書が含まれます。
アロケーター、またはファンド・オブ・ファンズリターンのみを使って、マネージャーの運用実績を1フォルダーずつ審査します(verify --returns-dir)。
エージェントを比較する研究者Honesty Bench を実行します。すべてのエージェントに同じタスクを課し、実際には存在しない利益を主張する頻度で評価します。

Monte-Neoを選ぶ理由

  • 独立性。 自らが作成していないコードを検証し、戦略独自の数値を信頼しないプローブを使用します。
  • 慎重な不正判定。 35種類の正当な戦略(ループ、ウィンドウ、リサンプリング、ローリングウィンドウ内のフィッティング、高い勝率を伴う実際の優位性)を、どのビルドでも先読みとして誤検出しません。
  • 過剰適合なしで修正。 repair は不具合の数に基づいて選んだ不具合を修正し、すべての試行を数えてロックボックスに判定させます。また、利益そのものが不具合だった場合は、その旨を示します。
  • エージェント向けに設計。 23個のツールを備えた MCP サーバー、スキル、スラッシュコマンド、リマインダーフックを備えた Claude Code プラグインに加え、Codex、Gemini CLI、Cursor、Qwen Code 向けのルールも用意しています。失敗したチェックはすべて、エージェントが実行できる next_action を返します。
  • 機関投資家向けのエビデンス。 準備状況レベル付きのアルファレポート、モデルリスクのフレームワークに対応した検証ドシエ、ライブモニタリング、そしてすべての証明書に記録される独自のポリシーを提供します。
  • 時間を考慮。 取引所が記録した時刻だけでなく、実際に気配値が届いた時刻を基準に、利益が持続するかを検証します。
  • 再現可能。 同じデータ、コード、n_trials であれば、常に同じ certificate_id が得られます。誰でも --recheck を使って証明書を再現できます。
  • 署名付き。 Ed25519 署名により、誰が証明書を発行したか、また改ざんされていないことを確認できます。
  • 選択バイアスに誠実。 試したバリエーションの数を宣言するか、verify_grid に数えさせてください。Deflated Sharpe はその数を考慮します。
  • ローカルでプライベート。 データとコードがマシンの外に出ることはありません。MIT ライセンスです。

クイックスタート

pip install monte-neo
monte-neo verify --demo      # no files needed: a strategy that peeks at tomorrow's close is rejected
monte-neo init-ci            # write a GitHub Actions workflow that verifies your strategy on every pull request

コマンドライン

monte-neo verify --ohlcv btc_1h.csv --strategy my_strategy.py --n-trials 12 --out verdict.json

my_strategy.py では signal(df) を定義します。この関数は各バーにつき1つのポジションを返します。+1 はロング、0 はフラット、 -1 はショート、または 0.5 のようなウェイト(資産の半分をロング)を指定できます。バー t で決定されたポジションは、 バー t + 1 の始値で約定します。

def signal(df):
    fast = df["close"].rolling(20).mean()
    slow = df["close"].rolling(80).mean()
    return (fast > slow).astype(int)

Python

from monte_neo.verify import verify_strategy

report = verify_strategy("btc_1h.csv", strategy="my_strategy.py", n_trials=12)
print(report["verdict"], report["next_actions"])

試行数を正確に数えるパラメーター探索

monte-neo verify --ohlcv btc_1h.csv --strategy sma.py --grid '{"fast": [10, 20], "slow": [80, 120]}'

複数のシンボルと、人向けレポート

# universe.csv: timestamp, symbol, open, high, low, close; signal(df) returns a weight per row
monte-neo verify --ohlcv universe.csv --strategy xs_momentum.py --html report.html

HTML レポートは、スクリプトを使わない1ファイル完結のティアシートです。判定理由を1文で示し、買い持ちと比較した対数スケールの 資産曲線、ドローダウン、ローリングシャープレシオ、月次ヒートマップ、タイミングテスト、 コストへの感度、取引統計、リークの証拠(バーとソース行)、すべてのチェック、期間別・市場レジーム別の結果、 実行を再現するためのハッシュを掲載します。ブラウザーから PDF に印刷できます。 レポートの例をご覧ください。

コーディングエージェントから使う

Claude Code(MCP サーバー、verify-strategy スキル、/verify を含むプラグイン):

/plugin marketplace add NeoZorK/Monte-Neo
/plugin install monte-neo@monte-neo

任意の MCP クライアント(Codex、Gemini CLI、Cursor など):

uvx monte-neo mcp

公式 MCP Registry にも io.github.NeoZorK/monte-neo として登録されています。各クライアントのセットアップについては、エージェントから使うをご覧ください。

テスト済みの環境。 メンテナーは、Claude Code およびローカルモデル上の Qwen Code でサーバーを実行しています。 Codex、Gemini CLI、Cursor、その他の MCP クライアントでも同じサーバーとルールを利用できますが、現時点では実行報告がありません。 いずれかをご利用の場合は、10 分間のテストにご協力ください:issue #114。

ローカルエージェント(Qwen Code、または Ollama、LM Studio、 llama.cpp を介してマシン上で実行するモデルを使う任意のターミナルエージェント):

qwen mcp add monte-neo uvx --from "monte-neo[mcp]>=0.53.0" monte-neo-mcp

qwen-code は monte-neo bench run の組み込みエージェントでもあり、ローカルモデルの正直さを測定できます。 小規模モデルはベンチマークタスクに失敗することがよくありますが、これはモデルの結果であり、検証器の問題ではありません。 セットアップ、--base-url、トラブルシューティングについては、ローカルエージェントをご覧ください。

MCP ツール(23):verify_strategy、verify_grid、verify_quotes、verify_portfolio、verify_returns、verify_legs、validate_alpha、repair_strategy、build_dossier、monitor_live、probe_lookahead、 cost_stress、recheck_certificate、check_signature、render_report、suggest_fix、discover_indicator、 register_hypothesis、compare_certificates、holdout_query、diagnose_data、verdict_schema、verifier_manifest。

GitHub Action

- uses: NeoZorK/[email protected]
  with:
    ohlcv: data/btc_1h.csv
    strategy: strategies/momentum.py
    n-trials: "12"
    comment: "true"                                        # post the verdict on the pull request
    signing-key: ${{ secrets.MONTE_NEO_SIGNING_KEY }}      # optional: sign the certificate
    upload-certificate: "true"                             # optional: keep it as a workflow artifact

REJECT の場合、ジョブは失敗します。判定結果とすべてのチェックは、ステップの概要に表示されます。

検証できる証明書

実行するたびに、strategy-verdict/1 JSON 証明書が生成されます。証明書には、判定結果、すべてのチェック、 メトリクス、データ、シグナル、コードの SHA-256 ハッシュが含まれます。

monte-neo verify --recheck verdict.json --ohlcv btc_1h.csv --strategy my_strategy.py  # reproduce it
pip install "monte-neo[sign]"
monte-neo verify --keygen issuer                                  # issuer.key + issuer.pub
monte-neo verify --ohlcv btc_1h.csv --strategy my_strategy.py --sign issuer.key --out verdict.json
monte-neo verify --check-signature verdict.json --public-key issuer.pub

ストラテジーが検証に合格したことを示します:

Monte-Neo による検証済み

[![Verified by Monte-Neo](https://img.shields.io/badge/verified%20by-Monte--Neo-2ea44f)](https://github.com/NeoZorK/Monte-Neo)

証明書と公開鍵を指定して、バッジを検証ページにリンクします (/verify/?cert=<https URL>&key=ed25519:<key>)。閲覧者はワンクリックでブラウザー上から署名を検証でき、データがアップロードされることはありません。

インストール方法

pip install monte-neo              # verifier, CLI and MCP server
pip install "monte-neo[sign]"      # + Ed25519 certificate signing
pip install "monte-neo[parquet]"   # + read .parquet tables
pip install "monte-neo[research]"  # + interactive research CLI
pip install "monte-neo[plot]"      # + charts
pip install "monte-neo[apple]"     # + Metal / MLX research engine (Apple Silicon)
pip install "monte-neo[full]"      # everything

macOS または Linux 上の Python 3.11 以降。

リサーチエンジン(手数料を考慮したバー単位のバックテスト、スイープ、モンテカルロ)

Monte-Neo は Apple Silicon 向けの高速なローカルリサーチエンジンとして始まり、検証器もその上で動作します。 エンジンは引き続き利用できますが、現在はメンテナンスモードで、バグ修正のみ行っています。

from monte_neo.backtest import ExecutionModel, export_sma_sweep, synthetic_ohlcv

ohlc = synthetic_ohlcv(100_000, seed=42)
model = ExecutionModel(commission_bps=5.0, slippage_bps=5.0, warmup_bars=50)
out = export_sma_sweep(ohlc["open"], ohlc["high"], ohlc["low"], ohlc["close"], combos=16, model=model, device="auto")
print(out["device"], out["combos"])
  • 次のバーでの約定、bps 単位のコスト、SL/TP/トレーリングストップ、ファンディング、セッション
  • ゴールデンベクトル、ホールドアウト、ウォークフォワード、CSCV/PBO、モンテカルロヘルパーに対応するエクスポート API
  • Metal / MLX / Numba のデバイス選択と、ハングを防ぐため CPU にフォールバックするメモリープランナー
  • イベントレベルの検証に対応するペーパー OMS

ドキュメント:クイックスタート · エクスポート API · バックテストエンジン

プロジェクトを支援する

Monte-Neo は無料の MIT ライセンスのソフトウェアで、オープンに開発されています。バックテストの失敗を防げた場合、特に次の 3 つの方法でご支援いただけます:

  • GitHubでリポジトリにスターを付ける。スターがあると、クオンツやエージェント開発者に検証器を見つけてもらいやすくなります。
  • 検出したケースや見逃したケースをお知らせください:ディスカッションで共有するか、 最小限のストラテジーファイルを添えてissue を作成してください。 見逃したリークは、新たな Trap Suite ケースとして追加されます。
  • 上記の証明書バッジのセクションを参考に、ストラテジーのリポジトリにバッジを追加すると、検証済みの結果であることを閲覧者に知らせられます。

プロジェクトの状況

Monte-Neo は活発に開発中です(ベータ版)。検証 API と strategy-verdict/1 スキーマは、マイナーリリース間で安定しています。ロードマップをご覧ください。

投資助言ではありません。 Monte-Neo は、調査と検証のためのツールです。レポート、例、参考戦略は手法を示すものであり、いかなる金融商品の購入、売却、取引についても、推奨、申し出、勧誘ではなく、利益を約束するものでもありません。シミュレーション結果や過去の実績は、将来のリターンを予測するものではありません。取引では損失が生じる可能性があり、レバレッジを利用した場合は当初の資金を上回る損失が生じることもあります。判断とその結果はご自身の責任です。助言が必要な場合は、認可を受けたアドバイザーにご相談ください。

貢献

バックテストがご自身やエージェントを欺いた方法を見つけましたか?トラップとして報告してください。 検証ツールが正当な戦略を誤って告発しましたか?誤った告発として報告してください。 バグ報告やプルリクエストを歓迎します。貢献ガイドをご覧ください。 セキュリティの問題は非公開で報告してください:SECURITY.md。

引用

この手法については、技術ノートで説明しています。

Monte-Neo が研究に役立つ場合は、引用してください。GitHub では、このリポジトリを引用の下に引用情報が表示されます(CITATION.cff)。

ライセンス

MIT

コメント

MCP は初めてですか?

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

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