backtesting について
backtesting は、過去の金融データで取引戦略を検証する OpenClaw スキルです。クオンツトレーダーが実運用前に収益とリスクを評価でき、ポートフォリオ、取引コスト、一般的な指標に対応します。
主な機能
- 01過去の価格データで戦略をシミュレーション
- 02リターン、ボラティリティ、ドローダウンを算出
- 03SMA、RSI、ボリンジャーバンドに対応
- 04複数資産とポートフォリオを処理
- 05コスト、スリッページ、ポジションサイズを考慮
- 06結果を JSON で出力
活用シーン
- 01移動平均クロスオーバー戦略の評価
- 02手数料込みのポートフォリオ成績の検証
- 03ドローダウンとボラティリティによる戦略リスク比較
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ alphaonedev/ openclaw-graph --skill backtestingインストール後、Claude Code で/backtestingを入力して読み込まれたか確認します。
詳細
バックテスト
目的
このスキルを使うと、OpenClaw で過去の金融データを使ったバックテストを実行し、取引戦略をシミュレーションして、リターン、ドローダウン、シャープレシオなどの指標を測定できます。実際の取引を始める前に戦略を検証し、ロジックやリスクエクスポージャーの潜在的な問題を特定するために使用します。
使用する場面
株価データを使った移動平均線のクロスオーバーの評価など、取引戦略の開発や改良にこのスキルを使用します。特に過去のデータが利用でき、戦略の実証的な検証が必要な場合に、アルゴリズム取引、ポートフォリオ最適化、リスク評価の定量分析に使用します。
主な機能
- CSV、JSON、API ソースの過去の価格データを使って取引をシミュレーションします。
- 総リターン、ボラティリティ、最大ドローダウン、リスク調整後リターンなどのパフォーマンス指標を計算します。
- 統合ライブラリを通じて、SMA、RSI、ボリンジャーバンドなどの一般的な指標に対応します。
- 複数の資産やポートフォリオを扱い、取引コスト、スリッページ、ポジションサイズを設定できます。
- 解析や可視化が容易な JSON 形式で結果を出力します。
使用パターン
戦略のバックテストを行うには、戦略ロジック、過去のデータソース、パラメーターを定義した Python スクリプトを用意します。実行前に、必ず環境変数 $OPENCLAW_API_KEY に API キーを設定してください。CLI ではフラグを使って入力を指定し、API では JSON ペイロードを含む POST リクエストを送信します。まず、欠損値や不正なタイムスタンプがないか確認して、データの整合性を検証してください。テストを繰り返し実行し、初回の結果に基づいてパラメーターを調整します。
主なコマンド/API
簡単なテストには OpenClaw CLI を、プログラムからの統合には REST API を使用します。認証するには、環境変数に $OPENCLAW_API_KEY を設定する必要があります。
-
CLI コマンド:戦略ファイルとデータソースを指定してバックテストを実行します。
openclaw backtest --strategy strategy.py --data historical.csv --start-date 2020-01-01 --end-date 2023-01-01 --capital 10000指定した期間と初期資金を使って戦略を実行します。
-
API エンドポイント:JSON ボディを指定して /v1/backtest に POST します。
curl -X POST https://api.openclaw.ai/v1/backtest \ -H "Authorization: Bearer $OPENCLAW_API_KEY" \ -d '{"strategy": "def trade(data): return buy if data['close'] > data['sma'] else sell", "data_source": "historical.csv", "params": {"start_date": "2020-01-01"}}'"returns" や "drawdown" などのキーを含む JSON レスポンスが返されます。
-
設定形式:戦略の設定には、次のような YAML を使用します。
strategy: name: moving_average parameters: period: 20 threshold: 0.05--config strategy.yamlを指定して CLI から読み込みます。
統合に関する注意
データソースのフラグに URL(例:--data https://example.com/data.csv)を指定して、Yahoo Finance や Alpha Vantage などのデータプロバイダーと統合します。Python のワークフローでは、ライブラリとして OpenClaw をインポートします。import openclaw; result = openclaw.backtest(strategy_file='strategy.py', data='historical.csv')。Python 3.8 以降を使用し、pip install openclaw-finance で依存関係を管理して、互換性を確保してください。他のスキルと組み合わせる場合は、出力を連結します。たとえば、"data-fetch" スキルの結果をこのスキルの入力として使用します。
エラー処理
データ形式の誤り、API キーの未設定、戦略の実行失敗などのエラーに備えてください。実行前に $OPENCLAW_API_KEY が設定されていることを確認してください。設定されていない場合、コマンドはコード 401 で終了します。呼び出しを try-except ブロックで囲み、実行時エラーを処理します。例:
try:
openclaw.backtest(strategy='strategy.py', data='historical.csv')
except ValueError as e:
print(f"Data error: {e} - Verify CSV columns match expected format.")
よくある問題:日付が無効な場合はコード 400 が返されます。詳細なログを確認するには --verbose フラグを使用してください。実行前に、戦略コードに構文エラーがないことを必ず検証してください。
具体的な使用例
-
Apple の株価データで、シンプルな SMA クロスオーバー戦略をバックテストします。
openclaw backtest --strategy examples/sma_crossover.py --data aapl_historical.csv --params '{"short_period": 10, "long_period": 30}' --capital 5000短期 SMA が長期 SMA を上抜けたときに買うシミュレーションを行い、年率 15% のリターンなどの指標を出力します。
-
複数の資産と手数料を含むポートフォリオ戦略を評価します。
curl -X POST https://api.openclaw.ai/v1/backtest -H "Authorization: Bearer $OPENCLAW_API_KEY" -d '{"strategy": "portfolio_alloc.py", "data_source": ["aapl.csv", "goog.csv"], "params": {"fee_per_trade": 5.0}}'分散ポートフォリオを評価し、手数料控除後の純リターンを計算します。例:ドローダウン 8% でリターン 12%。
グラフ上の関係
- 関連:trading(戦略の実行に必要)
- 関連:financial-analysis(入力データと指標を提供)
- 接続:risk-management(さらなる分析のためにリスク指標を出力)
- リンク:data-fetch(取得した過去のデータを入力として使用)