mcpField
S
sharpe-ratio-non-iid-corrections

sharpe-ratio-non-iid-corrections

github.com/terrylicaデータ・データベース171 回インストール1 日前に更新
リポジトリ

sharpe-ratio-non-iid-corrections について

非正規で系列相関のあるリターンを持つ単一戦略のシャープレシオを評価するリファレンススキルです。分散補正と関連する単一検定統計量を実装し、試行回数による補正は扱いません。

主な機能

  1. 01非 IID シャープレシオの分散補正
  2. 02確率的シャープレシオ(PSR)
  3. 03最小トラックレコード長(MinTRL)
  4. 04臨界シャープレシオと検出力の計算
  5. 05Numba JIT リファレンス実装

活用シーン

  1. 01歪度や裾の重いリターンを持つ戦略の評価
  2. 02推論でラグ 1 の自己相関を考慮
  3. 03ベンチマークに対する必要記録期間の推定

インストール

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

$npx skills add https://github.com/terrylica/cc-skills --skill sharpe-ratio-non-iid-corrections

インストール後、Claude Code で/sharpe-ratio-non-iid-correctionsを入力して読み込まれたか確認します。

同梱ファイル

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

references/
how-to-use-the-sharpe-ratio-2026.md
sharpe_numba.py
sharpe-paper-tracker.md

詳細

シャープレシオの非 IID 補正

リターンが非正規分布で、系列相関がある単一戦略のシャープレシオ推論。López de Prado、Lipton、Zoonekynd(2026)による一般化サンプリング分散と、それを用いる単一検定統計量のリファレンス実装です。

自己進化型スキル:このスキルは使用を通じて改善されます。指示が誤っている場合、パラメーターにずれが生じた場合、または回避策が必要になった場合は、後回しにせず、すぐにこのファイルを修正してください。実際に再現可能な問題がある場合にのみ更新してください。

対象外 — 再追加禁止(運用ルール、2026-10-15)

Deflated Sharpe Ratio やその他の試行回数補正を計算、報告、順位付け、引用してはいけません。これには、FWER および FDR の手順(Holm、Bonferroni/Šidák、Benjamini-Yekutieli、論文の pFDR/oFDR/SFDR)、e-LOND などのオンライン多重検定、期待最大シャープレシオのデフレート、有効試行回数の推定、および試行回数の関数である最小バックテスト期間(MinBTL)が含まれます。MinTRL はこれとは異なる量(1つのルール固有の実績期間)であり、引き続き対象です。これらは意図的にこのスキルから削除されました。代わりに:

  • モデル自体の簡潔さを評価します(自由パラメーターの数、調整の程度)。試行回数を理由にシャープレシオをデフレートして評価しないでください。
  • 実行前の事前登録と未使用データで選択を防止します:実行前に仮説、ルール、評価期間を確定し、どの実行でも使用していないデータで確認してください。
  • 各ルール固有の統計量を報告します:シャープレシオ、ρ補正済み σ[SR̂]、PSR、MinTRL、検出力。

PSR、MinTRL、ρ補正済み分散、検出力は単一検定統計量であり、引き続き対象です。PBO/CSCV は選択手順を表すもので、このルールの対象外です。

クイックスタート

# Run the 9 validation tests (paper Exhibit 1 numerical examples)
uv run --no-project --with numpy --with numba \
  python plugins/quant-research/skills/sharpe-ratio-non-iid-corrections/references/sharpe_numba.py

論文のメタデータ

項目値
タイトルHow to Use the Sharpe Ratio
著者Marcos López de Prado, Alexander Lipton, Vincent Zoonekynd
シリーズADIA Lab Research Paper Series, No. 19
日付March 7, 2026
SSRN5520741
再現実装https://github.com/zoonek/2025-sharpe-ratio
ソース PDFlopez-de-prado-sharpe-2026.pdf

このスキルが実装する分散の導出(セクション2、付録 A.1–A.2)と PSR/MinTRL/検出力の式は、この PDF の式番号を引用しているため、PDF を保持しています。使用するのは該当セクションのみで、転記ではそれ以外を省略しています。

参考資料

トピック参考ファイル
論文の転記(実装対象の抜粋)how-to-use-the-sharpe-ratio-2026.md
式 → 実装の対応表sharpe-paper-tracker.md
Numba JIT 実装sharpe_numba.py
ソース PDFlopez-de-prado-sharpe-2026.pdf
論文の図media/(図表2、分散と自己相関、pp. 12-13)

