strategy-compare について
トレーダー向けに、同じデータで複数の VectorBT 戦略を比較するスクリプトを生成するスキルです。指標をまとめ、資産曲線を描画し、NIFTY と比較します。
主な機能
- 01銘柄別の比較スクリプト生成
- 02データを一度取得して複数戦略を実行
- 03リターン、シャープレシオ、ソルティノなどの集計
- 04資産曲線の描画と CSV 保存
- 05ベンチマークとして NIFTY を追加
活用シーン
- 01複数戦略の過去のパフォーマンス比較
- 02ロング、ショート、併用モードと NIFTY の評価
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ marketcalls/ vectorbt-backtesting-skills --skill strategy-compareインストール後、Claude Code で/strategy-compareを入力して読み込まれたか確認します。
詳細
戦略比較スクリプトを作成します。
引数
$ARGUMENTS を次のように解析します:シンボルの後に戦略名を指定します
$0= シンボル(例:SBIN、RELIANCE、NIFTY)- 残りの引数 = 比較する戦略(例:ema-crossover rsi donchian)
戦略を指定せずにシンボルだけを指定した場合は、ema-crossover、rsi、donchian、supertrend を比較します。 戦略のいずれかに「long-vs-short」が含まれている場合は、最初の実際の戦略について longonly、shortonly、both を比較します。
手順
- 参考パターンとして、vectorbt-expert スキルのルールを読みます
backtesting/strategy_comparison/ディレクトリが存在しない場合は、必要に応じて作成しますbacktesting/strategy_comparison/に{symbol}_strategy_comparison.pyという名前の.pyファイルを作成します- スクリプトには次の処理を含めます:
- OpenAlgo 経由でデータを一度だけ取得する
- ユーザーが DuckDB のパスを指定した場合は、
duckdb.connect(path, read_only=True)でデータを直接読み込みます。vectorbt-expert のrules/duckdb-data.mdを参照してください。 openalgo.taをインポートできない場合(スタンドアロン DuckDB の場合)は、インラインのexrem()フォールバックを使用します。- デフォルトでは、すべてのインジケーターに OpenAlgo ta を使用します(VectorBT 組み込みのものは使用しないでください)。ユーザーが「talib」または「TA-Lib」と明示的に指定した場合に限り、TA-Lib に切り替えます。
- 特殊なインジケーター(Supertrend、Donchian など)には常に OpenAlgo ta を使用します。TA-Lib に同等のものはありません。
ta.exrem()でシグナルをクリーニングします(exrem の前に必ず.fillna(False)を実行します)。- すべての戦略を同じデータで実行します。
- インド株のデリバリー手数料:デリバリー株式の場合は
fees=0.00111, fixed_fees=20を使用します。 - 各戦略の主要指標を収集し、横並びの DataFrame にまとめます。
- 比較表に NIFTY ベンチマークを含めます(OpenAlgo
NSE_INDEX経由)。 - 戦略とベンチマークの比較表として、Total Return、Sharpe、Sortino、Max DD、Win Rate、Trades、Profit Factor を出力します。
- 結果を平易な言葉で説明します。最もパフォーマンスが高かった戦略とその理由を示します。
- すべての戦略のエクイティカーブを重ねて Plotly でプロットします(
template="plotly_dark")。 - 比較結果を CSV に保存します。
- コードやロガーの出力にアイコンや絵文字を使用しないでください。
使用例
/strategy-compare RELIANCE ema-crossover rsi donchian
/strategy-compare SBIN long-vs-short ema-crossover
コメント
Markdown 対応