关于 rl-execution
面向交易执行研究的强化学习技能,介绍如何拆分和安排大额订单以降低成本,并提供策略模拟与 Almgren–Chriss 分析模型。
主要功能
- 01强化学习状态、动作与奖励设计
- 02TWAP、VWAP 和自适应策略模拟
- 03Almgren–Chriss 轨迹计算
- 04市场冲击建模
适用场景
- 01在模拟市场比较执行策略
- 02研究大额订单的自适应调度
- 03估算价格冲击下的执行成本
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ agiprolabs/ claude-trading-skills --skill rl-execution安装后在 Claude Code 中输入/rl-execution确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/execution_algorithms.mdrl_framework.mdscripts/almgren_chriss.pyexecution_simulator.py详细介绍
RL 执行优化
用于交易执行的强化学习(RL)会教会 Agent 拆分大额订单并选择交易时机,从而最大限度地降低总市场冲击。RL Agent 不再遵循固定计划(TWAP、VWAP),而是观察实时市场状态,并动态调整交易速率。
执行优化为何重要
每笔交易的成本都不止报价价差:
| 成本组成部分 | 成因 | 典型幅度 |
|---|---|---|
| 价差成本 | 跨越买卖价差 | DEX 上为 5-50 bps |
| 临时冲击 | 消耗流动性 | 随交易速率变化 |
| 永久冲击 | 信息泄露 | 随总规模变化 |
| 时机风险 | 等待期间价格漂移 | 随波动率和时间变化 |
在流动性稀薄的池中,100 SOL 的市价买单可能会使价格变动 2-5%。将其拆分为十笔 10 SOL 的小单,并在几分钟内执行,可以降低 30-60% 的成本。问题在于如何进行最优拆分——这正是执行算法和 RL 发挥作用的地方。
执行的 RL 框架
状态空间
Agent 在每个决策步骤观察:
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
将所有步骤的奖励相加,得到的总奖励等于负的执行缺口。Agent 会学习如何最大限度地降低总成本。
回合结构
一个回合 = 从下单到完成的一笔订单:
- Agent 收到订单:在 T 个时间步内买入/卖出 Q 个单位
- 在每个步骤,Agent 选择一个动作(交易量)
- 市场模拟器应用价格冲击并更新状态
- 数量全部执行完毕或时间到期时,回合结束
- 到期时剩余的数量按市价执行(罚则)
标准执行算法
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 Agent(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
优点:能适应当前市场状况,并可学习非线性模式。 缺点:需要逼真的模拟器,存在仿真到现实的差距,且训练不稳定。
价格冲击模型
模拟器采用标准的双组件冲击模型:
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 技能。
实际局限性
- 仿真到现实的差距:模拟市场无法涵盖所有真实动态 (排队位置、对抗性流量、MEV)。
- 非平稳性:市场微观结构会随时间变化;在某种市场状态下 训练的模型可能在另一种状态下失效。
- DEX 特性:链上执行以区块为粒度(Solana 上约为 400ms),而非连续时间。Gas 和优先费会增加成本。
- 数据要求:训练需要历史订单簿或交易数据,以进行逼真的模拟。
与其他技能集成
| 技能 | 集成方式 |
|---|---|
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). “用于最优执行的双重深度 Q 学习。” Applied Mathematical Finance,28(4),361-380。
免责声明
此技能提供用于研究执行算法的教育分析工具,不构成财务建议。模拟结果 不保证实际表现。扩大规模前,务必先用小额测试执行策略。