事前準備:計算する項目

入力値はすべて、評価対象のリターン系列から算出される客観的な値です。

パラメーター意味出典
SR̂観測された(年率換算していない)シャープレシオリターン系列
Tリターンの観測数リターン系列
γ₃, γ₄歪度、ピアソンの尖度(γ₄=3 はガウス分布)リターン系列
ρラグ1の自己相関リターン系列
SR₀帰無仮説におけるベンチマークのシャープレシオ(多くの場合 0)実行前に固定
SR₁, α検出力に用いる対立仮説のシャープレシオと検定サイズ実行前に固定

結果を見る前に、登録時に SR₀、SR₁、α を固定します。SR̂、σ[SR̂]、PSR、T に対する MinTRL、検出力をまとめて報告してください。

主な数式

すべての数式は、ピアソンの尖度の規約(ガウス分布では γ₄=3)を用いた論文の非 IID 分散(式 2~3)に基づきます。

式名称数式関数
2-3SR 分散V[SR̂] = (1/T)·(a − b·γ₃·SR + c·(γ₄−1)/4·SR²)sr_variance()
9PSRΦ((SR̂ − SR₀) / σ[SR₀])psr()
11MinTRL(a − b·γ₃·SR₀ + c·(γ₄−1)/4·SR₀²) · (z_{1−α}/(SR̂−SR₀))²min_trl()
8, 14臨界 SRSR₀ + σ[SR₀]·z_{1−α}critical_sr()
13-15検出力1 − Φ((SR_c − SR₁) / σ[SR₁])power()
17β(第 II 種の過誤)Φ((z_{1−α}·√(a(ρ)) − SR₁·√T) / √(a − b·γ₃·SR₁ + c·(γ₄−1)/4·SR₁²))power() → 1 - power

ここで、a = (1+ρ)/(1−ρ)、b = (1+ρ+ρ²)/(1−ρ²)、c = (1+ρ²)/(1−ρ²) は、AR(1) 分散係数です(ar1_variance_coeffs())。

数値例(論文の図表 1)

ヘッジファンド:T=24 か月、γ₃=−2.448、γ₄=10.164(ピアソン)、SR=0.036/0.079≈0.456、ρ=0.2。

数値方程式値注記
σ[SR̂](非ガウス)式 30.379ガウス分布の 0.214 と比べて 77% 広い
PSR(SR₀=0)式 90.966信頼区間が広くても、依然として有意
PSR(SR₀=0.1)式 9+50.900ベンチマークが厳しくなり、確信度が低下
MinTRL(SR₀=0)式 1119.543 か月T=24 > 19.5 → 十分
MinTRL(SR₀=0.1)式 1139.369 か月SR₀ が SR̂ に近づくと 2 倍以上になる
β(検出力、SR₁=0.5)式 170.411IID 正規分布の 0.224 と比べて 84% 高い
検出力(1−β)式 150.58924 か月の運用実績としては低い

実装アーキテクチャ

4 階層の依存関係(Numba JIT、Rust 対応):

Tier 0: erfinv, norm_cdf, norm_ppf
Tier 1: sr_variance (Eqs 3/58), ar1_variance_coeffs
Tier 2: psr (Eq 9), min_trl (Eq 11), critical_sr (Eq 8)
Tier 3: power (Eqs 12-17)

関連スキル

スキル関連性
opendeviation-eval-metricsレンジバー評価で PSR と MinTRL を使用します(ρ=0 のクイックリファレンス)
adaptive-wfo-epochウォークフォワードの各フォールドについて PSR を報告します

実行後の振り返り

このスキルの実行後、終了する前に次の点を確認してください。

  1. コマンドは成功しましたか? — 成功していない場合は、失敗の原因となった手順またはエラーテーブルを修正します。
  2. パラメーターや出力に変更はありましたか? — 基盤となるツールのインターフェースに変更があった場合は、使用例とパラメーターテーブルを更新して一致させます。
  3. 回避策が必要でしたか? — 別のフラグや追加手順など、その場で工夫する必要があった場合は、次回の実行で同じ回避策が不要になるよう、この SKILL.md を更新します。

問題が実際に発生し、再現可能な場合にのみ更新してください。推測で更新しないでください。

コメント