mcpField
R
rl-execution

rl-execution

github.com/agiprolabsデータ・データベース456435 回インストール8 週間前に更新
リポジトリ

rl-execution について

取引コストを抑える大口注文の分割・執行タイミングを、強化学習で研究するためのスキルです。戦略シミュレーションとAlmgren–Chrissモデルを扱います。

主な機能

  1. 01強化学習の状態・行動・報酬設計
  2. 02TWAP、VWAP、自適応戦略のシミュレーション
  3. 03Almgren–Chriss軌道の計算
  4. 04マーケットインパクトのモデル化

活用シーン

  1. 01シミュレーション市場での執行戦略比較
  2. 02大口注文の適応型スケジューリング研究
  3. 03価格インパクトを踏まえた執行コスト推定

インストール

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

$npx skills add https://github.com/agiprolabs/claude-trading-skills --skill rl-execution

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

同梱ファイル

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

references/
execution_algorithms.md
rl_framework.md
scripts/
almgren_chriss.py
execution_simulator.py

詳細

RL による執行最適化

取引執行における強化学習(RL)では、エージェントに大口注文を分割してタイミングを調整させ、総市場インパクトを最小限に抑える方法を学習させます。固定スケジュール(TWAP、VWAP)に従う代わりに、RL エージェントはリアルタイムの市場状態を観測し、その場で取引レートを調整します。

執行最適化が重要な理由

すべての取引には、提示スプレッド以外にもコストが発生します。

コスト項目原因典型的な規模
スプレッドコストビッドとアスクの間で約定することDEX で 5~50 bps
一時的インパクト流動性の消費取引レートに応じて増加
永続的インパクト情報漏洩総取引量に応じて増加
タイミングリスク待機中の価格変動ボラティリティと時間に応じて増加

流動性の薄いプールで 100 SOL の成行買いを行うと、価格が 2~5% 動く可能性があります。これを数分かけて 10 SOL ずつ 10 回に分ければ、コストを 30~60% 削減できます。問題は、最適に分割する方法です。そこで執行アルゴリズムと RL が活用されます。

執行のための RL フレームワーク

状態空間

エージェントは各意思決定ステップで、次の情報を観測します。

state = [
    remaining_qty,    # How much is left to trade (0-1 normalized)
    time_remaining,   # Fraction of allowed horizon remaining
    current_price,    # Current mid-price (normalized to arrival price)
    spread,           # Current bid-ask spread
    volatility,       # Recent realized volatility
    volume,           # Recent trading volume (normalized)
]
行動空間

各ステップで取引する量を制御する離散行動です。

actions = [0%, 10%, 25%, 50%, 100%]  # of remaining quantity

行動空間を小さくすると、問題を扱いやすくできます。各行動は、現在の時間ステップで執行する残り注文量の割合を表します。

報酬関数

報酬は、ベンチマークと比較した執行コストにペナルティを与えます。

reward = -(execution_price - arrival_price) * quantity_traded

すべてのステップで合計すると、総報酬は実装ショートフォールの負の値になります。エージェントは総コストを最小化するよう学習します。

エピソードの構成

1 エピソードは、注文の発注から完了までを表します。

  1. エージェントが注文を受け取ります:T 個の時間ステップ以内に Q 単位を買う、または売る
  2. 各ステップで、エージェントが行動(取引量)を選択します
  3. 市場シミュレーターが価格インパクトを適用し、状態を更新します
  4. 数量がすべて執行されるか、時間が切れるとエピソードが終了します
  5. 期限時点で残っている数量は、成行で執行されます(ペナルティ)

標準的な執行アルゴリズム

TWAP(時間加重平均価格)

最も単純なベースラインです。すべての時間ステップに注文を均等に分割します。

trade_per_step = total_quantity / num_steps

利点:シンプルで決定論的であり、実装が容易です。 欠点:市場の状況をまったく考慮しません。

VWAP(出来高加重平均価格)

各期間の予想出来高に比例して注文を分割します。

trade_at_step_t = total_quantity * (expected_volume[t] / total_expected_volume)

利点:流動性があるときに取引量を増やします。 欠点:正確な出来高予測が必要であり、適応性もありません。

Almgren-Chriss 最適執行

基礎となる分析モデルです。執行コストとタイミングリスクの組み合わせを最小化します。

minimize: E[cost] + λ * Var[cost]

線形インパクトを仮定すると、最適な執行軌道を閉形式で導出できます。完全な導出については、references/execution_algorithms.md を参照してください。

RL ベースの適応型執行

シミュレーションでの経験から執行ポリシーを学習する RL エージェント(DQN、PPO など)です。

