mcpField
B
backtesting

backtesting

github.com/gauss314データ・データベース252324 回インストール19 週間前に更新
リポジトリ

backtesting について

クオンツ研究者や戦略開発者向けの Python バックテストスキルで、データから研究、指標、パラメーター設定、検証までを扱います。イベント駆動型戦略、リスク指標、ポートフォリオ分析、シミュレーション、ウォークフォワード検証を numpy、pandas、scipy で実行します。

主な機能

  1. 0130 種類以上のリスク・パフォーマンス比率
  2. 0210 種類の指標分類
  3. 038 戦略を備えたイベント駆動型エンジン
  4. 04ウォークフォワード検証とパラメータースイープ
  5. 05将来シミュレーションとストレステスト
  6. 06ポートフォリオ最適化とファンダメンタル比率

活用シーン

  1. 01価格データで売買戦略を評価
  2. 02パラメータースイープで戦略設定を比較
  3. 03ウォークフォワード分割で頑健性を検証
  4. 04ポートフォリオ収益とストレスシナリオをシミュレーション

インストール

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

$npx skills add https://github.com/gauss314/skills --skill backtesting

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

同梱ファイル

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

assets/
contrarian_bbands_returns.csv
defaults.json
frontier.csv
momentum_sma50_200_returns.csv
multi_asset_prices.csv
multi_ma_3_5_8_13_returns.csv
sample_portfolios.json
sp500_close.csv
sp500_returns.csv
trend_bbands_combo_returns.csv
validation_cases.json
references/
BACKTESTING_THEORY.md
FEATURES.md
OTHER_FEATURES.md
RATIOS.md
SIMULATIONS.md
VALIDATION.md
scripts/
__init__.py
backtesting.py
copulas.py
distributions.py
engine.py
forward.py
fundamental_ratios.py
indicators.py
ratios.py
simulations.py
validate.py
tests/
__init__.py
test_ratios.py

詳細

バックテスト — フルバックテストスキル

このスキルは、講座の教材で紹介されている5段階のフルバックテスト手法を実装しています。 データ → リサーチ → 指標 → パラメーター化 → 検証。以下を提供します。

  • 30種類以上のリスク/パフォーマンス比率(フラットな関数、NumPy によるベクトル化、クラス不使用)
  • 講座の分類に沿った10種類の指標クラス(トレンドフォロー、オシレーター、逆張り、フロー、複合、離散カウント、季節性、統計、参照、ファンダメンタル)
  • イベント駆動型バックテストエンジンと8種類の組み込み戦略
  • 将来予測シミュレーション(Johnson SU 周辺分布+t/ガウシアンコピュラ)
  • ポートフォリオ理論(Markowitz 効率的フロンティア、ポートフォリオ・オブ・ポートフォリオ)
  • ウォークフォワード交差検証(IS/OOS 分割+ギャップ)
  • ストレステスト(パラメトリックなシナリオショック)
  • ファンダメンタル分析(Altman Z、Piotroski F、DuPont)

すべてのスクリプトは numpy、pandas、scipy のみを使用します。大規模な依存関係はありません。

Gauss314 Skills Repository の一部です。


ファイル一覧

