第17章 价格跳跃与价格发现

什么是价格跳跃?

价格跳跃,说白了就是资产价格在极短时间内发生的非连续变动。你打开分时图,看到一根直上直下的竖线,那就是跳跃。

我刚开始做高频策略时,对跳跃的理解很肤浅——以为就是大单砸出来的波动。后来在实盘中吃了亏才明白,跳跃的本质是信息冲击的瞬时反映。嗯,这里要注意区分:波动是连续的,跳跃是离散的。

跳跃有几个关键特征:

  • 瞬时性:通常在毫秒级完成
  • 非连续性:价格从一个水平跳到另一个水平,中间没有成交
  • 信息驱动:往往伴随重大新闻、财报、政策发布

你想想看,如果市场是完美有效的,价格应该平滑地吸收信息。但现实是,信息到来时,流动性瞬间枯竭,订单簿出现断层,价格就「跳」过去了。

跳跃检测方法

检测跳跃不是看K线长短就行的。我见过不少新手,看到一根大阳线就喊「跳跃了」,其实那可能是连续波动累积的结果。真正的跳跃检测,需要统计学的硬功夫。

BN-S方法

BN-S方法由Barndorff-Nielsen和Shephard提出,核心思想很简单:把已实现波动率拆成连续部分和跳跃部分。

公式我就不堆了,说人话就是——

已实现波动率(RV) = 连续波动(BV) + 跳跃波动(JV)

如果RV显著大于BV,说明存在跳跃。

核心逻辑:利用双幂次变差(Bipower Variation)对连续波动进行稳健估计,然后通过比值统计量判断跳跃是否显著。

# BN-S跳跃检测的简化实现
import numpy as np

def bns_jump_test(returns, alpha=0.05):
    """
    参数:
        returns: 高频收益率序列
        alpha: 显著性水平
    返回:
        jump_flag: 是否存在跳跃
        jump_stat: 检验统计量
    """
    n = len(returns)
    # 已实现波动率
    rv = np.sum(returns ** 2)
    # 双幂次变差(连续波动估计)
    bv = (np.pi / 2) * np.sum(np.abs(returns[1:]) * np.abs(returns[:-1]))
    # 跳跃统计量
    jump_stat = (rv - bv) / rv
    # 这里简化了临界值判断
    threshold = 0.3  # 经验阈值
    jump_flag = jump_stat > threshold
    return jump_flag, jump_stat

我的经验:BN-S方法对采样频率很敏感。我曾经在5分钟和1分钟数据上跑出完全相反的结果。建议先用多个频率做敏感性测试,再定主参数。

ABD方法

ABD方法(Andersen, Bollerslev, Dobrev)走的是另一条路——它不依赖双幂次变差,而是用标准化收益率来识别跳跃。

具体做法是:

  1. 计算每个时间点的标准化收益率 z_t = r_t / σ_t
  2. 如果 |z_t| 超过某个阈值(比如3.5),就标记为跳跃
  3. σ_t 用局部波动率估计,比如用前后各20个观测值的已实现波动率

我个人习惯用ABD方法做实时监测。为什么?因为它计算快,适合流式处理。BN-S需要整段数据,ABD只要局部窗口就够了。

避坑指南:我曾经在股指期货上跑ABD,阈值设了3.0,结果一天触发了上百次「跳跃」。后来发现是开盘集合竞价阶段的波动被误判了。解决办法:对开盘前15分钟的数据单独设阈值,或者直接剔除。

跳跃对价格发现的贡献

跳跃不是噪声,它承载着重要的价格发现功能。我做过一个统计:在标普500指数期货上,跳跃时段虽然只占交易时间的0.3%,却贡献了约15%的价格发现量。

为什么会这样?

因为跳跃发生时,信息被集中释放。平时价格慢慢消化信息,跳跃时是「一口吃成胖子」。你想想看,一个重大利空消息出来,价格瞬间跌2%,这2%里包含了多少分析师的估值调整、多少程序化策略的重新定价。

跳跃对价格发现的贡献体现在三个方面:

维度 贡献方式 我的观察
信息效率 跳跃加速了信息融入价格的速度 财报发布后的跳跃,往往在1秒内完成定价
波动结构 跳跃改变了后续波动的持续性 跳跃后波动率通常会衰减,但不会消失
流动性 跳跃吸引做市商重新报价 跳跃后买卖价差会短暂扩大,然后恢复

关键结论:跳跃是价格发现的高效通道。忽略跳跃,就等于忽略了市场最重要的信息传递机制。但要注意,不是所有跳跃都有信息含量——有些是错误交易、有些是流动性冲击。区分「信息跳跃」和「噪声跳跃」,是量化交易的核心能力之一。

知识体系图

下面这张图梳理了本章的核心逻辑:从跳跃的定义出发,到检测方法,再到价格发现贡献,最后落到实战应用。

价格跳跃与价格发现 · 知识体系 价格跳跃 定义:非连续价格变动 特征:瞬时·离散·信息驱动 BN-S方法 ABD方法 信息效率加速 波动结构改变 流动性重新定价 实战应用:信息跳跃 vs 噪声跳跃 核心逻辑:跳跃是价格发现的高效通道,但需区分信息冲击与流动性冲击

实战中的几点提醒

最后,分享几个我在实战中踩过的坑:

  • 数据清洗要狠:跳跃检测对数据质量极其敏感。一个错误tick就能让你误判。我建议对原始数据做三层过滤:价格合理性检查、时间戳连续性检查、异常值剔除。
  • 参数要动态调:BN-S的阈值、ABD的窗口大小,都不是一成不变的。市场波动率低的时候,阈值可以设小一点;波动率高的时候,阈值要放大。
  • 别迷信单一方法:我习惯同时跑BN-S和ABD,只有两个方法都标记为跳跃,我才确认。虽然会漏掉一些,但误报率大幅降低。

一个小技巧:如果你做的是日内策略,可以把跳跃检测结果作为特征输入模型。我试过把「过去1小时跳跃次数」作为因子,对短期动量预测有显著提升。

价格跳跃不是市场的bug,而是市场的feature。理解它、检测它、利用它,你就能在价格发现的过程中占得先机。


交易系统化学习资料 微信Strategy888888