backtesting-trading-strategies について
クオンツ取引の調査担当者向けに、過去データで売買戦略を検証するスキルです。8種類の戦略、パフォーマンス・リスク指標、パラメーターのグリッド検索と、資産曲線を含むレポート出力に対応します。
主な機能
- 018種類の組み込み売買戦略
- 02パフォーマンスとリスク指標の計算
- 03グリッド検索によるパラメーター最適化
- 04資産曲線の可視化
- 05取引ログとレポートの出力
活用シーン
- 01過去価格データで戦略を評価
- 02ドローダウンとリスク指標を比較
- 03戦略のパラメーター候補を検索
- 04個別取引と資産曲線を確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ gracefullight/ stock-checker --skill backtesting-trading-strategiesインストール後、Claude Code で/backtesting-trading-strategiesを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
config/settings.yamlreferences/errors.mdexamples.mdimplementation.mdscripts/backtest.pyfetch_data.pymetrics.pyoptimize.pystrategies.py詳細
トレーディング戦略のバックテスト
概要
実資金をリスクにさらす前に、過去のデータを使用してトレーディング戦略を検証します。このスキルでは、8 つの組み込み戦略、包括的なパフォーマンス指標、パラメーター最適化を備えた完全なバックテストフレームワークを提供します。
主な機能:
- 8 つの事前構築済みトレーディング戦略(SMA、EMA、RSI、MACD、Bollinger、Breakout、Mean Reversion、Momentum)
- 包括的なパフォーマンス指標(Sharpe、Sortino、Calmar、VaR、最大ドローダウン)
- パラメーターのグリッドサーチによる最適化
- エクイティカーブの可視化
- 取引ごとの分析
前提条件
必要な依存関係をインストールします。
pip install pandas numpy yfinance matplotlib
高度な機能を利用する場合は、次の依存関係も必要です。
pip install ta-lib scipy scikit-learn
手順
ステップ 1:過去のデータを取得する
python {baseDir}/scripts/fetch_data.py --symbol BTC-USD --period 2y --interval 1d
データは再利用できるよう、{baseDir}/data/{symbol}_{interval}.csv にキャッシュされます。
ステップ 2:バックテストを実行する
デフォルトのパラメーターで基本的なバックテストを実行します。
python {baseDir}/scripts/backtest.py --strategy sma_crossover --symbol BTC-USD --period 1y
カスタムパラメーターを指定して高度なバックテストを実行します。
# Example: backtest with specific date range
python {baseDir}/scripts/backtest.py \
--strategy rsi_reversal \
--symbol ETH-USD \
--period 1y \
--capital 10000 \
--params '{"period": 14, "overbought": 70, "oversold": 30}'
ステップ 3:結果を分析する
結果は {baseDir}/reports/ に保存されます。内容は次のとおりです。
*_summary.txt- パフォーマンス指標*_trades.csv- 取引ログ*_equity.csv- エクイティカーブのデータ*_chart.png- エクイティカーブの画像
ステップ 4:パラメーターを最適化する
グリッドサーチで最適なパラメーターを見つけます。
python {baseDir}/scripts/optimize.py \
--strategy sma_crossover \
--symbol BTC-USD \
--period 1y \
--param-grid '{"fast_period": [10, 20, 30], "slow_period": [50, 100, 200]}'
出力
パフォーマンス指標
| 指標 | 説明 |
|---|---|
| 総リターン | 全体の利益または損失の割合 |
| CAGR | 年平均成長率 |
| シャープレシオ | リスク調整後リターン(目標:>1.5) |
| ソルティノレシオ | 下方リスク調整後リターン |
| カルマーレシオ | リターンを最大ドローダウンで割った値 |
リスク指標
| 指標 | 説明 |
|---|---|
| 最大ドローダウン | ピークからボトムまでの最大下落幅 |
| VaR(95%) | 信頼水準 95% のバリュー・アット・リスク |
| CVaR(95%) | VaR を超える損失の期待値 |
| ボラティリティ | 年率換算した標準偏差 |
取引統計
| 指標 | 説明 |
|---|---|
| 総取引数 | 往復取引の数 |
| 勝率 | 利益が出た取引の割合 |
| プロフィットファクター | 総利益を総損失で割った値 |
| 期待値 | 取引ごとの期待値 |
出力例
================================================================================
BACKTEST RESULTS: SMA CROSSOVER
BTC-USD | [start_date] to [end_date]
================================================================================
PERFORMANCE | RISK
Total Return: +47.32% | Max Drawdown: -18.45%
CAGR: +47.32% | VaR (95%): -2.34%
Sharpe Ratio: 1.87 | Volatility: 42.1%
Sortino Ratio: 2.41 | Ulcer Index: 8.2
--------------------------------------------------------------------------------
TRADE STATISTICS
Total Trades: 24 | Profit Factor: 2.34
Win Rate: 58.3% | Expectancy: $197.17
Avg Win: $892.45 | Max Consec. Losses: 3
================================================================================
対応する戦略
| 戦略 | 説明 | 主なパラメーター |
|---|---|---|
sma_crossover | 単純移動平均のクロスオーバー | fast_period、slow_period |
ema_crossover | 指数移動平均のクロスオーバー | fast_period、slow_period |
rsi_reversal | RSI の買われすぎ・売られすぎ | period、overbought、oversold |
macd | MACD シグナルラインのクロスオーバー | fast、slow、signal |
bollinger_bands | バンドを利用した平均回帰 | period、std_dev |
breakout | レンジからの価格ブレイクアウト | lookback、threshold |
mean_reversion | 移動平均への回帰 | period、z_threshold |
momentum | 変化率モメンタム | period、threshold |
設定
{baseDir}/config/settings.yaml を作成します。
data:
provider: yfinance
cache_dir: ./data
backtest:
default_capital: 10000
commission: 0.001 # 0.1% per trade
slippage: 0.0005 # 0.05% slippage
risk:
max_position_size: 0.95
stop_loss: null # Optional fixed stop loss
take_profit: null # Optional fixed take profit
エラー処理
よくある問題と解決方法については、{baseDir}/references/errors.md を参照してください。
例
次の内容を含む詳しい使用例については、{baseDir}/references/examples.md を参照してください。
- 複数資産の比較
- ウォークフォワード分析
- パラメーター最適化のワークフロー
ファイル
| ファイル | 用途 |
|---|---|
scripts/backtest.py | メインのバックテストエンジン |
scripts/fetch_data.py | 過去データの取得 |
scripts/strategies.py | 戦略の定義 |
scripts/metrics.py | パフォーマンスの計算 |
scripts/optimize.py | パラメーターの最適化 |
リソース
- yfinance - Yahoo Finance のデータ
- TA-Lib - テクニカル分析ライブラリ
- QuantStats - ポートフォリオ分析
コメント
Markdown 対応