你在二手市场同时挂出几件商品:价格低,容易卖掉,却可能卖亏;价格高,利润更好,又可能无人问津。现在再加一道题:每个价格挂几件,成交后手里还剩多少库存?交易所里的做市商每天都在高速处理这个更复杂的版本。
Patrick Cheridito 与 Moritz Weiss 的论文《Multi-Level Market Making with Reinforcement Learning》,把这组选择交给强化学习——让算法通过反复行动和获得奖励,学习在不同市场状态下如何决策。它不再只报一档买价和卖价,而是在多个价位、买卖方向以及市价单和限价单之间动态分配订单量,同时控制库存。
这项工作的价值首先在于动作更接近真实订单簿,但证据边界也很清楚:以下方法和结果均来自该论文自身,实验全部基于模拟市场,没有实盘数据或第三方复现。
难题不只是“报什么价”
做市商持续挂出买单和卖单,试图赚取买卖价差,同时给市场提供流动性。麻烦在于,订单一旦成交,做市商就会积累库存。价格随后向不利方向移动,刚赚到的价差可能很快被吃掉。
这些委托排在限价订单簿里。订单簿按价格展示尚未成交的买卖单及其数量;同一价格内还要排队,先来的订单优先成交。因此,一张订单是否成交,不只取决于它离最佳报价多远,也取决于前面排了多少数量。
许多既有做市模型为了方便求解,会把动作压缩成“买卖各挂一单”,或者只让算法调整报价离中间价的距离。本文把问题展开了:算法观察多档订单簿、自己的排队位置、过去的订单流和当前库存,再决定不同类型、不同价位分别放多少量。
这里所谓“同时决策价与量”,更准确地说,是在预先定义的多个价位和订单类型之间分配有限订单量,并非连续、无约束地任意选择价格和数量。
把一篮子订单切成不同份额
算法的动作被放进一个单纯形:可以把它理解为一张总和为 100% 的分配表。一部分额度留空,一部分用于立即成交的市价买单或卖单,其余分给买卖两侧不同档位的限价单。由于真实订单量必须是整数,论文再用 Hamilton apportionment method,按照各份额的小数余数分配剩余手数。
这一步的妙处是把一个庞杂的组合决策,改写成“如何切一块固定大小的蛋糕”。论文用 multivariate logistic-normal distribution(多变量逻辑正态分布)生成这些份额。各档分配彼此关联,但最后仍会自然落在总和为 1 的范围内。
算法采用 actor-critic。Actor 是负责行动的策略网络;Critic 是给当前选择估值的网络,用来降低训练时的波动。两者共同学习:前者尝试如何挂单,后者帮助判断哪些动作比预期更好。
订单会换位置,信息不能跟着乱
神经网络通常喜欢固定长度的输入,但做市商留在订单簿里的订单数量会不断变化。同一张订单经过撤单和重新分配后,还可能从输入向量的第二格跑到第四格。普通网络容易把这种存储位置变化误当成信息变化。
论文为此使用 deep-set encoder——一种处理无序、可变长度集合的编码器。它先用同一个网络读取每张订单的价位、排队位置和数量,再按价位聚合成固定维度的表示。就像整理书架时不记“这本书原来排第几”,而是始终按类别归档。订单在数据结构中换了槽位,含义不会跟着漂移;排队优先级仍通过订单特征保留下来。
让奖励来得更及时
做市策略不能只追求成交。论文的奖励同时计入成交现金流、按中间价计算的库存价值变化和库存惩罚;到交易期末,超出限制的库存还要用市价单处理。
其中的 potential-based reward shaping(基于势函数的奖励塑形),相当于把期末才看得见的损益影响,提前拆成沿途反馈。如果只在最后结算持仓价格变化,算法很难判断早先哪个动作造成了结果。论文称这种设计能在理论上不改变最优策略的同时加快学习。不过,相关前提是否完全满足、实际加速多少,材料没有给出量化结果。
模拟市场里,复杂环境拉开了差距
作者设置了三种模拟市场。第一种只有随机下单和撤单的 noise traders;第二种加入根据即时成交量不平衡行动的 tactical traders;第三种再加入沿指数加权成交量不平衡信号方向交易的 strategic traders。后两类参与者会制造方向压力,使限价单更容易在价格即将不利变动前成交,也就是 adverse selection(逆向选择)。
论文用 10,000 个测试样本比较该方法与三种规则策略:TOP1 挂在最佳买卖价,TOP2 挂在第二档,INV 则根据库存调整最佳价位两侧的数量。评价指标是标准化现金流,不含训练奖励里的持续库存惩罚。
在每次最多分配 2 手的设置下,强化学习策略在三种环境中的平均标准化现金流分别为 6.03、9.11 和 8.55。对应环境里,表现最好的规则策略分别为 4.83、5.47 和 3.95。最后一种环境中,强化学习策略的标准差为 2.40;取得 3.95 均值的 TOP1 为 2.76。
每次最多分配 20 手时,三种环境下该策略的平均值分别为 4.66、5.68 和 4.99;最佳规则策略分别为 4.26、2.88 和 2.12。论文还报告,在其附录实验中,logistic-normal 分配优于同样适合份额建模的 Dirichlet distribution。
这些数字说明,在作者设定的模拟器里,能同时利用订单簿信号、调整多档订单量并管理库存的策略,尤其能应对带持续方向压力的环境。它们不能证明真实市场中的盈利能力。
为什么值得关注
这篇论文真正推进的不是又换了一个神经网络,而是把强化学习的动作空间向交易执行的实际形态推近了一步。算法必须同时处理挂在哪一档、挂多少、是否立即成交、原有订单要不要撤,以及库存是否偏得太远。深度集合编码器解决了订单数量不固定的问题,逻辑正态分布则把复杂动作整理成可训练的份额分配。
它也展示了一个更一般的思路:当决策对象是一组数量会变化、顺序本身没有意义的项目时,可以先把集合编码成稳定表示,再让策略分配有限资源。
局限与未知
- 全部结果来自按预设规则运行的模拟交易者。模拟器能呈现反馈和逆向选择,但不能覆盖真实市场参与者、延迟与制度条件。
- 比较对象是 TOP1、TOP2 和 INV 三种启发式规则。材料没有提供与其他强化学习做市方法的完整基线比较,也未报告统计显著性。
- 论文展示的是模拟环境中的标准化现金流,不是实盘收益;训练成本、实际奖励塑形加速幅度和部署表现均未披露。