backtesting-trading-strategies について
クオンツ研究者や戦略開発者向けに、過去データで取引戦略をシミュレーションするスキルです。組み込み戦略、リスク・パフォーマンス指標、パラメーターのグリッド検索、チャート出力に対応します。結果は過去のシミュレーションであり、将来の成績を示すものではありません。
主な機能
- 018種類の組み込み戦略
- 02パフォーマンスとリスク指標の計算
- 03グリッド検索によるパラメーター最適化
- 04エクイティカーブのチャート作成
- 05取引ごとの分析を出力
活用シーン
- 01戦略の過去成績を比較
- 02ドローダウンとリスク指標を確認
- 03パラメーターの組み合わせを検索
- 04取引記録とエクイティカーブを確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ jeremylongshore/ tons-of-skills-marketplace --skill backtesting-trading-strategiesインストール後、Claude Code で/backtesting-trading-strategiesを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
commands/backtest-strategy.mdcompare-strategies.mdoptimize-parameters.mdwalk-forward.mdconfig/settings.yamlreferences/errors.mdexamples.mdimplementation.mdscripts/backtest.pyfetch_data.pymetrics.pyoptimize.pystrategies.pytests/test_metrics.pytest_strategies.py詳細
トレード戦略のバックテスト
概要
過去のデータを使用してトレード戦略をシミュレーションします。結果は過去のシミュレーションを示すものであり、将来のパフォーマンスを予測するものではありません。このフレームワークには、組み込みの8つの戦略、以下の指標、パラメーター最適化が含まれています。
主な機能:
- 事前に構築された8つのトレード戦略(SMA、EMA、RSI、MACD、Bollinger、Breakout、Mean Reversion、Momentum)
- パフォーマンス指標(Sharpe、Sortino、Calmar、VaR、最大ドローダウン)
- パラメーターのグリッドサーチ最適化
- 資産曲線の可視化
- トレードごとの分析
前提条件
このスキルを呼び出す前に、ユーザーはシミュレーションに使用する Python 環境に必要な依存関係をインストールします。
set -euo pipefail
pip install pandas numpy yfinance matplotlib
高度な機能で必要となるオプション:
set -euo pipefail
pip install ta-lib scipy scikit-learn
手順
-
過去のデータを取得します(再利用できるよう
${CLAUDE_SKILL_DIR}/data/にキャッシュされます)。python ${CLAUDE_SKILL_DIR}/scripts/fetch_data.py --symbol BTC-USD --period 2y --interval 1d -
デフォルトまたはカスタムのパラメーターでバックテストを実行します。
python ${CLAUDE_SKILL_DIR}/scripts/backtest.py --strategy sma_crossover --symbol BTC-USD --period 1y python ${CLAUDE_SKILL_DIR}/scripts/backtest.py \ --strategy rsi_reversal \ --symbol ETH-USD \ --period 1y \ --capital 10000 \ --params '{"period": 14, "overbought": 70, "oversold": 30}' -
${CLAUDE_SKILL_DIR}/reports/に保存された結果を分析します。結果には*_summary.txt(パフォーマンス指標)、*_trades.csv(トレードログ)、*_equity.csv(資産曲線データ)、*_chart.png(資産曲線の可視化)が含まれます。 -
グリッドサーチでパラメーターを最適化し、最適な組み合わせを見つけます。
python ${CLAUDE_SKILL_DIR}/scripts/optimize.py \ --strategy sma_crossover \ --symbol BTC-USD \ --period 1y \ --param-grid '{"fast_period": [10, 20, 30], "slow_period": [50, 100, 200]}'
出力
パフォーマンス指標
| 指標 | 説明 |
|---|---|
| 総リターン | 全体の利益または損失の割合 |
| CAGR | 年平均成長率 |
| シャープ比率 | 過去のリスク調整後リターン |
| ソルティノ比率 | 下方リスク調整後リターン |
| カルマーレシオ | リターンを最大ドローダウンで割った値 |
リスク指標
| 指標 | 説明 |
|---|---|
| 最大ドローダウン | ピークから谷までの最大下落幅 |
| VaR (95%) | 信頼水準95%のバリュー・アット・リスク |
| CVaR (95%) | VaRを超える予想損失 |
| ボラティリティ | 年率換算した標準偏差 |
トレード統計
| 指標 | 説明 |
|---|---|
| 総トレード数 | 往復トレードの数 |
| 勝率 | 利益が出たトレードの割合 |
| プロフィットファクター | 総利益を総損失で割った値。損失が観測されていない場合は該当なし |
| 期待値 | トレードごとの期待値 |
出力例
図を含まないレイアウトです。実際の値は入力系列、手数料、スリッページ、 戦略、パラメーターによって異なります。これらのプレースホルダーを測定済みのリターンとして提示しないでください。
HISTORICAL SIMULATION: [strategy]
[symbol] | [start_date] to [end_date]
Total Return: [computed] | Max Drawdown: [computed]
Sharpe Ratio: [computed] | Win Rate: [computed]
Total Trades: [observed] | Profit Factor: [computed or N/A]
損失トレードが観測されていない場合、プロフィットファクターは利用できません。これには、トレード数がゼロの場合や、勝ちまたは損益分岐のトレードが1回だけの場合も含まれます。負けトレードが1回だけの場合、総利益をその損失で割った値はゼロになりますが、これは戦略の質を示す証拠ではありません。トレード数がゼロまたは1回のサンプルではパフォーマンスを評価できません。また、最適化は過去データを用いたインサンプル比較であり、予測ではありません。
対応する戦略
| 戦略 | 説明 | 主なパラメーター |
|---|---|---|
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 |
設定
${CLAUDE_SKILL_DIR}/config/settings.yaml を作成します。
data:
provider: yfinance
cache_dir: ./data
backtest:
default_capital: 10000 # Starting simulated capital in quote-currency units
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
エラー処理
よくある問題と解決策については、Read を使用して references/errors.md を確認してください。
例
詳しい使用例については、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 - ポートフォリオ分析