mcpField
S
strategy-compare

strategy-compare

github.com/marketcallsデータ・データベース2152.3k 回インストール15 週間前に更新
リポジトリ

strategy-compare について

トレーダー向けに、同じデータで複数の VectorBT 戦略を比較するスクリプトを生成するスキルです。指標をまとめ、資産曲線を描画し、NIFTY と比較します。

主な機能

  1. 01銘柄別の比較スクリプト生成
  2. 02データを一度取得して複数戦略を実行
  3. 03リターン、シャープレシオ、ソルティノなどの集計
  4. 04資産曲線の描画と CSV 保存
  5. 05ベンチマークとして NIFTY を追加

活用シーン

  1. 01複数戦略の過去のパフォーマンス比較
  2. 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 を比較します。

手順

  1. 参考パターンとして、vectorbt-expert スキルのルールを読みます
  2. backtesting/strategy_comparison/ ディレクトリが存在しない場合は、必要に応じて作成します
  3. backtesting/strategy_comparison/ に {symbol}_strategy_comparison.py という名前の .py ファイルを作成します
  4. スクリプトには次の処理を含めます:
    • 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 に保存します。
  5. コードやロガーの出力にアイコンや絵文字を使用しないでください。

使用例

/strategy-compare RELIANCE ema-crossover rsi donchian /strategy-compare SBIN long-vs-short ema-crossover

コメント