# Pseudocode training loop
for episode in range(num_episodes):
    state = env.reset(order_qty=Q, horizon=T)
    done = False
    while not done:
        action = agent.select_action(state)
        next_state, reward, done, info = env.step(action)
        agent.store_transition(state, action, reward, next_state, done)
        agent.update()
        state = next_state

利点:現在の市場状況に適応し、非線形パターンを学習できます。 欠点:現実的なシミュレーターが必要であり、シミュレーションと実環境のギャップや学習の不安定さがあります。

価格インパクトモデル

シミュレーターでは、標準的な 2 要素のインパクトモデルを使用します。

temporary_impact = η * (trade_rate / avg_volume)
permanent_impact = γ * (trade_rate / avg_volume)
  • 一時的インパクトは取引後に減衰します(流動性が回復します)
  • 永続的インパクトは均衡価格を変動させます(情報効果)

時刻 t にサイズ q の取引を行う場合の執行価格:

exec_price = mid_price + permanent_impact + temporary_impact
mid_price_next = mid_price + permanent_impact + noise

このスキルを使用する場面

このスキルが特に役立つのは、次のような場合です。

  • 注文サイズが利用可能な流動性に対して大きい(日次出来高の 1% 超)
  • 市場インパクトが大きい(流動性の薄い DEX プール、時価総額の小さいトークン)
  • 執行時間枠に柔軟性がある(ミリ秒単位ではなく、数分から数時間)
  • コスト削減によって複雑さを正当化できる(機関投資家規模の注文)

小口の個人注文(流動性の高いペアで 1,000 ドル未満)では、単純な成行注文や基本的なスリッページ上限で十分です。代わりに slippage-modeling スキルを参照してください。

実用上の制約

  1. シミュレーションと実環境の差:シミュレーション市場では、実際のあらゆる動態(キュー内の位置、敵対的なフロー、MEV)を再現できません。
  2. 非定常性:市場のマイクロストラクチャーは時間とともに変化するため、あるレジームで学習したモデルが別のレジームでは機能しない場合があります。
  3. DEX 特有の事情:オンチェーンでの執行は連続時間ではなく、ブロック単位の粒度(Solana では約 400ms)になります。ガス代や優先手数料もコストに加わります。
  4. データ要件:現実的なシミュレーションには、学習用の過去のオーダーブックデータまたは取引データが必要です。

他のスキルとの連携

スキル連携
slippage-modelingシミュレーターの調整に使うインパクト推定値を提供します
position-sizing執行する注文の合計サイズを決定します
liquidity-analysis現実的なシミュレーションに必要な利用可能流動性を評価します
volatility-modeling状態ベクトルに使うボラティリティ推定値を提供します
jupiter-swap算出した取引スケジュールを実際にオンチェーンで執行します

クイックスタート

執行戦略を比較する(API 不要)
python scripts/execution_simulator.py

シミュレーション市場で TWAP、VWAP、適応型戦略を実行し、多数の試行にわたる執行コストを比較します。

Almgren-Chriss の最適軌道
python scripts/almgren_chriss.py

指定した市場パラメーターに基づいて解析的に最適な執行軌道を計算し、TWAP と比較します。

ファイル

参考資料
  • references/execution_algorithms.md — TWAP、VWAP、Almgren-Chriss、IS、RL の執行アルゴリズムと、その数式および比較
  • references/rl_framework.md — MDP の定式化、環境設計、学習方法、RL 執行に関する実用上の考慮事項
スクリプト
  • scripts/execution_simulator.py — 価格インパクトを考慮し、TWAP、VWAP、適応型戦略を比較する注文執行シミュレーター
  • scripts/almgren_chriss.py — 軌道の計算とコスト分析を行う Almgren-Chriss 最適執行モデル

依存関係

uv pip install numpy

API キーは不要です。すべてのスクリプトはシミュレーション/デモモードで実行されます。

参考文献

  • Almgren, R. & Chriss, N. (2001). 「ポートフォリオ取引の最適執行」 Journal of Risk, 3(2), 5-39.
  • Bertsimas, D. & Lo, A. (1998). 「執行コストの最適制御」 Journal of Financial Markets, 1(1), 1-50.
  • Ning, B., Lin, F. H. T., & Jaimungal, S. (2021). 「最適執行のための Double deep Q-learning」Applied Mathematical Finance, 28(4), 361-380.

免責事項

このスキルは、執行アルゴリズムの研究を目的とした教育用分析ツールを提供します。金融アドバイスではありません。シミュレーション結果が実際の運用成果を保証するものではありません。規模を拡大する前に、必ず小さなサイズで執行戦略をテストしてください。

コメント