algo-expert について
OpenAlgoで本番向けのアルゴリズム取引戦略を構築するためのナレッジベースです。バックテストとライブ実行に加え、リスク、コスト、データ、注文、自ホスト型戦略ホストへのデプロイを扱います。
主な機能
- 01単一ファイルでのバックテストとライブ実行
- 02VectorBTによるバックテストとコストモデル
- 03OpenAlgo SDKとWebSocketによる実行
- 04ポジションとポートフォリオのリスク指針
- 05セルフホスト型戦略のデプロイパターン
活用シーン
- 01バックテストとライブ取引に対応する戦略の設計
- 02バックテストへの取引コストとスリッページの反映
- 03注文実行とリスク管理の計画
- 04OpenAlgo /pythonへのデプロイ準備
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ marketcalls/ openalgo-execution-skills --skill algo-expertインストール後、Claude Code で/algo-expertを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
rules/duckdb-data.mdevent-loop.mdexecution-patterns.mdexecution-types.mdrules/assets/atr_breakout/strategy.pyrules/assets/bb_squeeze/strategy.pyrules/assets/core/cost_model.pydata_router.pyindicator_adapter.pyportfolio_runner.pypreflight.pyrisk_manager.pysizing.pystate.pystrategy_loader.pyrules/assets/donchian/strategy.pyrules/assets/ema_crossover/strategy.pyrules/assets/event_driven/strategy.pyrules/assets/iron_condor/strategy.pyrules/assets/macd/strategy.pyrules/assets/ml_logistic/strategy.pytrain.pyrules/assets/ml_xgb/strategy.pytrain.pyrules/assets/opening_range/strategy.pyrules/assets/pairs_trading/strategy.pyrules/assets/regime_trend/strategy.pyrules/assets/rsi/strategy.pyrules/assets/short_straddle/strategy.pyrules/assets/supertrend/strategy.py詳細
OpenAlgo 執行エキスパート
本番環境向けのアルゴリズム取引戦略を OpenAlgo 上で構築するためのナレッジベースです。各戦略は単一の Python ファイルで、1 つの CLI フラグ(--mode backtest|live)または環境変数(MODE=...)を使って、**バックテストモード(VectorBT)とライブ実行モード(OpenAlgo SDK + WebSocket)**を切り替えます。
各戦略は、OpenAlgo のセルフホスト環境にある /python 戦略ホストにアップロードしてすぐに使用できます。
基本原則
- 1 つのファイルで 2 つのモードに対応します。 同じ
signals(df)関数が、VectorBT(バックテスト)とライブイベントループの両方に使われます。リスクしきい値とコストの前提は、どちらでも適用されます。 - ブローカー側の処理にはすべて OpenAlgo を使います。 データの取得には
client.history()と WebSocket を使います。注文にはclient.placeorder()/placesmartorder()/optionsmultiorder()を使います。ライブとサンドボックスの切り替えは OpenAlgo の UI アナライザーで行うため、戦略コードがそれを認識することはありません。 - インジケーターライブラリはユーザーが選択します。
openalgo.ta(デフォルト)またはtalibを使用できます。特殊なインジケーター(Supertrend、Donchian、Ichimoku、HMA、KAMA)は、常に openalgo から取得します。rules/indicator-libraries.mdを参照してください。 - 実行タイプは 3 種類です。
eoc(ローソク足終値時の MARKET)、limit(リアルタイムのペッグ LIMIT)、stop(ブローカー側の SL-M トリガー)です。戦略の作成時にユーザーが選択します。rules/execution-types.mdを参照してください。 - 現実的なコストとスリッページを、すべてのバックテストに組み込みます(
vectorbt-backtesting-skillsの 4 セグメントのインド向けモデルに準拠)。rules/transaction-costs.mdとrules/slippage-handling.mdを参照してください。 - セルフホスト環境の
/pythonと互換性があります。すべての戦略は標準の優先順位で環境変数を読み込み、SIGTERM を捕捉し、標準出力にログを記録します。rules/self-hosted-strategies.mdを参照してください。
どのルールを読むべきか
| 知りたい内容... | 読み込むルールファイル |
|---|---|
| 戦略テンプレートの全体像 | unified-strategy-pattern.md、mode-toggle.md、execution-types.md |
| インジケーターの選択 | indicator-libraries.md |
| ポジションサイジング(最も重要な修正) | position-sizing.md |
| 起動時の事前チェック | preflight-checks.md |
| 個々のポジションのリスク | risk-management.md |
| ポートフォリオレベルのリスクと日次上限 | portfolio-risk.md |
| コスト/スリッページのモデル化 | transaction-costs.md、slippage-handling.md |
| データソース(DuckDB、Historify、API) | duckdb-data.md |
| WebSocket とバー確定時のパターン | websocket-feeds.md、event-loop.md |
| 注文発注の慣用パターン | execution-patterns.md、order-constants.md |
| オプション戦略 | options-execution.md |
| ボラティリティ戦略 | volatility-strategies.md |
| ML 戦略 | ml-strategies.md |
| 再起動後も保持する状態 | state-persistence.md |
| ロギングと Telegram アラート | logging-and-alerts.md |
| 本番環境でよくあるミス | pitfalls.md |
| 戦略カタログ/テンプレートの選択 | strategy-catalog.md |
OpenAlgo /python のセルフホスト | self-hosted-strategies.md |
| シンボル形式とロットサイズ | symbol-format.md、lot-sizes.md、order-constants.md |
| SDK リファレンス全体 | sdk-reference.md |
本番環境でのパターン(OpenAlgo の例から抜粋)
- 2 スレッドのライブモデル:シグナルのポーリングスレッド+WS コールバックスレッド(
examples/python/emacrossover_strategy_python.pyより)。WS コールバックから直接注文を発注することはありません。ワーカースレッドを起動します。 - バー終値のロジックでは
iloc[-1]ではなくiloc[-2]を使用します。client.history()の最後のバーは形成中のため、リペイントの原因になります。 - リスク退出には
client.placesmartorder(position_size=0)を使用し、ポジションをきれいに解消します(examples/python/stoploss_target_example.pyより)。 - 複数レッグのオプションエントリーには
client.optionsmultiorder()を使用します。証拠金効率を高めるため、BUY レッグを先にします。レッグごとの SL にはclient.placeorder(price_type="SL")を使用します(examples/python/straddle_with_stops.pyより)。 - 時間ベースのエントリーには、IST cron を使って
apscheduler.schedulers.background.BackgroundSchedulerを使用します(examples/python/straddle_scheduler.pyより)。 - オプション注文の前には必ずスポット価格を取得します。まず
client.quotes()を呼び出し、その後offset="ATM"を指定してclient.optionsorder()を呼び出します。
アンチパターン(必ず避けること)
asyncio— OpenAlgo SDK は同期処理です。代わりにthreadingを使用してください。- ライブデータに対する
df.iloc[-1]— これは形成中のバーです。iloc[-2]を使用してください。 client.history(start_date=end_date)の呼び出し — 1 本のローソク足しか返されません。必ず複数日を対象にしてください。- WS コールバック内での退出注文の直接発注 — ワーカースレッドを起動してください。
- セルフホスト環境での
exchange="NSE"のハードコード — 代わりにOPENALGO_STRATEGY_EXCHANGE環境変数を読み込んでください。 fees=0とslippage=0を指定したバックテスト — 結果は現実離れしたものになります。セグメントに適した定数を使用してください。client.get_ltp()を 0.5 秒より短い間隔でポーリングすること — リアルタイム処理には WS コールバックを使用してください。
参考ドキュメント(OpenAlgo リポジトリ内)
- SDK:
D:/openalgo-python/openalgo/docs/prompt/openalgo python sdk.md - サービス:
D:/openalgo-python/openalgo/docs/prompt/services_documentation.md - WebSocket プロトコル:
D:/openalgo-python/openalgo/docs/prompt/websockets-format.md - セルフホスト版 /python:
D:/openalgo-python/openalgo/strategies/README.md - 本番環境の例:
D:/openalgo-python/openalgo/examples/python/
コメント
Markdown 対応