mcpField
R
residual-edge-analyzer

residual-edge-analyzer

github.com/tradermontyデータ・データベース3.4k2.5k 回インストール2 日前に更新
リポジトリ

residual-edge-analyzer について

Residual Edge Analyzerは、事前に定めたベースライン収益系列と比較し、戦略のリターンに超過分が残るかを検証するスキルです。監査可能な分析向けで、取引の承認やエクスポージャー管理には使いません。

主な機能

  1. 01日付付き戦略・ベースライン収益の分析
  2. 02主モデルと感度モデルの実行
  3. 03HAC/Newey-West標準誤差を用いたOLS
  4. 04JSON成果物とMarkdownレポートの生成
  5. 05頑健性とローリング診断の提示

活用シーン

  1. 01バックテスト収益と単純なベースラインの比較
  2. 02複数のベースラインモデル間での安定性評価
  3. 03引き継ぎ前のアウトオブサンプル証拠の確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/tradermonty/claude-trading-skills --skill residual-edge-analyzer

インストール後、Claude Code で/residual-edge-analyzerを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

requirements.txt
agents/
openai.yaml
references/
input-contract.md
methodology.md
scripts/
analyze_residual_edge.py
scripts/tests/
conftest.py
test_analyze_residual_edge.py

詳細

残差エッジアナライザー

概要

戦略の見かけ上のパフォーマンスが、事前に宣言したベースラインのリターン系列との明示的な比較に耐えるかを検証します。データを取得したり、取引エクスポージャーを変更したりすることなく、監査可能な JSON アーティファクトと簡潔な Markdown レポートを生成します。

これは backtest-expert の後に行う反証ゲートとして扱い、取引の承認には使用しないでください。

前提条件

  • Python 3.9 以降を使用します。
  • ISO 形式の日付、戦略リターン、およびすべてのベースラインリターンを同じ行に含む CSV を 1 つ用意します。
  • 入力仕様に従った JSON 仕様を用意します。
  • 実際の期間リターンを指定してください。CAGR、シャープレシオ、累積損益などの要約指標で代用しないでください。

ワークフロー

1. 結果を確認する前に検証内容を定める

独立したエッジについての主張を 1 文で述べます。戦略を単純に模倣したものとして妥当なベースラインを主要ベースラインに選び、次に少なくとも 1 つの代替ベースラインモデルを選択します。

設定に次の宣言を記録します。

  • baseline_selection: predeclared
  • strategy_return_basis と baseline_return_basis:両方とも gross または両方とも net
  • analysis_scope:out_of_sample、live、または in_sample
  • universe_data:point_in_time、current_constituents、または not_applicable

判定に必要なすべての宣言を必ず指定してください。いずれかを省略すると、問題なしとは見なされず、未宣言として扱われ、レポートは REVIEW_REQUIRED になります。not_applicable は、ユニバースの構成銘柄情報を持たないベースラインを空欄のままにせず、明示的に宣言するための値です。

望ましい残差結果が得られることを理由にベースラインを選ばないでください。

2. リターン系列の仕様を検証する

次の条件を満たすことを確認します。

  • ISO 形式の日付が一意であること。
  • リターンが有限の数値で、-100% を超えていること。
  • 戦略とベースラインの頻度およびコスト基準が同一であること。
  • 同一ユニバースの均等加重またはモメンタムのベースラインでは、当時点の構成銘柄情報を使用していること。
  • レジームラベルが、説明対象の損失期間とは独立して定義されていること。

日付付きの戦略リターン系列が入力にない場合は処理を中止します。要約のみの入力は、観測値を捏造せず、情報不足として報告してください。

3. アナライザーを実行する
python3 skills/residual-edge-analyzer/scripts/analyze_residual_edge.py \
  --input reports/strategy_returns.csv \
  --config reports/residual_edge_config.json \
  --output-json reports/residual_edge_report.json \
  --output-markdown reports/residual_edge_report.md

スクリプトは、事前に宣言した主要モデルとすべての感度分析モデルを 1 回の実行で処理します。切片を含む OLS モデルと HAC/Newey-West 標準誤差を使用します。残差エッジ比率は、年率換算アルファを年率換算残差ボラティリティで割った値として報告します。切片があると残差平均は 0 になるため、未加工の OLS 残差平均からシャープレシオを計算しないでください。

4. エビデンスを解釈する

次の 4 つのステータスを診断ラベルとして使用します。

  • RESIDUAL_EDGE:アルファ、残差エッジ比率、およびローリング安定性が、設定済みのしきい値を満たしています。
  • BASELINE_EXPLAINED:ベースラインの R 二乗が高く、残差のエビデンスが弱い状態です。
  • RESIDUAL_FRAGILE:1 つ以上のロバスト性ゲートを満たさないか、宣言済みのベースラインモデル間で結果が変化します。また、ローリング分析が無効、利用不可、未完了の場合、または感度分析モデルが指定されていない場合にもこのステータスを使用します。
  • INSUFFICIENT_EVIDENCE:サンプル数が設定済みの最小値を下回っています。

decision_eligibility は別途確認してください。統計的に興味深い結果であっても、重要な来歴、コスト基準、サンプル、または多重共線性に関する警告がある場合、ローリング分析のエビデンスが利用できない場合、または代替ベースラインを検証していない場合は、REVIEW_REQUIRED のままです。

次の項目を確認します。

  1. 主要モデルと感度分析モデルのステータス
  2. 年率換算アルファと HAC t 統計量
  3. 残差エッジ比率と残差自己相関
  4. ローリングアルファの安定性
  5. 多因子モデルの VIF
  6. 事前に宣言したレジームごとのアクティブリターンの内訳
5. 調査結果を引き継ぐ
  • ベースラインの選択、OOS、および安定性に関する調査結果を backtest-expert に送ります。
  • 繰り返し発生する残差の失敗レジームを signal-postmortem に送ります。
  • エビデンスと運用上の制約のみを trade-performance-coach に渡します。
  • ポジションサイズ、エクスポージャー、または注文を自動的に変更しないでください。

境界

  • これを保有銘柄ベースの寄与分析と呼ばないでください。Brinson の配分、銘柄選択、相互作用の各効果を算出するには、過去の保有銘柄、ベンチマークのウェイト、構成銘柄のリターンが必要です。
  • 市場指数のみをベースラインとして、銘柄選択によるアルファを主張しないでください。
  • 現在の構成銘柄から等ウェイトのベースラインを作成し、ポイント・イン・タイムのものとして扱わないでください。
  • サンプル内の残差エッジを、確認済みのアルファと解釈しないでください。
  • 損失を確認した後に、多くのレジーム定義を掘り下げないでください。少数の定義を事前に定め、アウト・オブ・サンプルで結果を確認してください。
  • 決定係数が高いことを理由に、戦略に価値がないと決めつけないでください。運用可能規模、テール挙動、コスト、実装価値については、別途エビデンスが必要です。

リソース

  • scripts/analyze_residual_edge.py — CSV を JSON/Markdown に変換する決定論的な分析ツールです。
  • references/input-contract.md — CSV/設定の仕様と、実行可能な例です。
  • references/methodology.md — 統計的な定義、解釈、制約事項です。

コメント