skills/backtesting/
├── SKILL.md                         ← This file
├── references/
│   ├── BACKTESTING_THEORY.md        ← Marco conceptual: GIGO, trilema, 5 etapas (ES)
│   ├── RATIOS.md                    ← Fórmulas, convención de retornos, advertencias (ES)
│   ├── FEATURES.md                  ← Taxonomía de 10 clases de indicadores con edges (ES)
│   ├── SIMULATIONS.md               ← Pipeline Johnson SU + cópula (ES)
│   ├── VALIDATION.md                ← Suite de validación de 4 niveles (ES)
│   └── OTHER_FEATURES.md            ← Fundamental, Sentimiento, Exógenos (ES)
├── assets/
│   ├── sp500_returns.csv            ← SPY benchmark daily returns (lin + log), 1980-today
│   ├── momentum_sma50_200_returns.csv ← SMA(50)/SMA(200) crossover strategy returns
│   ├── contrarian_bbands_returns.csv  ← Bollinger Band contrarian strategy returns
│   ├── sample_portfolios.json       ← Real investor portfolios (Buffett, Dalio, Ackman, 60/40)
│   ├── defaults.json                ← Default parameters (VaR alpha, windows, etc.)
│   └── validation_cases.json        ← 6 known cases for ratio validation
├── scripts/
│   ├── __init__.py
│   ├── ratios.py                    ← 30+ flat numpy functions for all risk/performance ratios
│   ├── indicators.py                ← 10 classes of technical/statistical/fundamental indicators
│   ├── engine.py                    ← Event-driven BacktestEngine with 8 built-in strategies
│   ├── backtesting.py               ← CLI: run, sweep, walkforward, montecarlo, optmpt, event, validate
│   ├── simulations.py               ← CLI: marginal, copula, run, portfolio, scenarios
│   ├── forward.py                   ← CLI: project, risk, stress, summary
│   ├── distributions.py             ← Fit + KS test for Normal/t/NCt/Laplace/JohnsonSU
│   ├── copulas.py                   ← t/Gaussian/Clayton/Gumbel/Frank copulas + sampling
│   ├── fundamental_ratios.py        ← Income/balance/cashflow metrics, DuPont, Altman Z, Piotroski
│   └── validate.py                  ← 4-level validation: CLI modes, math consistency, edge cases, regression
└── tests/
    └── test_ratios.py               ← 18 pytest tests for core ratios
各ファイルの役割
ファイル役割主な関数/モード
ratios.py中核ライブラリです。すべての比率は1次元配列を受け取るフラットな関数です。sharpe_ratio、max_drawdown、var_all、cvar_all、kelly_fraction、payoff_ratio、profit_factor、rachev_a/b/c、common_sense_ratio、ruin_curve、compute_all
indicators.py講座の分類に含まれるあらゆるタイプを網羅した、10種類の指標クラスです。rsi、adx、bbands、macd、atr、cross_indicator、range_bound、zscore_norm、poisson_rate、binomial_ratio、fourier_terms、best_fit_dist
engine.pyBacktestEngine クラスと8種類の戦略関数です。BacktestEngine、strategy_sma_crossover、strategy_rsi_cross、strategy_bbands_contrarian、strategy_growth_momentum_combo
backtesting.pyメイン CLI です。フルバックテスト、ウォーク、スイープ、最適化を実行します。run、sweep、walkforward、montecarlo、optmpt、event、validate、bench
simulations.pyJohnson SU+コピュラによる将来予測シミュレーションです。marginal、copula、run、portfolio、scenarios
forward.pyリスク予測とストレステストです。project、risk、stress、summary
distributions.py分布のフィッティングと比較です。fit、best_fit、compare_distributions、sample
copulas.pyコピュラのフィッティングとサンプリングです。fit_t、fit_gaussian、sample_t、sample_gaussian、validate_copula
fundamental_ratios.pyファンダメンタル分析の比率です。income_metrics、valuation_metrics、dupont、altman_z、piotroski
validate.py4段階の統合テストスイートです。CLI、数学、エッジケース、回帰にわたる33項目のチェック

クイックスタート

基本的な比率
# Compute all 30+ ratios on a CSV of prices
py scripts/backtesting.py run --prices assets/sp500_returns.csv

# Compute with benchmark comparison
py scripts/backtesting.py run --prices assets/momentum_sma50_200_returns.csv --benchmark assets/sp500_returns.csv
検証(4段階のスイート)
# Full validation (33 checks across 4 levels)
py scripts/validate.py

# Single level
py scripts/validate.py --nivel 1

