第 23 课 事件、季节、Carry、波动率与做市¶
这几类方法依赖精确时钟、合约现金流或盘口执行。数据少一层,研究问题就可能从可检验退回到想象。
价格表以外还有事件、合约和订单流¶
趋势与因子主要从连续价格、成交和财务序列提取信息。事件策略围绕某个离散时点研究市场反应,季节策略观察日历位置是否对应重复行为,Carry 研究持有头寸随时间产生的现金流与合约变化,波动率策略交易未来不确定性的定价,做市则在买卖两边持续提供报价并管理库存。
这些名称看起来都能压成一行指标,现金流与执行却高度依赖制度。财报在盘前还是盘后发布,会改变最早订单;期货合约到期前必须换月,连续价格图不等于真实收益;期权卖方平时收取有限权利金,极端损失可能远大于平日收入;做市回测若没有队列与撤单,触碰报价也不能证明成交。
| 家族 | 核心研究问题 | 最低数据 | 首要风险 |
|---|---|---|---|
| 事件 | 信息公布前后,价格是否出现超出正常变化的反应 | 精确时间、事件版本、预期快照、行情 | 时间错位、事件重叠与选择 |
| 季节 | 某个日历位置是否对应重复机制 | 长历史、交易日历、制度版本 | 数据挖掘与制度消失 |
| Carry | 市场状态近似不变时,持有与换约会产生什么收益或成本 | 利率、现金流、合约期限、融资 | 拥挤、跳跃、融资与展期反转 |
| 波动率 | 市场为未来不确定性支付的价格是否偏离随后实现 | 期权链、行权价、到期、报价、保证金 | 非线性尾部损失与模型误差 |
| 做市 | 提供买卖报价的价差能否覆盖库存和知情订单损失 | 逐笔、盘口、订单状态、排队与延迟 | 逆向选择、库存与技术故障 |
本课的目标是看懂机制与研究门槛,不会把缺少数据的复杂方法伪装成可运行的赚钱程序。材料不足时停留在概念、时间线和纸面账本,是比虚构精确回测更可靠的结果。
事件研究先建立一只精确时钟¶
一份第一季度财报写着三月三十一日结束,不表示市场在那天知道内容。公司可能四月二十日晚上八点发布,交易所当日已经收盘。若数据源几分钟后才完成清洗,策略最早也要等下一个交易日进入市场。季度、公告日期、公告时刻、数据到达时刻和第一可交易时点各有不同职责。
sequenceDiagram
accTitle: 财报事件从公司发布到策略成交的时钟
accDescr: 公司在收盘后发布财报,数据源随后接收并标记可得时间,策略完成比较后只生成下一交易日订单,市场成交回报最后进入账本
participant C as 公司公告系统
participant D as 数据源
participant S as 研究策略
participant M as 下一交易日市场
C->>D: 20:00 发布财报与原始时间戳
D-->>S: 20:06 完成接收与字段标记
S->>S: 比较实际结果与公告前预期
S->>M: 次日可交易时点提交订单
M-->>S: 返回实际成交价格、数量与费用
只有公告日期、没有时分秒时,研究者无法判断信息发生在盘前、盘中还是盘后。可以保守地把它延迟到下一整日,或者停止日内事件研究并明确数据限制。用日期不完整的数据假设盘前可知,会系统性改善成交。
财报惊喜需要公告前就存在的市场预期¶
公司利润达到一亿元,单独看无法判断市场是否意外。若公告前分析师普遍预期八千万元,实际值高出两千万元;若市场预期一亿二千万元,同样一亿元反而低于预期。实际结果与事先预期之间的差叫作惊喜。
预期数据本身也有时间版本。数据库今天展示的最终一致预期,可能包含公告后分析师修订。事件研究需要保存公告以前最后可见快照,并说明是均值、中位数还是其他汇总。没有历史预期快照时,可以研究公告内容与价格反应,不能声称精确测量了市场惊喜。
公告后漂移表示市场价格在信息公布后的一段时间里仍可能沿惊喜方向逐步调整。它是一项等待验证的现象,真实收益会受开盘跳空、公告拥挤和交易成本影响。信号若在盘后形成,次日开盘已经包含部分反应,回测不能把公告前收盘当作买入价。
异常收益要先说明正常情况下会怎样¶
某公司公告后上涨 3%,同期市场上涨 4%。只看公司价格会说事件后上涨,和市场基准比较以后,它反而少涨 1 个百分点。事件研究常用正常收益基线描述没有该事件时,大致会跟随市场、行业或因子变化多少,再用实际收益减去基线,得到异常收益。
基线估计窗口要位于事件以前,事件窗口覆盖信息可能影响的日期。估计窗口过短,正常关系噪声较大;过长则可能跨过公司业务变化。许多公司在同一宏观冲击下发布公告时,异常收益也会相互相关,不能把所有事件当成完全独立样本。
事件要去重,也要承认无法单独归因¶
一家公司可能在同一份公告中同时发布业绩、分红、回购和管理层变化。随后价格变化无法简单归给其中某一个标签。研究可以排除重叠事件、只保留主要类型,也可以建立能够同时容纳多类信息的模型;选择要在结果出现以前写明。
回购计划不等于已经买回股份,减持计划不等于股东立刻卖出,指数调入公告也不等于生效日交易已经发生。事件具有提出、批准、执行、完成或取消等状态。把一项计划的多个公告重复算作独立事件,会夸大样本量。
指数调整还要区分规则预测、正式公告与生效。公告后名单已经公开,生效日前可能出现提前交易;若策略在公告前建仓,它必须用当时可得的指数规则独立预测,不能使用最终名单回填。收盘集合竞价可能高度拥挤,成交冲击属于事件收益的一部分。
季节性研究很容易拥有过多日历选择¶
月份、星期、月末、节假日前后、期权到期与财报季都能形成日历标签。若研究者自由组合十二个月、五个工作日、多个持有长度和许多市场,很容易从随机波动中找到一项漂亮规律。这是多重检验在日历上的表现。
季节效应需要可能机制。税制可能影响年末交易,基金报告与再平衡可能集中在月末,节日前资金需求也可能改变流动性。制度改变后,原效应可能减弱或提前。研究应预先限制少量假设,使用足够长的历史,保存交易所日历与时区,并报告所有主要尝试。
周一效应也不能简单把自然日星期一当作交易日星期一。节假日后的第一个交易日、跨时区夜盘和不同市场休市会改变定义。日历字段需要从官方交易日历生成,不能只依靠普通日期函数猜测。
Carry 先从持有期间的自然现金流理解¶
Carry 可以先理解为,在价格与市场状态近似不变的假设下,持有某个头寸随时间自然获得或支付的收益。它不是中文里单一固定品种,也不是免费利息。外汇利差、债券票息与滚降、股票分红、商品期货展期都包含不同形式的持有收益。
假设以年利率 2% 借入一种货币,再持有年利率 5% 的另一种货币。忽略汇率变化、交易成本和融资条件时,利差约为 3%。真实账户若高息货币贬值 10%,利息远不足以弥补汇率损失。较高 Carry 往往对应某种风险、融资需求或市场不平衡。
债券持有收益会包含票息、价格随收益率变化以及期限缩短带来的滚降。商品还受到库存、便利收益和融资影响。不同品种的 Carry 数字表面相似,背后现金流与尾部风险不能混在一个简单排名中。
期货展期让连续价格图与账户收益分开¶
期货合约有到期日。长期保持敞口时,账户必须在近月合约到期前平仓,再买入更远月份,这个过程叫作展期或换月。若近月价格 100 元、远月价格 103 元,在市场其他条件不变的教学假设下,从近月换到远月需要以更高价格重新建立头寸,产生不利的展期差。
反过来,近月 100 元、远月 97 元时,换入远月的价格更低,可能形成有利展期。实际收益还取决于持有期间合约怎样向现货收敛、换月日期、成交价格、保证金与抵押资金收益。
研究者常用近月与远月价格关系描述期限结构。下面代码只计算一项教学斜率。输入是同一时点、同一品种近月与远月合约价格,正值表示近月相对于远月更高。它不等于完整 Carry 收益,也没有模拟换月。
连续合约为了画出平滑历史,可能在换月处对价格作加法或比例调整。调整后的曲线适合观察趋势,却不等于账户实际买卖过的合约价格。回测应在具体合约上记录到期、交易单位、换月、手续费、价格限制和保证金,再汇总现货变化、展期与现金收益。
高 Carry 可能是承担困难时期的补偿¶
外汇高息货币在风险解除时可能快速贬值,商品期限结构会随库存和供应冲击反转,融资成本也可能突然上升。平静时期持续积累的小 Carry,可能在少数压力日一次归还。成绩单要展示最差时期、融资与流动性情景,不能只报告长期平均。
拥挤会放大风险。许多账户同时持有高 Carry 并使用杠杆时,市场冲击会触发共同减仓,原本低相关的头寸也可能一起下跌。风险预算与容量限制需要和 Carry 信号共同设计。
历史波动与隐含波动来自两种数据¶
历史波动率从过去实际价格变化估计,描述已经发生的起伏。隐含波动率从期权市场价格和定价模型反推,表示在模型与其他输入给定时,市场价格对应怎样的未来波动尺度。它包含风险偏好、供需与模型假设,不能简单翻译成参与者对未来的无偏预测。
期权是一种在规定时间和条件下买入或卖出标的资产的权利。买方支付权利金获得权利,卖方收取权利金并承担履约义务。期权收益对标的价格不是一条直线,价格接近行权条件、到期时间缩短和隐含波动变化时,头寸敏感度都会改变。
波动率策略可以研究历史波动预测,也可以比较隐含波动与随后实现波动,还能交易期限结构、不同执行价格的偏度或多资产相关性。每一种对象需要不同合约数据和风险模型,不能用“交易波动率”一句话代替。
卖出波动率为何会呈现许多小赚与少数大亏¶
期权卖方在多数平静时期收取权利金,若标的变化较小,权利金中的时间价值会逐渐消耗。突发跳空与波动率上升时,卖方损失可能迅速扩大,保证金要求也会提高,被迫减仓又会在流动性较差时发生。
flowchart TB
accTitle: 卖出波动率头寸的非对称风险链
accDescr: 卖方先收取有限权利金,平静时期时间价值逐步衰减,市场冲击时标的跳空和隐含波动上升会扩大损失,保证金与流动性压力可能进一步迫使减仓
premium["开始<br/>收取有限权利金"] --> exposure["持续承担非线性价格与波动风险"]
exposure --> shock{"市场是否出现剧烈冲击"}
shock -->|平静| decay["时间流逝<br/>权利金价值逐步衰减"]
shock -->|冲击| loss["跳空与隐含波动上升<br/>损失快速扩大"]
loss --> margin["保证金提高与现金压力"]
margin --> liquidity["在困难流动性中被迫减仓"]
liquidity --> loss
decay --> close["到期或按计划平仓"]
平滑历史曲线与较高胜率会制造安全错觉。波动率卖方必须报告跳空、隐含波动曲面变化、对冲频率、保证金、最坏损失与流动性。只有标的日线和期权收盘中间价,无法完整模拟盘口、行权与动态对冲。
波动率风险溢价描述市场为承担波动与尾部风险支付的补偿。它在不同期限、执行价格和市场状态中并不恒定。观察到隐含波动平均高于后来实现波动,也不能直接推出卖出所有期权都能获得可实现利润,交易成本与极端损失会改变分布。
波动突破与波动目标使用同一词却解决不同问题¶
波动突破把当日真实波幅与历史尺度比较,用来判断价格活动是否突然扩大,常服务于方向信号。波动目标则根据组合风险估计缩放仓位,第 22 课已经学习。一个负责发现市场状态,另一个负责控制账户暴露,不能因为都使用波动率就归为同一策略。
真实波幅会同时考虑当日高低差和隔夜跳空。假设昨天收盘 100 元,今天最高 106 元、最低 102 元。单看日内高低差为 4 元;最高相对昨收差 6 元,最低相对昨收差 2 元,因此真实波幅取三者最大值 6 元。为了把这套算法写成通用公式,我们把第 \(t\) 天的最高价记作 \(H_t\),最低价记作 \(L_t\),把前一个交易日的收盘价记作 \(C_{t-1}\)。下面的公式正是这三段距离的比较。
三段距离中的最大值就是当天的 \(TR_t\),中文常叫“真实波幅”。ATR 则是一段时间内真实波幅的平均值,可用来设置突破距离或风险单位。它保存了隔夜跳空的信息,却仍然只是对历史波动尺度的概括,不能预测下一次极端跳跃会在什么时候出现。
做市赚的是报价差,承担的是库存与信息风险¶
假设做市者同时挂出 9.99 元买单和 10.01 元卖单。如果先在 9.99 元买到一份,随后又在 10.01 元卖出同一份,忽略费用时赚取 0.02 元价差。这个例子需要两边都成交,而且市场没有在持有库存期间大幅向下。
买单成交后、卖单尚未成交时,做市者拥有一份库存。价格跌到 9.80 元,账面损失已经远大于 0.02 元价差。库存持续偏向一侧时,系统会调整报价、主动对冲或停止提供流动性。最大库存、持有时间与停机条件是做市策略的一部分。
逆向选择表示与你成交的对手可能拥有更及时的信息。某人急于在 9.99 元卖给做市者,可能因为真实价值即将下降;订单刚成交,市场就向 9.80 元移动。做市获得成交不一定是好消息,价差收入必须覆盖这类成交后的不利变化。
做市回测需要逐笔成交、盘口深度、订单状态、排队位置、撤单与网络延迟。只要市场价格触碰挂单就假设全部成交,会忽略前方队列和可用数量。只有日线数据时,本手册把做市停留在机制层,不提供误导性的收益模拟。
每个家族都要设置数据不足时的停止线¶
| 家族 | 缺少什么就不能继续执行回测 | 可以保留的学习工作 |
|---|---|---|
| 事件 | 精确可见时间、事件版本或可靠基准 | 事件分类、纸面时间线与数据缺口清单 |
| 季节 | 足够长历史、官方交易日历和制度版本 | 预注册少量假设与多重检验计划 |
| 期货 Carry | 具体合约、换月、保证金与交易单位 | 期限结构和现金流分解 |
| 期权波动率 | 历史合约链、报价、行权与保证金规则 | 历史与隐含波动概念比较、尾部情景 |
| 做市 | 逐笔、盘口、队列、订单回报与延迟 | 库存账本、逆向选择和停机规则 |
停止线不会降低教程价值。它让读者知道结论需要哪些证据,也防止一段简化代码把制度细节悄悄设为零。
常见回测错觉¶
| 漂亮结果来自哪里 | 被省略的现实 | 检查方法 |
|---|---|---|
| 公告日开盘前就建仓 | 公告可能盘后发布 | 使用原始时分秒与第一可交易时点 |
| 财报惊喜非常准确 | 预期数据库使用了事后修订 | 保存公告前最后快照 |
| 连续期货曲线平滑盈利 | 拼接调整抹去了真实换月 | 在具体合约上记录展期与费用 |
| 卖期权胜率极高 | 少数尾部损失与保证金未覆盖 | 加入跳空、曲面和被迫减仓压力 |
| 挂单触价就获得全部价差 | 队列、撤单和逆向选择不存在 | 使用订单级数据与成交回报 |
| 某月效应多年稳定 | 从大量日历组合只挑赢家 | 报告尝试总数、机制与制度分段 |
一张制度与执行策略卡¶
| 栏目 | 事件策略要写什么 | Carry 或波动率策略要写什么 |
|---|---|---|
| 核心对象 | 哪类事件、哪个状态、怎样去重 | 哪种现金流、期限或波动差 |
| 时间 | 发布、接收、决策与第一可交易时点 | 合约到期、换月、计息与行权时间 |
| 数据 | 事件版本、预期快照与正常收益基线 | 具体合约、报价、保证金与现金流 |
| 订单 | 公告后怎样成交并处理拥挤 | 展期、对冲、库存与未成交 |
| 风险 | 重叠事件、跳空和样本集中 | 融资、非线性尾部、杠杆与流动性 |
| 停止 | 时间戳不足或制度改变 | 数据缺失、保证金或库存超限 |
一分钟自测¶
某份财报网页只记录日期,没有发布时间。能否据此断言策略当天开盘就能使用财报内容?
查看答案
不能。信息可能在盘中或盘后发布,日期不足以确定最早可交易时点。需要原始时间戳,或使用保守延迟并明确限制。本课术语¶
| 词语 | 先这样理解 |
|---|---|
| 事件窗口 | 用来观察信息公布前后市场变化的一段时间 |
| 财报惊喜 | 实际披露结果与公告前市场预期之间的差 |
| 异常收益 | 实际收益减去正常情况基线后的部分 |
| 季节性 | 与日历位置或重复制度行为相关的历史现象 |
| Carry | 状态近似不变时,持有头寸随时间获得或支付的收益来源 |
| 期限结构 | 同类合约在不同到期日上的价格关系 |
| 展期 | 平掉临近到期合约并转到更远合约的过程 |
| 隐含波动率 | 在定价模型下,由期权市场价格反推的波动尺度 |
| 非线性风险 | 标的变化相同时,头寸损益不会按固定比例变化的风险 |
| 做市 | 持续提供买卖报价并管理成交库存的活动 |
| 逆向选择 | 更有信息的对手更可能在对你不利时与你成交 |
策略阶段综合作业¶
从第 19 至 23 课各选一种方法,使用第 18 课统一策略卡进行横向比较。五张卡必须使用相同栏目,分别写核心假设、数据可见时间、信号、订单、仓位、最大风险、简单基线和验证计划。不要填写任何未经同口径回测的收益排名。
随后选择其中数据要求最低的一种,制作答案已知的小表与交易时间线。再为数据要求最高的一种写停止线,说明目前缺少哪些数据,为什么不能继续执行回测。这两项成果会进入毕业项目的策略选择依据。
课后练习¶
1 理解 Carry¶
为什么借入低息货币、持有高息货币的利差不能被当作免费收益?
提示
考虑汇率、融资与压力时期共同退出。答案
高息货币可能贬值,融资条件与利差会变化,拥挤头寸还可能在压力期共同退出。利差通常对应风险,不是确定利润。2 计算异常收益¶
事件后公司上涨 5%,同期合理基准上涨 3%。教学异常收益是多少?
提示
用公司实际收益减去正常收益基线。答案
异常收益为 2 个百分点。正式研究还要说明基准估计窗口和交易成本。3 寻找期货遗漏¶
回测直接使用平滑连续期货价格计算收益,没有记录具体合约与换月。遗漏了哪些账户事件?
提示
临近到期时需要做什么,现金又受到哪些影响?答案
遗漏近月平仓、远月建仓、展期价差、手续费、保证金、交易单位和可能的换月冲击。平滑曲线不等于实际合约账本。4 手算做市库存¶
做市者在 9.99 元买入一份,尚未卖出时市场跌到 9.80 元。按 9.80 元估值的未实现盈亏是多少?它与计划赚取的 0.02 元价差相比怎样?
提示
用当前估值减去买入价。答案
未实现盈亏为负 0.19 元,远大于计划的 0.02 元价差。这说明库存方向变化可以压过多次小价差。5 开放思考¶
为什么本课方法比普通日线均线更需要保守成本和尾部压力?
评价要点
精确时间、合约换月、杠杆、非线性损益、队列和高频执行会放大微小假设误差。平静时期小收益还可能对应少见的大损失,因此必须模拟困难成交、保证金、跳空与停止条件。参考资料¶
公告后漂移、事件研究、期货期限结构、波动率风险溢价与做市微观结构的资料入口统一列在参考资料中。阅读时请优先还原时间戳、现金流、合约规则、执行数据和尾部风险。
事件策略靠精确时钟守住信息边界,Carry 要拆开现金流和展期,历史波动记录已经发生的变化,隐含波动来自期权价格中的市场定价。做市价差还要支付库存与逆向选择的代价。这些策略来自不同市场机制,不能因为都写在一章里就共用同一套数据和回测假设。