01学完这一课,你能做到什么
学完这一课,你应该能:
- 解释大单为什么会产生市场冲击,并算出 子单数量;
- 用比例生成 执行计划,区分事前计划和事后评价;
- 设计拆单的状态、动作和奖励;
- 检查仿真环境是否包含、未完成订单和真实交易约束。
本课讨论的是“已经决定买卖之后,怎样执行得更有纪律”。它不负责判断标的值不值得买,也不把仿真结果当成真实交易表现。
一句话记住先固定总目标,再比较怎么执行。
02大单为什么要拆开执行
假设一次要买入 1000 万股。若把整笔买单直接打进盘口,便宜档位的卖单可能先被吃完,后续成交只能接受更贵的价格。市场还可能察觉到持续买入,导致剩余订单更难成交。由订单行为带来的额外价格偏离,叫市场冲击成本。
拆单就是把总目标分成若干子订单,在一段时间内逐步执行。它可能降低瞬时冲击,但也带来新的风险:等待期间价格上涨、订单没完成、交易意图暴露、临近截止被迫集中成交。比较方法前,要固定总量、方向、期限、交易时间和成交约束。
一次性大单
更快,但可能吃穿盘口并放大瞬时冲击。
分段执行
降低瞬时需求,但承担等待和未完成风险。
一句话记住拆单减少瞬时压力,不会消除执行风险。
03TWAP:按时间均匀分配
TWAP(Time-Weighted Average Price,时间加权平均价格)把执行时间切成多个片段,每段安排相近的数量。假设交易时间是 240 分钟,每 5 分钟一个片段,共 48 段;总量是 100000 股。理论数量为:
每段数量 = 总量 ÷ 片段数 = 100000 ÷ 48 ≈ 2083.33 股。
真实下单不能发出 0.33 股。若按 100 股取整,前面的片段可以先下 2000 股,剩余尾差必须在后续片段补足,最后所有子单的总和仍要精确等于 100000 股。不能每段固定 2000 股后就宣称完成目标。
优点是简单、透明、容易复核;缺点是它对每个片段的实时变化反应有限。某个片段成交量很低时,机械执行同样数量可能产生更大。午间休市不应算进可交易片段;不同市场的交易时段和申报规则也不同。
qₜ = Q ÷ N = 100000 ÷ 48 ≈ 2083.33 股
最终要按交易单位取整,并把尾差补回总量。
一句话记住均匀分配的是计划,不是忽略交易单位。
04VWAP:跟着预期成交量分配
VWAP(Volume-Weighted Average Price,成交量加权平均价格)不是每段买一样多,而是根据历史或实时估计的日内成交量分布来分配。设总目标为 Q,第 t 段预计成交量占全天的比例为 wₜ:
qₜ = Q × wₜ。
假设 Q=100000 股,某段预计占比 8%,则:
qₜ = 100000 × 8% = 8000 股。
所有 wₜ 必须合计为 1,否则计划总量就会偏离目标。
要分清两个概念:事前的成交量比例是执行计划;市场 VWAP 是事后用实际成交价和成交量加权得到的评价基准。历史分布不保证当天有效,突发事件可能让成交高峰换时间。
事前计划
用预计成交量比例分配每一段要执行的数量。
事后基准
用实际成交价和成交量计算平均执行水平。
一句话记住计划用预计量,评价用实际成交量。
05从固定规则到状态驱动
强化学习拆单把每一步看成一次“现在执行多少”的决策。状态可以包含五个维度:
- 剩余订单量;
- 剩余时间;
- 价格相对到达价的偏移;
- 波动率;
- 价格相对 VWAP 的偏移。
动作可以定义为“执行剩余量的比例”,例如 5% 或 10%。临近截止但剩余量很多时,等待的代价会上升;价格暂时下跌时,买入可能更便宜,但也可能意味着流动性正在枯竭,所以不能把它写成固定抄底规则。
PPO(近端策略优化)是一种策略优化方法。它可以处理连续比例,也能处理离散动作;不能把 PPO 和连续动作简单画等号。
- 1读取状态剩余量、时间、价格、波动、VWAP 偏移
- 2输出动作执行比例
- 3模拟成交加入成本与限制
- 4更新环境剩余量和时间
一句话记住价格、时间和进度要一起看。
拆单参数探索
调整订单量、片段数和成交量分布,观察子单计划与执行约束的变化。
调整拆单数量,观察冲击成本与完成时间的取舍
总量取 10 万股、期限取 240 分钟;冲击系数和每片等待是教学假设。
06PPO 中 Actor 和 Critic 各做什么
Actor–Critic(演员—评论家)是两种职责不同的模型:Actor 根据状态给出动作分布,决定执行比例;Critic 估计当前状态的价值,帮助判断动作结果是否高于预期。Actor 调整行为,Critic 改善价值估计。
这和 的在线网络、目标网络不是一回事。DQN 的两个网络都在近似动作价值,只是更新节奏不同;Actor 和 Critic 的输出职责不同。完整 PPO 还包含策略更新幅度控制等机制,本课只用它解释拆单结构,不据此声称已经复原一套可运行程序。
一句话记住Actor 选动作,Critic 估价值。
07仿真环境必须模拟冲击和成本
执行量 V 占日均成交量 ADV 的比例,可以用来描述参与程度。市场冲击常被分成:
- 临时冲击:执行时消耗流动性造成的成交偏离;
- 永久冲击:交易后仍保留的价格影响。
一种简化假设使用平方根响应:冲击大小与 √(V/ADV) 相关。假设其他条件不变,执行量从 100000 股降到 10000 股,比例是 0.1,平方根约 0.316,所以模型中的影响约变成原来的三分之一,而不是十分之一。这个示意不能当成所有市场的定律;正式实现还要核对公式系数、单位、费用和流动性假设。
如果环境没有滑点、冲击、手续费或未完成订单,智能体可能只是在利用模拟器漏洞。
impact ∝ √(V ÷ ADV); √(10000 ÷ 100000) ≈ 0.316
这是同一简化模型下的比例示意,不是普适定律。
一句话记住模型没模拟成本,训练出的优势就不可信。
08奖励要同时鼓励便宜、分散和按时完成
奖励可以先用执行成本的负值表示:冲击越大,扣分越多。还要显式处理三类约束:
- 集中度惩罚:单段执行量超过均匀执行量两倍时,对超出部分扣分;
- 进度惩罚:接近截止时间却剩下很多订单时扣分;
- 执行偏离:明确相对到达价还是相对 VWAP 评价。
这些奖励可能互相冲突。集中度惩罚太大,模型可能不敢抓住短暂的流动性窗口;只奖励低成本,又可能通过不成交获得高分。因此环境要限制合法执行量,并把“在截止时间前完成总量”作为硬验收条件。每个奖励分项都要记录单位、归一化方法和系数。
一句话记住低成本不够,还要完成目标。
09怎样公平比较 TWAP、VWAP 和 PPO
可以把 100000 股、48 个五分钟片段、到达价约 2.47 作为教学样本,先运行 TWAP 和 VWAP 基线,再训练 PPO。记录市场价格、各段成交量、剩余订单、总费用、完成率、到达价缺口、相对市场 VWAP 偏离和最大单段占比。
举一组演示设置:日均成交量约 895 万股,训练 5 万步,实际成交主要集中在约 10 个片段里。这些数字只描述一次实验的设置,换一只股票或一个时段都会变。你自己做时,先说清楚“片段”指的是固定的时间窗口,还是有成交的那些片段。
计算口径也要统一。比如按 2.47 和 2.48 两个价格算,相对差是 (2.48−2.47)÷2.47≈0.00405,约 40.49 bps。如果报告里的数字和你自己算的对不上,先查是不是用了更多位小数或不同的基准价,不要强行解释。
公平比较必须使用同一行情、订单量、期限、成交模型和费用,并且所有方法都完成订单。只比较成交价格,不比较未完成数量,会把“少成交”误判成“执行更好”。
成本
到达价缺口和费用。
完成
完成率和剩余订单。
偏离
相对市场 VWAP。
集中
最大单段占比。
一句话记住比较价格,也要比较完成了多少。
10换标的、换行情,模型可能就失效
A 标的训练出的拆单策略,不一定适用于 B 标的。联合训练相似标的可以扩大样本,但仍要检查价格尺度、流动性、参与率和交易规则差异,并留出没有参与训练的标的做测试。
如果训练数据以震荡为主,遇到持续上涨或下跌时可能失效。可以把趋势、 等当作状态特征,也可以重新安排样本比例,但不能打乱环境内部的真实时间顺序,更不能制造不存在的成交路径。
、现金、上限、最小交易单位、滑点、T+1 和无法成交,都要在训练环境和环境中一致处理。买入指令不等于涨停成交,跌停卖出也不等于一定能卖出。模型只有在状态能表达、训练或压力测试覆盖、约束确实生效时,才值得继续评估。
训练内表现
同一标的、同一行情和同一成交模型下的结果。
未见场景测试
换标的、换行情并加入流动性骤降等压力。
一句话记住环境边界不真实,模型就学不到真实执行。
11动手任务:做一份拆单验收表
先用表格完成 100000 股、48 段的 TWAP 计划,处理交易单位和尾差;再给出一组总和为 1 的成交量比例,生成 VWAP 计划。两份计划都要满足:总量精确、交易时间合法、不出现负数或超量。
取得可运行程序后,先复现 TWAP 和 VWAP 基线,再训练 PPO。保留五维状态、动作含义、奖励分项、训练步数和随机种子,绘制各段成交和剩余量。
增加三种压力场景:中途流动性骤降、持续单边上涨、最后几段无法成交。只要出现未完成订单或假成交,就不能仅凭更低成本判定模型更好。策略从仿真进入模拟或真实执行前,还要经过接口、权限、风控和人工确认。
一句话记住先验收总量和成交真实性,再谈成本。
4 道小题
全部答对,这一课就算真正读懂了。答错了会告诉你为什么。
这一课,浓缩成一张卡
学完可以保存或分享给朋友。保存成图片的功能会在下一版加上。
不能只看成交价格,还要确认订单按时完成,并把成本、规则和未成交量一起纳入比较。
- TWAP 处理尾差
- VWAP 比例合计为 1
- PPO 也要压力测试
记住这 5 句话
- 01大单会消耗盘口流动性并产生市场冲击,拆单降低瞬时需求但引入等待和未完成风险。
- 02TWAP 按时间分配,VWAP 按预计成交量比例分配;计划总量必须精确并符合交易单位。
- 03强化学习拆单要定义剩余量、时间、价格偏移、波动和 VWAP 偏移等状态,以及合法执行比例动作。
- 04成本模型要包含临时或永久冲击、滑点、费用和未完成惩罚,不能让不成交获得高分。
- 05比较方法要统一行情、期限、订单量和成交模型,并测试换标的、趋势行情、涨跌停和流动性骤降。
完成这一课
读完讲义、动手做一次实验、答对小题,这一课就算学完了。
- 读完讲义
- 完成一次拆单参数探索
- 通过随堂自测
实验数据AI+金融投资训练营教学样本。固定教学样本
固定教学样本只用于解释量化研究方法,不代表任何真实标的未来表现,也不构成投资建议。