mcpField
A
algo-expert

algo-expert

github.com/marketcallsその他942 回インストール26 週間前に更新
リポジトリ

algo-expert について

OpenAlgoで本番向けのアルゴリズム取引戦略を構築するためのナレッジベースです。バックテストとライブ実行に加え、リスク、コスト、データ、注文、自ホスト型戦略ホストへのデプロイを扱います。

主な機能

  1. 01単一ファイルでのバックテストとライブ実行
  2. 02VectorBTによるバックテストとコストモデル
  3. 03OpenAlgo SDKとWebSocketによる実行
  4. 04ポジションとポートフォリオのリスク指針
  5. 05セルフホスト型戦略のデプロイパターン

活用シーン

  1. 01バックテストとライブ取引に対応する戦略の設計
  2. 02バックテストへの取引コストとスリッページの反映
  3. 03注文実行とリスク管理の計画
  4. 04OpenAlgo /pythonへのデプロイ準備

インストール

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

$npx skills add https://github.com/marketcalls/openalgo-execution-skills --skill algo-expert

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

rules/
duckdb-data.md
event-loop.md
execution-patterns.md
execution-types.md
rules/assets/atr_breakout/
strategy.py
rules/assets/bb_squeeze/
strategy.py
rules/assets/core/
cost_model.py
data_router.py
indicator_adapter.py
portfolio_runner.py
preflight.py
risk_manager.py
sizing.py
state.py
strategy_loader.py
rules/assets/donchian/
strategy.py
rules/assets/ema_crossover/
strategy.py
rules/assets/event_driven/
strategy.py
rules/assets/iron_condor/
strategy.py
rules/assets/macd/
strategy.py
rules/assets/ml_logistic/
strategy.py
train.py
rules/assets/ml_xgb/
strategy.py
train.py
rules/assets/opening_range/
strategy.py
rules/assets/pairs_trading/
strategy.py
rules/assets/regime_trend/
strategy.py
rules/assets/rsi/
strategy.py
rules/assets/short_straddle/
strategy.py
rules/assets/supertrend/
strategy.py

詳細

OpenAlgo 執行エキスパート

本番環境向けのアルゴリズム取引戦略を OpenAlgo 上で構築するためのナレッジベースです。各戦略は単一の Python ファイルで、1 つの CLI フラグ(--mode backtest|live)または環境変数(MODE=...)を使って、**バックテストモード(VectorBT)とライブ実行モード(OpenAlgo SDK + WebSocket)**を切り替えます。

各戦略は、OpenAlgo のセルフホスト環境にある /python 戦略ホストにアップロードしてすぐに使用できます。

基本原則

  1. 1 つのファイルで 2 つのモードに対応します。 同じ signals(df) 関数が、VectorBT(バックテスト)とライブイベントループの両方に使われます。リスクしきい値とコストの前提は、どちらでも適用されます。
  2. ブローカー側の処理にはすべて OpenAlgo を使います。 データの取得には client.history() と WebSocket を使います。注文には client.placeorder() / placesmartorder() / optionsmultiorder() を使います。ライブとサンドボックスの切り替えは OpenAlgo の UI アナライザーで行うため、戦略コードがそれを認識することはありません。
  3. インジケーターライブラリはユーザーが選択します。openalgo.ta(デフォルト)または talib を使用できます。特殊なインジケーター(Supertrend、Donchian、Ichimoku、HMA、KAMA)は、常に openalgo から取得します。rules/indicator-libraries.md を参照してください。
  4. 実行タイプは 3 種類です。eoc(ローソク足終値時の MARKET)、limit(リアルタイムのペッグ LIMIT)、stop(ブローカー側の SL-M トリガー)です。戦略の作成時にユーザーが選択します。rules/execution-types.md を参照してください。
  5. 現実的なコストとスリッページを、すべてのバックテストに組み込みます(vectorbt-backtesting-skills の 4 セグメントのインド向けモデルに準拠)。rules/transaction-costs.md と rules/slippage-handling.md を参照してください。
  6. セルフホスト環境の /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/

コメント