第 18 章 买方交易者与订单暴露
对应 Harris《Trading and Exchanges》第 18 章 “Buy-Side Traders”。前面各章分别从做市商、经纪商、知情交易者、订单预期者等角度讨论交易;这一章换到买方(buy side,即资产管理人、基金、个人投资者这些“花钱买交易服务”的一方)的位置上,把前面的结论重新组织成一套下单决策。对量化交易者来说,这一章就是执行算法设计的“需求说明书”。
学习目标
读完本章,你应当能够:
- 说明买方在市价单与限价单之间如何取舍,并把这一取舍表述为“成交价格 vs 成交概率 vs 未成交后果”的三方权衡。
- 解释“价差窄时取用流动性、价差宽时提供流动性”这条经验法则为什么只对不掌握价值信息的交易者平均成立。
- 说出订单暴露(order exposure)的收益与三类成本(泄露动机、泄露未来价格冲击、送出交易期权),并识别寄生交易者与防御性流动性提供者两类“对手”。
- 区分规避、欺骗、进攻三类防御策略,理解其中哪些在今天属于违法的市场操纵。
- 说明时间优先、最小价位、隐藏订单、审计轨迹、延迟报告等市场设计如何改变暴露成本。
- 用模拟方法估计限价单的成交概率与“含未成交补单”的综合成本,理解限价单的逆向选择。
读前导读
这一章在解决什么问题。 CFA 组合管理部分讲过"交易成本 = 显性成本 + 隐性成本",也讲过市价单、限价单、执行算法这些名词,但没告诉你一个具体的下单决定怎么做。这一章站在基金交易台的位置上回答两个问题。第一,用市价单还是限价单、限价挂在哪里:本质上是在"成交价更好"和"可能成交不了、最后追高"之间做权衡。第二,大单要不要让别人看见:让人看见能吸引对手方,也会招来抢跑和报价匹配。前者是期望成本的计算问题,后者是信息管理问题。
如果你在 CFA 里学过"限价单相当于免费给市场写了一份期权",本章会把这句话讲透:挂出去的限价买单,等于给所有人一份"价格跌到这里时可以把股票卖给你"的看跌期权,行权的人往往比你知道得多,这就是限价单的逆向选择。本章末的模拟会把它变成数字。
需要先想起来的数学。
- 期望与全概率分解。 限价单的综合成本 \(=P(\text{成交})\times\text{成交成本}+P(\text{未成交})\times\text{补单成本}\)。这和信用分析里"预期损失 = 违约概率 × 违约损失"是同一结构。例如成交率 0.9、成交省 0.05 元、未成交多付 0.17 元:\(0.9\times(-0.05)+0.1\times0.17=-0.028\) 元。见 第 00 册第 07 章 概率中的分析工具。
- 条件期望。 "成交后价格平均怎么走"是一个条件期望 \(\mathbb{E}[\Delta P\mid\text{成交}]\)(\(\mathbb{E}[\cdot\mid A]\) 读作"在事件 \(A\) 发生的前提下的平均值")。逆向选择就是:它与不加条件的平均值 \(\mathbb{E}[\Delta P]\) 不同,而且对你不利。同上一章节链接。
- 累加和与随机游走。 代码里中间价是逐步增量的累加 \(m_t=m_0+\sum_{s\le t}\Delta m_s\),
np.cumsum就是这个求和。见 第 00 册第 04 章 级数与收敛 的数列部分。 - 逻辑回归(只需知道用途)。 进阶题 7 要估计"成交概率与限价距离的关系"。逻辑回归把概率写成 \(p=1/(1+e^{-(a+bx)})\),保证结果在 0 和 1 之间,系数含义类似 CFA 二级里的 logit 模型。
怎么读这一章。 18.2(市价/限价的取舍)和 18.3.3(暴露的三类成本)是核心,必读。18.2.3 的"规则的问题"篇幅短但很有用,建议对着数字读两遍。18.4 防御策略和 18.5 市场设计以案例为主,第一次可以快读,注意欺骗与设套在今天多属违法。最后的量化实战是全章精华,建议看懂表格每一列的含义,再回头重读 18.2.2。
18.1 本章在讲什么:买方最能控制的是下单方式
先给结论:订单提交策略(order submission strategy)是交易者自己能控制的、对执行质量(execution quality)影响最大的因素。 选股、择时做得再好,如果下单方式糟糕,利润也会被交易成本吃掉;反过来,同一个投资决策,下单方式优化后交易成本更低、组合收益更高。
买方在下单时要回答几个问题:
- 用市价单(market order)还是限价单(limit order)?
- 如果用限价单,限价放在哪里?
- 限价单没有成交,何时、以什么价格重新提交?
对大额交易者,还有一组更重要的问题——展示(display)问题。展示大单往往招来抢先交易者(front runners),也会吓走流动性提供者。所以大额交易者还要决定:
- 主动寻找对手方,还是等对手方找上门;
- 显示全部交易意愿,还是隐藏;
- 把订单拆开分散到不同时间,还是一次性带到市场;
- 用一家经纪商,还是多家经纪商以隐藏总规模;
- 在一个市场交易,还是多个市场交易。
Harris 的判断是:展示决策是大额买方交易者最重要的交易决策。
两类决策是相互关联的。想展示交易意愿的人通常用限价单(挂出来就是在告诉别人“我愿意在这个价格交易”);不想展示的人通常用市价单(成交那一刻才暴露)。但限价单也可以不展示:通过保密经纪商(confidential broker),或提交到允许未披露限价单(undisclosed limit orders,今天常叫隐藏单/冰山单)的电子系统。
不同“交易问题”对应不同的策略:掌握即将公开的重大信息的知情交易者(informed traders)要抢时间;能识别错误定价的价值交易者(value traders)可以等;必须在截止日前筹集现金的人有硬约束;因指数成分变化必须再平衡的指数交易者(index traders)在固定时点集中交易。本章的结论要放到具体交易问题里去用。
还有一点值得强调:订单提交策略决定了流动性的供与需。提交市价单就是需求流动性,提交限价单就是供给流动性。 所以理解买方如何下单,也是理解第 19 章“流动性从哪里来”的前提。
18.2 市价单还是限价单
18.2.1 无差异的基准情形
回忆第 14 章的均衡价差模型:如果所有交易者的需求都相同,订单提交策略无关紧要——买卖价差(bid/ask spread)会自动调整到使交易者在市价单与限价单之间无差异。现实中交易者并不相同,于是有了下面几条一般规律:
- 急躁(impatient)的交易者需要尽快成交,一般应使用市价单;有耐心(patient)的交易者应使用限价单。
- 对暴露更敏感的交易者常用市价单,以免把限价单挂在外面被人看见。
- 价差是关键变量。 价差宽时,取用流动性贵、提供流动性有吸引力;价差窄时,市价单相对更划算。交易者靠经验判断价差“宽”还是“窄”,第 14 章讲的价差决定因素(逆向选择、存货风险、订单处理成本、竞争程度)有助于把经验系统化。
18.2.2 限价放在哪里:价格与成交概率的权衡
限价的放置取决于交易者如何权衡成交价格与成交概率(execution probability)。定价越激进(买单越接近甚至高于卖价),越容易成交,但价格越差;定价越保守,价格越好,但可能永远等不到。更在意价格的人偏向限价单,更在意成交的人偏向市价单。
未成交的后果决定了这个权衡的形状:
- 必须完成交易的人(例如要对冲、要满足赎回、要在指数调整日完成再平衡)如果遇到市场背离其限价,最后只能以更差的价格追进去——这就是未成交风险。降低这一风险的办法是用市价单,或把限价放得靠近市场。
- 不必一定完成交易的人(主要是采用做市式策略,dealing strategies 的人)常用限价单或确定报价(firm quotes)赚取价差,没成交就撤单或改价重挂,未成交对他们没什么损失。
白话解释:把限价单的选择写成一个期望成本最小化问题。设限价距中间价 \(d\)(买单挂得越低 \(d\) 越大),成交概率 \(p(d)\) 随 \(d\) 下降;成交时你比中间价省 \(d\),未成交时要在期末追单,多付 \(c\)(含价格上涨和半个价差)。期望成本约为 \(-p(d)\,d+(1-p(d))\,c\)。 挂得太近,\(d\) 小,省得少;挂得太远,\(1-p(d)\) 大,频繁追单。最优点在中间,而且 \(c\) 越大(越必须完成交易),最优 \(d\) 越小,越接近市价单。这就是"必须完成交易的人偏向市价单"的数学版本。本章末代码表格里的"综合平均成本"列,就是这个式子的模拟估计。
成交概率与限价距离的关系随市况而变,最重要的影响因素有三个:更优价位上已有的挂单总量(排在你前面的队列)、价格波动率、市场对该品种的兴趣(订单到达速度)。获得这条关系有两条途径:一是正式的计量模型(econometric models),许多供应商出售“优化订单生成器”(optimized order generators),根据当前市况建议下单策略;二是经验,资深交易者对市场有“感觉”。买方把订单交给经纪商时若附带市价不受约束订单(market-not-held order),就是授予经纪商择时裁量权,期待经纪商凭经验与市况持续评估最优的填单方式。
18.2.3 “规则的问题”:经验法则只对未知情者成立
“价差窄时取用流动性、价差宽时提供流动性”这条规则,只有在你对价值一无所知时才成立。原书的例子:
市场报价 48 买 / 50 卖,而平时价差是 10,看起来窄得异常,市价单似乎极具吸引力。但如果你知道真实价值是 45,那么用市价单在 48 卖出相对价值成交价极好,用市价单在 50 买入则很差。
这种情形常出现在一个急躁的限价单交易者挂出激进限价时:原来是 40 买 / 50 卖,有人挂了 48 的限价买单。它大大改善了市价卖方的处境,对市价买方毫无帮助。能识别这种情况的卖方应当取用流动性。
这个新买价也影响其他买方:它降低了挂在 48 以下的买单最终成交的概率,使这些限价策略的吸引力下降,从而使市价买单相对更有吸引力——但远没有“异常窄的价差”所暗示的那么多。
推导拆解:把例子的数字逐项算出来。设真实价值 \(V=45\)。 市价卖出在 48 成交:相对价值多得 \(48-45=+3\),非常好。市价买入在 50 成交:相对价值多付 \(50-45=5\),很差。 价差从 10 变成 2,对"不知道 \(V\)"的人来说,买卖两边的平均执行成本都是半个价差,从 5 降到 1,所以市价单看起来便宜。但对知道 \(V\) 的人,成本取决于报价离 \(V\) 有多远,与价差宽窄无关。这里只有买价从 40 移到 48,卖价没动,所以只有卖方受益。
结论是:窄价差使市价单对未知情交易者平均而言更有吸引力;但对有价值判断的人,要看价差变窄是哪一边移动造成的。量化实践里,这对应“盘口不平衡”信号:最优买价被激进推高,往往说明买方急躁,此时卖方取用流动性的条件特别好。
18.3 订单暴露决策
18.3.1 暴露是一个连续谱
订单暴露的方式是一个连续谱:
- 一端:把限价单提交到广泛展示订单的系统,公开交易意愿,等别人来成交;
- 另一端:完全隐藏意愿,直到交易所或经纪商呈现可接受的交易机会才出手;
- 中间:只通过匿名结算的经纪商或交易所交易,使双方都不知道对手是谁。
决策原则很简单:权衡展示的收益与成本。 收益显而易见——买卖双方都展示时最容易找到彼此。这一观察也解释了为什么交易倾向于集中到单一中心市场(展示越集中,越容易匹配)。
成本则来自他人对暴露信息的反应。对大额交易者,作者把这些“他人”分成两类:
- 寄生交易者(parasitic traders):只靠利用他人获利的订单预期者(order anticipators,见第 11 章),用暴露的信息构造以你为代价获利的策略。
- 防御性流动性提供者(defensive liquidity suppliers):看到大单后“让开路”,避免被大额交易者价格歧视(price-discriminate)。他们的反应是暂不交易,结果大额交易者最终为流动性付出更多。
小额交易者一般不在意暴露,单笔太小不值得寄生者费心。但许多同向小单聚合起来等价于大单,同样可能招致代价高昂的反应。此时小交易者有管理暴露的集体利益,却没有个人激励去做(收益由所有人分享)——典型的搭便车问题。
金融直觉:防御性流动性提供者的行为,和信贷市场的"信息不对称导致惜贷"类似。银行看不清借款人质量时,会提高利率或干脆减少放贷;做市商看到一张异常大的单子,担心对方知道自己不知道的事,就撤单或扩大报价。区别在于银行可以做尽调,做市商只能根据订单规模和方向推断,所以大单本身就会被当成坏消息。
18.3.2 暴露的收益:吸引反应型交易者
广泛暴露订单能让别人容易找到你,还能吸引那些有潜在交易兴趣(latent trading interest)、但不能或不愿明确表达的人。
这里要区分两种交易者:
- 主动型交易者(proactive traders):主动表达交易意愿;
- 反应型交易者(reactive traders):只对别人呈现的机会作出反应。
很多人选择做反应型,最重要的原因是成本:主动型要在不知道有没有机会时就做出大量决策、给经纪商下指令,其中很多毫无价值;反应型只在机会出现后才决定。合适机会稀少时,做反应型更便宜;代价是主动型可能先发现并拿走有价值的机会。
主动型暴露订单,正是为了吸引反应型的流动性;没有暴露,反应型就无从反应。由此有一句简单但重要的话:两个反应型交易者永远不会相互成交。
注意“反应—主动”与“被动—激进(passive–aggressive)”是两个不同的维度。前者反映承担搜寻成本的意愿,后者反映促成交易的急切程度。激进者往往主动、被动者往往反应;搜寻成本低的人倾向主动,搜寻贵的人倾向反应。
实例:Dimensional Fund Advisors(DFA)。 DFA 常大额买入小公司股票。其交易员发现,与其持续搜寻所有小盘股的市场,不如等机会找上门——等别人来找能得到更好价格。通过出售流动性,DFA 为投资者提供了明显增强的指数收益。这是“耐心换价格”在资管实践中的典型例子。
18.3.3 暴露的三类成本
大额交易者展示交易意愿,可能泄露三类对别人有用的信息。
(1)泄露交易动机。 别人可能借此与你竞争、拒绝向你提供流动性,或采取其他有害行动。不愿暴露动机的人包括:消息灵通的交易者(不想泄露独有信息与专有分析)、参与公司控制权争夺(corporate control battles)的人(要压缩目标公司管理层组织防御的时间)、为履行义务而交易的人(怕被抢跑和逼仓)、逼仓者(squeezers,垄断市场之前不能露底)、虚张声势者(bluffers,怕被价值交易者识破)。
知名交易者常借经纪商为中介,暴露订单而不暴露身份。但即使匿名,别人有时仍能推断意图——订单流本身含有价值信息,因为知情者在价格低时买、高时卖,敏锐的人只看订单流就能推断价值。
反过来,有时知情者希望被关注:建好仓后,他们希望价格尽快朝有利方向移动并稳定下来,以便平仓兑现;让别人看到自己在交易,是分享信息最可信的方式。虚张声势者也在某阶段希望暴露——为了引动量交易者(momentum traders)跟风,他们激进交易、装作知情者;但平仓时又不希望被看见。
原书专栏“越优秀越难交易”讲了一个叫 Tom 的人:他以研究质量闻名,大家都知道他低估时买、高估时卖。于是竞争者想抢在他前面建仓,潜在对手方知道与他交易很可能站错边,尽量回避;若规则要求必须与他交易,就给他更差的价格和更小的数量;连原本急于与他交易的人,也会等他的交易冲击完价格再出手。名声越好的交易者越难找到流动性:暴露则成本上升,不暴露则难以成交。
(2)泄露未来的价格冲击。 大额急躁交易者成交时往往显著推动价格。知道其意图的人可以抢先交易(front-run),从大单的市场冲击中获利。抢先者取走本属于大额交易者的流动性,抬高其成本。关键是:抢先者无须知道对方为什么交易,只要知道有人要完成一笔大交易就够了。
(3)送出有价值的交易期权。 即使大额交易者很有耐心,挂着的限价单也在向别人免费提供交易期权(trading options),**报价匹配者(quote matchers)**可以榨取这些期权的价值。
报价匹配是一种抢先策略:匹配者以略优一个最小价位的价格排到大单前面成交。之后,大单为他提供了保护——价格朝有利方向走,匹配者全额获利;朝不利方向走,他可以把头寸卖给(或买自)大单,把损失限制在一个价位。匹配者取走了本属于大额交易者的流动性;如果之后价格远离挂单、大额交易者没能成交,他就损失了匹配者赚到的那部分利润。
金融直觉:用期权语言看两方。大额交易者在 10.00 挂 10 万股限价买单,等于向市场免费卖出一份行权价 10.00 的看跌期权:任何人都可以在价格下跌时按 10.00 把股票卖给他。报价匹配者在 10.01 挂买单排到他前面,成交后就持有一份"保护性看跌"的组合:股票多头 + 可以随时按 10.00 卖给大单的权利。价格上涨,匹配者赚全部涨幅;价格下跌,最多亏 0.01。这份看跌期权的价值由大额交易者免费提供,所以匹配者的收益就是大额交易者的成本。tick 越大,匹配者"多付一个价位"的成本越高,这份期权越不划算,这就是 18.5 节说大 tick 保护展示者的原因。
18.4 防御策略
面对寄生交易者,买方有三类策略:规避(evasive)——不让别人知道意图;欺骗(deceptive)——误导别人作出错误推断;进攻(offensive)——直接攻击寄生交易者。
18.4.1 规避策略
- 用经纪商保持匿名;超大交易者用多家经纪商,使任何一家都看不到全部规模,也防止别人盯住一家经纪商来推断意图。
- 偏好不显示身份的电子交易系统,以防不诚实或不称职的经纪商抢先交易。
- 选择性展示:必须展示才能促成大宗交易时,优先展示给最可能与之成交、又最不可能利用信息做别的事的人。识别最佳展示顺序是机构经纪商和买方交易员最核心的技能,即“大宗交易的艺术”(art of block trading)。培养途径包括建立可靠关系、观察市场活动、理解组合经理的需要、追踪各方持仓及其变化。作者指出,在所有经纪服务中,选择性订单暴露是计算机系统最难高效提供的。
- 拆单:每次只显示一小部分。
- 使用不展示订单的系统:原书列举了 eSpeed、POSIT、Global Instinet Crossing、GLOBEX、Euronext、Island 等能接收未展示订单的系统,别人只有承诺与之交易才能发现这些订单。
- 发布订单意向(order indications):通过 Autex、Bridge、Instinet 等系统表示“愿意谈谈”而不作承诺。虚假意向的唯一代价是被要求交易时的声誉损失,所以许多人不认真对待意向,意向一般不泄露太多信息。
- 等别人先暴露:如果对方给的是确定承诺(firm commitment),可以用市价单与之成交,自己直到成交那一刻才暴露。如果对方只是发布意向,则要小心——去询问可能反过来把你的意图泄露给发布者。原书专栏“为生意钓鱼”就讲经纪商挂假意向招揽生意,被耍的交易者通常会在一段时间内拒绝与该经纪商往来。
18.4.2 欺骗策略
在与真实意图相反的方向做一笔小交易并让人知道;声称已经交易完毕而实际没有;想建大仓却说只要小仓;在并不关心的市场表达兴趣以转移注意;撤掉其实想成交的订单以制造不确定性;甚至专门培养“守不住秘密”的经纪商来散布假消息。
欺骗的代价是关系与声誉。原书专栏“撒谎的代价”:Max 通过一家大宗经纪商卖出某小盘股 10 万股,声称没有进一步卖出意愿,经纪商据此劝买方接盘;随后 Max 又通过另一家经纪商以大幅压低的价格再卖 10 万股。前一批买方亏损并迁怒于第一家经纪商。Max 成功地在买方之间实施了价格歧视,但大概再也用不了第一家经纪商。由于“空口无凭”(talk is cheap),市场参与者会打折看待那些对信息准确性没有利害关系的消息来源。
18.4.3 进攻策略:设套
最重要的进攻策略是设套(sting):若发现有人经常抢跑自己的订单,就在与真实意图相反的一侧展示一个订单。抢先者若上当,会抢在假订单前面在那一侧交易;设套者随即(可能经由经纪商)与抢先者成交,完成自己真正想做的交易,然后撤掉假订单。
成功时,设套者把自己的交易问题转嫁给了抢先者——抢先者被留在市场错误的一边,要平仓就必须解决设套者原本面临的难题。失败时(别人成交了假订单,或抢先者识破陷阱反而成交了假订单),设套者会持有与目标完全相反的头寸,需要交易原计划的两倍(算上失败那笔共三倍)才能建立目标仓位。
作者提醒:这些策略实施起来都有成本,部分欺骗和进攻策略在某些司法辖区可能不合法。
现状补充:原书写作时这类行为的法律边界还比较模糊。今天,挂出无意成交的订单来误导他人的行为在主要市场普遍被明确认定为操纵。美国 2010 年的 Dodd-Frank 法案明确把“幌骗”(spoofing,下单时即意图在成交前撤单)列为期货市场的违法行为,此后有多起刑事定罪。量化交易者设计执行算法时,假单、设套式的挂撤单策略不可采用;但理解它们有助于识别盘口中的噪声与陷阱。
18.5 市场如何帮助交易者控制暴露成本
交易所和监管者可以通过规则设计降低暴露成本:
- 时间优先规则(time precedence rule)+ 有经济意义的最小价位(tick size):时间优先使别人无法在同一价位插到你前面;最小价位较大时,抢先者必须报出明显更优的价格才能排在前面,抢先变得昂贵。
- 允许未披露订单:大额交易者可以挂确定报价而不展示,别人只有承诺交易才能发现。寻找隐藏流动性的人可以附加全部成交否则取消(fill-or-kill)指令,避免自身暴露:找到就成交,找不到只有交易系统知道他们问过。完全保密的系统适合清楚知道自己要做什么的人,因此主要服务主动型交易者。
- 审计轨迹(audit trail)与禁止双重交易(dual trading):详细准确的审计记录对识别和起诉经纪商抢先交易尤其重要;部分市场禁止会员同时担任经纪商和交易商。
- 延迟交易报告(delayed trade reporting):使他人难以推断大头寸的全部规模,帮助正在建仓或清仓的人。但它让市场不透明,提高了许多其他交易者的成本——交易者只有在伤害他人时才能从延迟报告中受益。延迟报告对交易商的帮助大于经纪商,因此在交易商市场中更常见。
实证证据(原书专栏)。 Harris 研究了 1994–1995 年巴黎交易所(Paris Bourse)和多伦多证券交易所(TSE)的大额交易者(两者当时都允许未披露订单,TSE 后来取消了这一功能)。结果符合预期:最小价位占股价比例较小时,交易者提交更多未披露订单;比例较大时,更多选择展示——大 tick 保护了展示者。
Liquidnet(原书专栏)。 Liquidnet 是机构股票经纪商,运营一个电子另类交易系统(ATS)。客户把它接入自己的订单管理系统(OMS),Liquidnet 直接查看买方**订单簿记(order blotter)**里还没发出去的订单;若发现一方想买、一方想卖同一证券,就在双方屏幕上提示,双方通过匿名消息协商,谈成后由 Liquidnet 撮合,双方永远不知道对手是谁;佣金每方每股 2 美分。为减少无效协商,交易者可以设定对手订单的最小比例,系统还显示对方历史回应率与协商成交率。它成功的关键是:交易者无须向它提交订单,它直接发掘了买方 blotter 里的潜在流动性。
SOES 强盗(原书专栏)。 有些市场制定规则排斥寄生交易者。“SOES 强盗”利用 Nasdaq 小额订单执行系统(Small Order Execution System)从极短期价格变化中获利,受害者通常是报价调整慢了几秒的 Nasdaq 交易商;这迫使交易商扩大价差,把损失转嫁给其他交易者。后来争议减少:交易商反应更快,Nasdaq 更多流动性来自公众限价单。作者指出,高频自营交易者在价格快速变化时同样在利用公众限价单,只是公众限价单交易者没有组织起来抱怨。
现状补充:原书提到的许多系统已经易主或消失。Island 先并入 Instinet,2005 年 Instinet 的交易平台被 Nasdaq 收购;SOES 已随 Nasdaq 的系统升级退出历史;Liquidnet 2021 年被 TP ICAP 收购。另一方面,原书所说的“未披露订单”在今天已经非常普遍:主流交易所普遍提供隐藏单、冰山单,美国还出现了大量暗池(dark pools)。在美国,2005 年的 Reg NMS 统一了全国市场的报价保护规则。最小价位对暴露的影响至今仍是监管热点,原书的分析框架完全适用。
18.6 小结:好交易者知道何时、向谁暴露
- 买方必须为所解决的交易问题选择合适的订单提交策略:急躁者用市价单,有耐心或不必完成交易者用限价单。
- 所有交易者都关心流动性的价格:价差比平常宽时限价单更有吸引力,比平常窄时市价单更有吸引力——流动性贵时提供它,便宜时购买它。
- 广泛暴露最容易促成交易,但暴露会泄露动机、未来价格冲击和交易期权。好交易者知道何时、向谁暴露;差交易者向错误的人、在错误的时间暴露,或该暴露时没有暴露。
- 控制暴露的工具:匿名经纪商、拆单、以市价单代替限价单、选择性暴露。
- 市场可以通过时间优先 + 有意义的最小价位来保护暴露者;不提供隐藏单的交易所,交易者倾向于拆单。
量化实战:限价单的成交概率、未成交成本与逆向选择
本章最直接的量化落地是限价单放置问题。很多回测会假设“价格触及限价即成交”,这会系统性高估限价单策略的收益,因为它忽略了两件事:
- 未成交风险:价格朝不利方向走时你不成交,最后要以更差价格追单;
- 逆向选择:你的限价买单往往在“有卖方砸下来”时成交,而砸盘的卖单里有一部分是知情的,成交后价格倾向于继续下跌。
下面用一个简单的订单流模型说明这两点。每一步有市价单到达,买卖各半;每笔市价单对中间价有一个小的永久冲击 \(\lambda\)(代表订单流的信息含量),另有与订单流无关的新闻噪声。我们要买 1 股,比较不同限价:在卖价 10.05 直接买(市价单),或挂 10.00、9.98、9.95(买价)、9.92、9.90 的限价单,最多等 120 步,没成交就在期末用市价单补齐。
推导拆解:模型用公式写出来是三行。 第一行,订单方向 \(s_t\in\{+1,-1,0\}\)(买、卖、无),每步以 0.25、0.25、0.5 的概率出现。 第二行,中间价增量 \(\Delta m_t=\lambda s_t+\epsilon_t\),\(\epsilon_t\sim N(0,0.01^2)\)。\(\lambda s_t\) 是订单流带来的永久冲击(卖单把价格压低 \(\lambda\)),\(\epsilon_t\) 是新闻。 第三行,中间价 \(m_t=m_0+\sum_{u\le t}\Delta m_u\),最优买价 \(=m_t-0.05\)。 你的买单在 \(t\) 步成交的条件是:这一步来了卖单(\(s_t=-1\)),且你的限价不低于当时的最优买价。关键在于,成交的那一刻 \(s_t=-1\),这一步的价格必然被压低 \(\lambda\);而且挂得越低,需要越多卖单先把价格压下来才能轮到你,所以成交往往发生在一串卖单之后。于是 \(\mathbb{E}[\text{成交后价格变化}\mid\text{成交}]<0\),这就是表中"成交后中间价漂移"为负、且挂得越远越负的来源。markout 指成交后一段时间的中间价减去你的成交价,是业内衡量逆向选择的标准做法。
import numpy as np, pandas as pd
rng = np.random.default_rng(18)
n_paths, horizon = 20000, 120 # 2 万次独立试验,每次最多等待 120 步
hs = 0.05 # 半价差(元),初始报价 9.95 / 10.05
lam = 0.004 # 每笔市价单对中间价的永久冲击(信息含量)
noise = 0.01 # 与订单流无关的新闻波动
p_arrive = 0.5 # 每步有市价单到达的概率,买卖各半
mid0 = 10.0
arrive = rng.random((n_paths, horizon)) < p_arrive
sign = np.where(rng.random((n_paths, horizon)) < 0.5, 1, -1) * arrive # +1 买, -1 卖, 0 无
dmid = lam * sign + rng.normal(0, noise, (n_paths, horizon))
mid_before = mid0 + np.concatenate([np.zeros((n_paths, 1)), np.cumsum(dmid, 1)[:, :-1]], 1)
mid_after = mid0 + np.cumsum(dmid, 1)
rows = []
for L in [10.05, 10.00, 9.98, 9.95, 9.92, 9.90]: # 10.05 = 直接在卖价买(市价单)
if L >= mid0 + hs: # 市价单:立即成交,无等待
filled = np.ones(n_paths, bool); t_fill = np.zeros(n_paths, int)
else:
bid = mid_before - hs
hit = (sign == -1) & (L >= bid - 1e-12) # 有市价卖单到达且我的买价不低于最优买价
filled = hit.any(1); t_fill = np.where(filled, hit.argmax(1), horizon - 1)
end_ask = mid_after[:, -1] + hs
cost = np.where(filled, L - mid0, end_ask - mid0) # 未成交者期末用市价单补齐
k = np.minimum(t_fill + 20, horizon - 1)
markout = np.where(filled, mid_after[np.arange(n_paths), k] - L, np.nan)
rows.append({"限价": L, "成交率": filled.mean(),
"成交部分成本": L - mid0,
"未成交补单成本": np.mean((end_ask - mid0)[~filled]) if (~filled).any() else np.nan,
"综合平均成本": cost.mean(),
"成交后20步markout": np.nanmean(markout),
"成交后中间价漂移": np.nanmean(markout + L - mid0)})
df = pd.DataFrame(rows)
pd.set_option("display.float_format", lambda x: f"{x:.4f}")
print(df.to_string(index=False))
b = df.loc[df["综合平均成本"].idxmin()]
print(f"\n综合成本最低的限价:{b['限价']:.2f},平均每股 {b['综合平均成本']:.4f} 元(市价单为 {df.iloc[0]['综合平均成本']:.4f})")
输出:
限价 成交率 成交部分成本 未成交补单成本 综合平均成本 成交后20步markout 成交后中间价漂移
10.0500 1.0000 0.0500 NaN 0.0500 -0.0501 -0.0001
10.0000 0.9960 0.0000 0.2267 0.0009 -0.0007 -0.0007
9.9800 0.9859 -0.0200 0.1987 -0.0169 0.0176 -0.0024
9.9500 0.9089 -0.0500 0.1718 -0.0298 0.0373 -0.0127
9.9200 0.6882 -0.0800 0.1495 -0.0084 0.0337 -0.0463
9.9000 0.5631 -0.1000 0.1329 0.0018 0.0344 -0.0656
综合成本最低的限价:9.95,平均每股 -0.0298 元(市价单为 0.0500)
怎么读:
- 成交率随限价远离而下降:挂在买价 9.95 时约 91% 能成交,挂到 9.90 只剩 56%。
- 未成交的那部分非常贵:没成交的情形恰恰是价格上涨的情形,期末补单成本高达 0.13–0.23 元,远大于半个价差。“成交部分成本”看起来越挂越便宜,但把未成交补单算进去后,挂得太远(9.90)的综合成本反而比挂在买价时高,接近市价单。这就是 18.2 节说的未成交风险。
- 逆向选择:最后一列是成交后 20 步中间价相对初始中间价的漂移。限价挂得越远,成交时往往是卖压越重的时候,成交后中间价平均下跌越多(9.90 时约 −0.066 元)。如果回测里假设“触价即成交”、又不考虑成交后的这种漂移,就会高估限价单策略。
- 最优点在中间:在这组参数下,挂在买价附近综合成本最低。参数(\(\lambda\)、到达率、波动率、等待时长)一变,最优点就会移动——这正是原书说的“成交概率与限价的关系取决于市况”。实际工作中,人们用逐笔/盘口数据,以排队位置、价差、波动率、盘口不平衡为解释变量,用逻辑回归或生存分析估计成交概率,再把它与未成交成本、逆向选择一起放进目标函数,这就是原书思考题 5 所问的“计量模型”。
对量化执行的几条直接启示:
- 回测限价单策略时,要么用排队模型模拟成交,要么至少要求价格“穿过”限价才算成交,并计入未成交信号的补单成本或放弃的收益。
- 拆单与隐藏是规避策略的工程化:TWAP/VWAP 拆单、冰山单、多券商分流、暗池路由,本质上都在控制暴露。但拆单本身如果模式过于规律(固定间隔、固定数量),会被高频交易者识别,等于重新暴露了意图。
- 最小价位是重要的制度参数:价位相对股价越大,排队位置越值钱、隐藏单越少;做市和高频策略在不同 tick 制度下的经济学差别很大。
本章小结
买方最能控制的是下单方式。市价单买即时性,限价单卖即时性;限价放在哪里取决于成交价格、成交概率和未成交后果的权衡,而“价差窄就取用流动性”只对不掌握价值信息的人平均成立。大额交易者的核心矛盾是暴露:暴露能吸引反应型交易者,却会泄露动机、未来价格冲击和免费的交易期权,招来寄生交易者与防御性流动性提供者。应对办法有规避、欺骗、进攻三类,其中欺骗与进攻在今天多属违法;市场则通过时间优先、最小价位、隐藏单、审计轨迹等规则改变暴露成本。
| 概念 | 要点 |
|---|---|
| 订单提交策略 | 买方可控的、对执行质量影响最大的因素 |
| 市价单 / 限价单 | 前者需求流动性、后者供给流动性;急躁用前者,耐心用后者 |
| 限价放置权衡 | 价格越好,成交概率越低;必须完成交易者面临未成交风险 |
| 经验法则 | 流动性贵时提供、便宜时购买;只对未知情者平均成立 |
| 主动型 / 反应型 | 承担搜寻成本的意愿;两个反应型永远不会相互成交 |
| 暴露的三类成本 | 泄露动机、泄露未来价格冲击、送出交易期权(报价匹配) |
| 寄生交易者 / 防御性提供者 | 前者利用信息获利,后者看到大单就退避 |
| 防御策略 | 规避(匿名、多经纪商、拆单、隐藏单、选择性展示)、欺骗、进攻(sting) |
| 市场设计 | 时间优先 + 较大 tick、隐藏单 + FOK、审计轨迹、延迟报告(有利有弊) |
| 限价单逆向选择 | 成交往往发生在不利价格移动之时;回测“触价即成交”会高估收益 |
练习
基础
- 解释为什么说“提交市价单就是需求流动性,提交限价单就是供给流动性”。有没有用市价单提供流动性的情形? 提示:第 19 章指出,用市价单回应别人挂出的大额卖单(例如价值交易者接盘)时,是在向对方提供流动性;订单类型不等于流动性角色。
- 市场 40 买 / 50 卖,有人挂出 48 的限价买单。这对市价买方、市价卖方、挂在 48 以下的限价买单分别有什么影响? 答案要点:卖方大幅受益;市价买方无益;48 以下的买单成交概率下降,限价买入策略吸引力下降。
- 区分“主动—反应”与“激进—被动”两个维度,各举一个交易者类型的例子。
- 列出暴露的三类成本,并说明报价匹配者如何利用大额耐心交易者的挂单。
- 为什么较大的最小价位能保护展示订单的交易者?它的代价是什么? 提示:抢先者必须多付一个价位;代价是报价价差下限变大,小单交易者成本上升。
进阶
- 修改本章代码中的
lam(订单流信息含量)为 0 和 0.01,观察“成交后中间价漂移”和最优限价如何变化,并解释。 答案要点:\(\lambda=0\) 时逆向选择消失,挂得更远的限价更有利(只要未成交成本不大);\(\lambda\) 大时逆向选择与未成交成本都上升,最优限价向市价靠拢。 - 设计一个可以用真实盘口数据估计“成交概率 vs 限价距离”的逻辑回归模型:列出被解释变量、至少四个解释变量和样本构造方式(对应原书思考题 5)。 提示:被解释变量为“挂单后 T 秒内是否成交”;解释变量可取限价距中间价的 tick 数、前方队列量、近期波动率、盘口不平衡、近期成交速度;要注意撤单造成的删失,可用生存分析处理。
- 防御性流动性提供者拒绝与消息灵通者交易,会使价格更有信息含量还是更少?寄生交易者长期来看是否一定有害?(原书思考题 1、2) 提示:退避使知情者更难把信息带入价格,短期降低信息效率;寄生交易者能加快价格调整,但会提高大额交易者成本、减少研究激励。
- 一家量化基金每天在开盘后 30 分钟内用相同的 TWAP 参数买入当日所有目标股票。从本章角度,这种执行方式有什么风险?如何改进?
原书推荐习题:思考题 5(成交概率的理论与计量模型)最贴近量化执行研究;思考题 1、2(防御性流动性提供者与寄生交易者对信息效率和流动性的影响);思考题 3(被动 vs 反应型)。
原书对照
- 原书第 18 章 Buy-Side Traders,PDF 第 393–405 页(原书页码约为 PDF 页码减 13,即第 380–392 页)。
- 章首导言:PDF p.393–394;18.1 市价单与限价单(含专栏 “A Problem with Rules”):p.394–395;订单暴露决策:p.395–396;暴露的收益(DFA 例):p.396–397;暴露的成本(专栏 “The Better You Are, the Harder It Gets”):p.397–399;防御策略(专栏 “Fishing for Business”“The Cost of Lying”):p.399–402;市场如何帮助控制暴露成本(专栏:tick 与暴露的实证、Liquidnet、SOES Banditry):p.402–404;要点回顾:p.404;思考题:p.405。