backtesting-trading-strategies
暗号資産と従来の取引戦略を過去のデータで検証します。シャープレシオ、ソルティーノレシオ、最大ドローダウンなどのパフォーマンス指標を計算し、エクイティカーブを生成、戦略パラメータを最適化します。取引戦略のテスト、シグナルの検証、複数のアプローチの比較が必要な場合にご利用ください。「戦略のバックテスト」「取引戦略のテスト」「過去のパフォーマンス」「トレードのシミュレーション」「パラメータの最適化」「シグナルの検証」などのキーワードで起動します。
description の原文を見る
Backtest crypto and traditional trading strategies against historical data. Calculates performance metrics (Sharpe, Sortino, max drawdown), generates equity curves, and optimizes strategy parameters. Use when user wants to test a trading strategy, validate signals, or compare approaches. Trigger with phrases like "backtest strategy", "test trading strategy", "historical performance", "simulate trades", "optimize parameters", or "validate signals".
SKILL.md 本文
トレード戦略のバックテスト
概要
リアルマネーを使用する前に、トレード戦略を過去データに対して検証します。このスキルは、8つの組み込み戦略、包括的なパフォーマンス指標、パラメータ最適化を備えた完全なバックテストフレームワークを提供します。
主な機能:
- 8つの事前構築されたトレード戦略 (SMA、EMA、RSI、MACD、ボリンジャー、ブレイクアウト、平均回帰、モメンタム)
- 完全なパフォーマンス指標 (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
カスタムパラメータでの高度なバックテスト:
# 例: 特定の日付範囲でバックテストを実行
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]}'
出力
パフォーマンス指標
| 指標 | 説明 |
|---|---|
| Total Return | 総収益率の増減% |
| CAGR | 年間複合成長率 |
| Sharpe Ratio | リスク調整後リターン (目標: >1.5) |
| Sortino Ratio | 下側リスク調整後リターン |
| Calmar Ratio | リターンを最大ドローダウンで除した値 |
リスク指標
| 指標 | 説明 |
|---|---|
| Max Drawdown | 最大ピークから谷への下落幅 |
| VaR (95%) | 95% の信頼度における Value at Risk |
| CVaR (95%) | VaR を超える予想損失 |
| Volatility | 年率換算の標準偏差 |
トレード統計
| 指標 | 説明 |
|---|---|
| Total Trades | ラウンドトリップトレードの数 |
| Win Rate | 利益を上げたトレードの割合 |
| Profit Factor | 総利益を総損失で除した値 |
| Expectancy | トレードあたりの期待値 |
出力例
================================================================================
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%
slippage: 0.0005 # 0.05% のスリッページ
risk:
max_position_size: 0.95
stop_loss: null # オプション: 固定ストップロス
take_profit: null # オプション: 固定テイクプロフィット
エラーハンドリング
一般的な問題と解決策については {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 - ポートフォリオ分析
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- Brmbobo
- リポジトリ
- Brmbobo/Web2podcast
- ライセンス
- MIT
- 最終更新
- 2026/1/26
Source: https://github.com/Brmbobo/Web2podcast / ライセンス: MIT
関連スキル
hugging-face-trackio
Trackioを使用してMLトレーニング実験を追跡・可視化できます。トレーニング中のメトリクスログ記録(Python API)、トレーニング診断のアラート発火、ログされたメトリクスの取得・分析(CLI)が必要な場合に活用してください。リアルタイムダッシュボード表示、Webhookを使用したアラート、HF Space同期、自動化向けのJSON出力に対応しています。
btc-bottom-model
ビットコインのサイクルタイミングモデルで、加重スコアリングシステムを搭載しています。日次パルス(4指標、32ポイント)とウィークリー構造(9指標、68ポイント)の2カテゴリーにわたる13の指標を追跡し、0~100のマーケットヒートスコアを算出します。ETFフロー、ファンディングレート、ロング/ショート比率、恐怖・貪欲指数、LTH-MVRV、NUPL、SOPR(LTH+STH)、LTH供給率、移動平均倍率(365日MA、200週MA)、週次RSI、出来高トレンドに対応します。市場サイクル全体を通じて買いと売りの両方の推奨を提供します。ビットコインの底値拾い、BTCサイクルポジション、買い時・売り時、オンチェーン指標、MVRV、NUPL、SOPR、LTH動向、ETFの流出入、ファンディングレート、恐怖指数、ビットコインが過熱状態か、マイナーコスト、暗号資産市場のセンチメント、BTCのポジションサイジング、「今ビットコインを買うべきか」「BTCが天井をつけているか」「オンチェーン指標は何を示しているか」といった質問の際にこのスキルを活用します。
protein_solubility_optimization
タンパク質の溶解性最適化 - タンパク質の溶解性を最適化します。タンパク質の特性を計算し、溶解性と親水性を予測し、有効な変異を提案します。タンパク質配列の特性計算、タンパク質機能の予測、親水性計算、ゼロショット配列予測を含むタンパク質エンジニアリング業務に使用できます。3つのSCPサーバーから4つのツールを統合しています。
research-lookup
Parallel Chat APIまたはPerplexity sonar-pro-searchを使用して、最新の研究情報を検索できます。学術論文の検索にも対応しています。クエリは自動的に最適なバックエンドにルーティングされるため、論文の検索、研究データの収集、科学情報の検証に活用できます。
tree-formatting
ggtree(R)またはiTOL(ウェブ)を使用して、系統樹の可視化とフォーマットを行います。系統樹を図として描画する際、ツリーレイアウトの選択、分類学に基づく枝やラベルの色付け、クレードの折りたたみ、サポート値の表示、またはツリーへのオーバーレイ追加が必要な場合に使用してください。系統推定(protein-phylogenyスキルを使用)やドメイン注釈(今後の独立したスキル)には使用しないでください。
querying-indonesian-gov-data
インドネシア政府の50以上のAPIとデータソースに接続できます。BPJPH(ハラール認証)、BOM(食品安全)、OJK(金融適正性)、BPS(統計)、BMKG(気象・地震)、インドネシア中央銀行(為替レート)、IDX(株式)、CKAN公開データポータル、pasal.id(第三者法MCP)に対応しています。インドネシア政府データを活用したアプリ開発、.go.idウェブサイトのスクレイピング、ハラール認証の確認、企業の法的適正性の検証、金融機関ステータスの照会、またはインドネシアMCPサーバーへの接続時に使用できます。CSRF処理、CKAN API使用方法、IP制限回避など、すぐに実行可能なPythonパターンを含んでいます。