CLI モード、すべての比率の数学的整合性、エッジケースへの耐性、修正後の回帰を検証します。33項目のチェックの詳細については、references/VALIDATION.md を参照してください。

イベント駆動型バックテスト
# Load a CSV with OHLCV data and run SMA crossover
py scripts/backtesting.py event --data my_stock.csv --strategy sma_crossover --fast 50 --slow 200 --commission 0.001
パラメーターのスイープ
# 2D sweep over fast/slow MA windows
py scripts/backtesting.py sweep --prices assets/sp500_returns.csv --p1-min 10 --p1-max 100 --p1-step 10
# 2D over 2 parameters
py scripts/backtesting.py sweep --prices assets/sp500_returns.csv --p1-min 10 --p1-max 50 --p1-step 5 --p2-min 25 --p2-max 200 --p2-step 25
ウォークフォワード
py scripts/backtesting.py walkforward --prices assets/sp500_returns.csv --splits 5 --gap 21
Markowitz 最適化
py scripts/backtesting.py optmpt --assets assets/sp500_returns.csv --iterations 5000
将来予測シミュレーション
py scripts/simulations.py marginal --returns assets/sp500_returns.csv
py scripts/simulations.py copula --returns assets/sp500_returns.csv --df 4
py scripts/forward.py project --returns assets/sp500_returns.csv --horizon 252 --paths 10000 --drift 0.08
py scripts/forward.py risk --returns assets/sp500_returns.csv --horizon 252 --paths 10000
ポートフォリオシミュレーション
py scripts/simulations.py portfolio --name warren_buffett
py scripts/simulations.py scenarios --name warren_buffett --cagr -0.3,-0.15,0,0.2,0.35,0.5

ライブラリとして比率を使用する

from scripts.ratios import *

prices = np.array([100, 105, 102, 110, 108, 115])
r = linear_returns(prices)    # [0.05, -0.0286, 0.0784, -0.0182, 0.0648]
lr = log_returns(prices)      # [0.0488, -0.0290, 0.0755, -0.0183, 0.0628]

sharpe_ratio(r)               # 0.847
max_drawdown(prices)          # -0.0370
kelly_fraction(lr)            # 0.0793
var_all(r, alpha=0.05)        # {'empirical': ..., 'normal': ..., 'johnsonsu': ...}
profit_factor(lr)             # 2.314
payoff_ratio(lr)              # 1.578
rachev_c(lr, alpha=0.05)      # 1.234
common_sense_ratio(lr)        # 2.856

エンジンの使用

from scripts.engine import BacktestEngine

eng = BacktestEngine(initial_capital=1.0, commission=0.001, slippage=0.0005)
eng.load_data(df_ohlcv)
result = eng.run(strategy='sma_crossover', strategy_params={'fast': 50, 'slow': 200})

print(result['metrics']['sharpe_ratio'])     # 0.847
print(result['trades'])
print(result['metrics'])

依存関係

ライブラリ必須用途
numpy✅ベクトル化計算、配列、cumprod
pandas✅CSV 入出力、ローリング処理、DataFrame
scipy.stats✅分布フィッティング、KS 検定、コピュラ
statsmodels任意indicators.py の STL 分解(クラス5)

フル検証スイート(py scripts/validate.py)を実行するには、レベル4の回帰チェック用に pytest も必要です。

arch、quantlib、sklearn は不要です。


関連項目

  • Gauss314 Skills Repository — 金融データ向けのその他のスキル
  • references/BACKTESTING_THEORY.md — バックテストの概念的な枠組み(ES)
  • references/RATIOS.md — 数式、リターンの規約、注意事項(ES)
  • references/FEATURES.md — エッジを含む10クラスの指標の分類(ES)
  • references/SIMULATIONS.md — Johnson SU + コピュラのパイプライン(ES)
  • references/VALIDATION.md — 4段階の検証スイート(ES)
  • references/OTHER_FEATURES.md — ファンダメンタル、センチメント、外生変数(ES)

コメント