algo-strategy について
用意されたテンプレートを基に、2 モード対応のトレード戦略ファイルを作成するスキルです。銘柄、取引所、時間足、インジケーターライブラリ、実行方式を指定でき、所定の strategies ディレクトリに保存してバックテストとライブ実行のコマンドを案内します。
主な機能
- 01複数の戦略テンプレートに対応
- 02銘柄、取引所、時間足を設定
- 03インジケーターライブラリと実行方式を確認
- 04ホスト互換の戦略ファイルを生成
- 05バックテストとライブ実行のコマンドを提示
活用シーン
- 01カタログのテンプレートから戦略を作成
- 02ML 戦略と学習ファイルを準備
- 03バックテストまたはライブ実行に向けて戦略を準備
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ marketcalls/ openalgo-execution-skills --skill algo-strategyインストール後、Claude Code で/algo-strategyを入力して読み込まれたか確認します。
詳細
テンプレートからデュアルモード対応の戦略ファイルを作成します。
引数
$ARGUMENTS を次の形式で解析します:template symbol exchange interval
$0= テンプレート(例:ema-crossover、rsi、supertrend、donchian、macd、opening-range、atr-breakout、bb-squeeze、ml-logistic、ml-xgb、pairs-trading、regime-trend、event-driven)$1= シンボル(例:SBIN、RELIANCE、NIFTY)。デフォルト:テンプレートのカタログのデフォルト値$2= 取引所(例:NSE、NSE_INDEX、NFO)。デフォルト:テンプレートのカタログのデフォルト値$3= 時間足(例:1m、5m、15m、D)。デフォルト:テンプレートのデフォルト値
引数がない場合は、使用するテンプレートをユーザーに尋ねます。algo-expert/rules/strategy-catalog.md を参照してください。
生成前に必ず確認する項目
引数を解析した後、デフォルト値を黙って適用せず、次の項目をユーザーに尋ねてください。
-
インジケーターライブラリ:(1) openalgo[デフォルト] (2) talib
- デフォルトは openalgo です。talib を使用する場合は、ユーザーが明示的に確認する必要があります。
- 特殊なインジケーター(Supertrend、Donchian、Ichimoku、HMA、KAMA)は、必ず openalgo を使用してください。
-
執行タイプ - デフォルトはテンプレートによって異なります(strategy-catalog.md を参照)。
- (1) end-of-candle (eoc) - バー終値でシグナルを生成し、次のバーで MARKET 注文(ほとんどのテンプレートのデフォルト)
- (2) real-time limit (limit) - ティック駆動の LIMIT 注文を配置(atr-breakout のデフォルト)
- (3) stop-trigger (stop) - ブローカー側の SL/SL-M 注文(opening-range のデフォルト)
テンプレートに推奨されるデフォルトをユーザーに伝え、変更できるようにしてください。
手順
algo-expert/rules/unified-strategy-pattern.md、mode-toggle.md、execution-types.mdを読みます。- 対応するテンプレート
algo-expert/rules/assets/<template>/strategy.pyを読み、ひな形として使用します。 strategies/<template>_<symbol>/ディレクトリが存在しない場合は作成します。- テンプレートを
strategies/<template>_<symbol>/strategy.pyにコピーし、次のように設定します。SYMBOL、EXCHANGE、INTERVAL定数をユーザー指定値に置き換えるINDICATOR_LIBにユーザーが選択した値("openalgo"または"talib")を設定するEXECUTION_TYPEにユーザーが選択した値("eoc"、"limit"、"stop")を設定するSTRATEGY_NAMEを<template>_<symbol>に更新する(デフォルト。環境変数で上書き可能)- 資産クラスに合わせて
PRODUCTを調整する(NSE の株式 → MIS または CNC、NFO → NRML) QUANTITYを妥当な初期値に調整する(株式は 1、先物はロットサイズ)
- ML テンプレート(
ml-logistic、ml-xgb)の場合は、train.pyもコピーし、戦略を実行する前に実行するようユーザーに伝えます。python strategies/ml_logistic_RELIANCE/train.py self-hosted-strategies.mdに従い、ファイルがホスト互換であることを確認します。- まず HOST_SERVER を読み取り、次に OPENALGO_HOST をフォールバックとして読み取る
- 取引所には OPENALGO_STRATEGY_EXCHANGE を読み取る
- SIGTERM/SIGINT ハンドラーを設定する
- ログ出力は stdout のみとする
--modeCLI 引数がない場合、ディスパッチャーが環境変数MODEを読み取る
- 次の情報を表示します。
- ファイルの場所
- 次の手順:
- バックテスト:
python strategies/<name>/strategy.py --mode backtest - ライブ実行:
python strategies/<name>/strategy.py --mode live - /python へのアップロード:
/algo-host <name>で検証し、アップロードガイドを生成
- バックテスト:
利用可能なテンプレート
| テンプレート | デフォルトのシンボル | デフォルトの取引所 | デフォルトの時間足 | デフォルトの執行タイプ |
|---|---|---|---|---|
ema-crossover | SBIN | NSE | 5m | eoc |
rsi | RELIANCE | NSE | 15m | eoc |
supertrend | NIFTY | NSE_INDEX | 5m | eoc |
donchian | NIFTY | NSE_INDEX | D | eoc |
macd | INFY | NSE | D | eoc |
opening-range | SBIN | NSE | 5m | stop |
atr-breakout | RELIANCE | NSE | 5m | limit |
bb-squeeze | TCS | NSE | 15m | eoc |
ml-logistic | RELIANCE | NSE | 15m | eoc |
ml-xgb | RELIANCE | NSE | 15m | eoc |
pairs-trading | SBIN/PNB | NSE | D | eoc(2 レッグ) |
regime-trend | RELIANCE | NSE | D | eoc(ADX+VIX+出来高のゲート) |
event-driven | RELIANCE | NSE | D | scheduled-time |
オプション用テンプレート(short-straddle、iron-condor)には、代わりに /algo-options を使用してください。
コスト
ファイルの COSTS = cost_lookup(PRODUCT, EXCHANGE) は、次の値を自動で解決します。
- MIS + NSE → 0.0225% + Rs 20 + スリッページ 5 bps
- CNC + NSE → 0.111% + Rs 20 + スリッページ 3 bps
- NRML + NFO → 0.018% + Rs 20 + スリッページ 2 bps(先物)
- NRML + NFO(オプションあり)→ 0.098% + Rs 20 + スリッページ 10 bps
ユーザーが異なるブローカー手数料を希望する場合は、定数を上書きするために algo-expert/rules/transaction-costs.md を参照するよう案内してください。
リスクのデフォルト値
テンプレートには妥当な RISK 値が設定されています(strategy-catalog.md を参照)。これらは最適値ではなく初期値であることをユーザーに伝え、実運用の前にバックテストで調整してください。
避けること
- コード、ロガー出力、スキルテキストにアイコンや絵文字を使用しないでください
- 任意のパスにファイルを生成せず、必ず
strategies/<name>/配下に生成してください - ユーザーが明示的に実行するまで、
MODE=liveに自動で切り替えないでください