mcpField
O
optimize

optimize

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

optimize について

トレーダー向けに VectorBT の戦略最適化スクリプトを生成するスキルです。複数の指標でパラメーターを評価し、NIFTY と比較して結果を CSV に保存します。

主な機能

  1. 01戦略と銘柄別のスクリプト生成
  2. 02OpenAlgo ta による指標計算とシグナル整理
  3. 03リターン、シャープレシオ、ドローダウン、取引数の記録
  4. 04リターンとシャープレシオのヒートマップ
  5. 05NIFTY との比較と CSV 保存

活用シーン

  1. 01リターンやシャープレシオの高いパラメーターの探索
  2. 02最適化した戦略と NIFTY ベンチマークの比較

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/marketcalls/vectorbt-backtesting-skills --skill optimize

インストール後、Claude Code で/optimizeを入力して読み込まれたか確認します。

詳細

VectorBT 戦略のパラメーター最適化スクリプトを作成します。

引数

$ARGUMENTS を次の形式で解析します:strategy symbol exchange interval

  • $0 = 戦略名(例:ema-crossover、rsi、donchian)。デフォルト:ema-crossover
  • $1 = シンボル(例:SBIN、RELIANCE、NIFTY)。デフォルト:SBIN
  • $2 = 取引所(例:NSE、NFO)。デフォルト:NSE
  • $3 = 時間足(例:D、1h、5m)。デフォルト:D

引数が指定されていない場合は、最適化する戦略をユーザーに尋ねてください。

手順

  1. 参考パターンとして vectorbt-expert スキルのルールを読みます
  2. backtesting/{strategy_name}/ ディレクトリが存在しない場合は作成します(必要に応じて)
  3. backtesting/{strategy_name}/ に {symbol}_{strategy}_optimize.py という名前の .py ファイルを作成します
  4. スクリプトでは、次のことを行う必要があります。
    • find_dotenv() を使用してプロジェクトルートの .env を読み込み、OpenAlgo の client.history() でデータを取得する
    • ユーザーが DuckDB のパスを指定した場合は、duckdb.connect(path, read_only=True) でデータを直接読み込む。vectorbt-expert の rules/duckdb-data.md を参照してください。
    • スタンドアロンの DuckDB を使用する場合、openalgo.ta をインポートできなければ、インラインの exrem() フォールバックを使用する
    • デフォルトではすべてのインジケーターに OpenAlgo ta を使用する(VectorBT 組み込みのものは使用しない)。ユーザーが明示的に「talib」または「TA-Lib」と指定した場合に限り、TA-Lib に切り替える
    • 特殊なインジケーター(Supertrend、Donchian など)には必ず OpenAlgo ta を使用する(TA-Lib に同等のものがないため)
    • シグナルのクリーニングには ta.exrem() を使用する(必ず exrem の前に .fillna(False) を適用する)
    • 選択した戦略に適したパラメーター範囲を定義する
    • ループベースの最適化を使用して、各組み合わせの複数の指標を収集する
    • 各組み合わせについて、total_return、sharpe_ratio、max_drawdown、trade_count を記録する
    • 進行状況バーには tqdm を使用する
    • インドの現物株式の手数料:fees=0.00111, fixed_fees=20
    • total return と Sharpe ratio のそれぞれについて最適なパラメーターを見つける
    • それぞれの基準で上位 10 件の結果を表示する
    • パラメーターグリッド全体の total return を示す Plotly ヒートマップを生成する(template="plotly_dark")
    • Sharpe ratio を示す Plotly ヒートマップを生成する
    • NIFTY ベンチマークを取得し、最適なパラメーターの結果と比較する
    • 戦略とベンチマークの比較表を表示する
    • 通常のトレーダーにも分かる平易な言葉で結果を説明する
    • 結果を CSV に保存する
  5. コードやロガーの出力にアイコンや絵文字を使用しないでください
  6. 先物シンボルには、ロットサイズを考慮したサイズ設定を使用してください。
    • NIFTY:min_size=65, size_granularity=65
    • BANKNIFTY:min_size=30, size_granularity=30

デフォルトのパラメーター範囲

戦略パラメーター 1パラメーター 2
ema-crossoverfast EMA:5~50slow EMA:10~60
rsiwindow:5~30oversold:20~40
donchianperiod:5~50-
supertrendperiod:5~30multiplier:1.0~5.0

使用例

/optimize ema-crossover RELIANCE NSE D /optimize rsi SBIN

コメント