清晨的海边,老渔夫陈伯带着小孙子阿海在码头钓鱼。阿海第一次握竿,眼睛死死盯着水面上的鱼漂。鱼漂微微一动,他立刻提竿——空的。再一会儿,鱼漂又抖了一下,他又提竿——还是空的。阿海急了:“爷爷,鱼漂明明在动啊,怎么就是钓不上来呢?” 陈伯笑着摸了摸阿海的脑袋:“孩子,鱼漂的每一次跳动,并不都是鱼讯。风浪、水流、浮标的摇晃,都会让它上下乱动。你要判断水下有没有大鱼,不能只看那一下的抖动,得学会分辨哪些是干扰,哪些是信号。” 在金融市场的行情记录里,每一笔成交价就像鱼漂的一次跳动。表面上看,记录越细碎越精确,可实际上,这些成交记录夹杂着买卖价差、报价取整、订单冲击之类的“风浪干扰”。如果直接用这些噪声包裹的tick数据计算价格波动率,结果会被严重扭曲。这篇文章会像陈伯教阿海一样,带你一步步学会:如何识别噪声、如何选择观测频率、如何估算干扰大小、如何用预平均和卡尔曼滤波把水下真相“钓”上来。

岗位关联

掌握tick数据噪声处理,是从“看见数据”到“读懂市场”的必修课。它能让你的高频波动率估计从“虚高失真”变为“真正可信”,是量化风控与算法交易的核心技能。

目录
  1. 可视化演示
  2. 识别噪声来源
  3. 抉择采样频率
  4. 估计噪声方差
  5. 预平均去噪法
  6. 卡尔曼滤波分离
  7. 波动率精度提升
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

展示金融tick数据微观结构噪声处理:噪声模型(观测价格=有效价格+噪声+tick散点)、预平均方法(窗口平滑噪声+RV偏差修正+窗口选择权衡)、Kalman滤波(状态空间模型+信号噪声分离+RV/TSRV/KV波动率估计),交互切换核心维度。

本节配有交互动效(进入视口后自动加载,约 3KB)。

微观结构噪声模型 观测价格P_obs=有效价格P_eff+微观噪声,买卖价差导致偏差 有效价格是真实价格信号,噪声为i.i.d.随机项 tick数据散点围绕有效价格波动,噪声方差可估计 P_obs(t) = P_eff(t) + epsilon(t), epsilon ~ i.i.d.(0, sigma^2) 有效价格+噪声+方差估计

识别噪声来源

陈伯指着鱼漂周围的涟漪说:“为什么鱼漂会乱跳?你看——风在吹,水在流,远处还有船经过,每一种都会带动浮标。”阿海若有所思:“所以鱼漂一动不一定是鱼,也可能是浪。”陈伯点点头:“对,把这些干扰都弄清楚了,才能知道哪些是真正的水下动静。”

金融市场上,同样存在这样的“风浪”。交易所记录的每笔成交价格,并不是资产真实价值的精确读数,而是真实价格叠加了各种干扰因素,这些因素统称为微观结构噪声。它就像鱼漂读数里的“风浪干扰”,掩盖了水下真实的价格运动信号。

微观结构噪声的来源主要有四类:第一类是买卖价差效应,当买单和卖单交替成交时,价格在买一价和卖一价之间来回跳跃,形成锯齿状的微小波动;第二类是价格离散化,交易所规定最小报价单位,真实价格是连续变化的,但记录价格只能落在离散的档位上,就像一个只能显示整数的电子秤;第三类是订单流冲击,大额订单像石头投入水面,瞬间推动价格偏离均衡;第四类是数据记录延迟,不同交易通道的撮合与网络时延会让时间戳与价格不完全匹配。

阿海终于明白,风浪、水流、船波这些“噪声”是理解鱼漂的第一步。只有知道干扰长什么样,才能在后面的学习中把信号从噪声里“钓”出来。

yt=pt+εty_t = p_t + \varepsilon_t
这个公式用一句话概括了噪声的来源:观测到的成交价格,等于真实价格加上噪声。
  1. 观测价格$y_t$ 表示第 $t$ 笔tick记录的成交价格,它是我们从行情数据里直接看到的数字,就像鱼漂每一次跳动的读数。
    yty_t
  2. 真实价格$p_t$ 表示市场在无摩擦条件下的隐含真实价格,它不可直接观测,就像水下的鱼群位置,只能靠推断。
    ptp_t
  3. 噪声项$\varepsilon_t$ 表示微观结构噪声,均值为零、方差为 $\sigma_\varepsilon^2$,它来自买卖价差、价格取整等干扰。
    εt∼White Noise(0,σε2)\varepsilon_t \sim \text{White Noise}(0, \sigma_\varepsilon^2)

抉择采样频率

阿海决定紧盯着鱼漂,一秒都不眨眼地看。结果半小时下来,眼睛花了,只记得鱼漂在乱跳,什么也没判断出来。陈伯把鱼竿接过来:“看太细,反而会被细节骗了。”

在估计波动率时,我们也会面临同样的选择。最自然的做法,是把所有tick数据都用上——毕竟每个tick都是真实发生的成交。但问题在于,频率越高,噪声也被采集得越密。用这些带噪声的tick数据计算已实现波动率时,每个噪声贡献出一个正的平方项,tick数量 $n$ 越大,噪声的累积效应越恐怖。

就像盯鱼漂盯得越紧,看到的浪花颠簸越多,反而忽略了水下的真实涌动。陈伯告诉阿海:看鱼漂要有节奏,不能太密也不能太疏。金融市场里,这个“看鱼的节奏”就是采样频率的选择——高频偏离真实,稀疏又丢失信息,关键在于找到平衡点。

RV(all)=∑i=1n(Δyi)2≈∫0Tσt2 dt+2n σε2RV^{(all)} = \sum_{i=1}^{n}\left(\Delta y_i\right)^2 \approx \int_0^T \sigma_t^2\,dt + 2n\,\sigma_\varepsilon^2
高频已实现波动率等于真实积分方差加上一个与tick数量成正比的噪声偏差项——数据越密集,偏差越严重。
  1. 已实现波动率$RV^{(all)}$ 表示用全部tick数据计算出的已实现波动率,做法是取相邻tick对数收益并平方累加。
    RV(all)RV^{(all)}
  2. tick对数收益$\Delta y_i$ 是相邻两个tick观测价格的对数差分,真实价格变动与噪声差都混在里面。
    Δyi=log⁡yi−log⁡yi−1\Delta y_i = \log y_i - \log y_{i-1}
  3. 真实积分方差$\int_0^T \sigma_t^2\,dt$ 是在采样区间 $[0,T]$ 内真实波动率的积分,代表我们最想知道的“水下真实涌动”。
    ∫0Tσt2 dt\int_0^T \sigma_t^2\,dt
  4. 噪声偏差项$2n\,\sigma_\varepsilon^2$ 是噪声对已实现方差的污染量,$n$ 越大污染越重,这就是“越精细越失真”的根源。
    2n σε22n\,\sigma_\varepsilon^2

估计噪声方差

陈伯拿出一把直尺和一把游标卡尺,对阿海说:“你想知道风浪的干扰有多大?有个办法——用两把不同精度的尺子同时量鱼漂的晃动,比较它们的差异,就能推算出干扰大概占多少。”

这就是噪声方差估计的核心思路:用两个不同采样频率下的已实现波动率之差,反推出噪声方差。高频RV包含“真实积分方差 + 全部噪声”,低频RV包含“真实积分方差 + 较少噪声”,两者相减后真实部分被抵消,剩下的就是噪声方差的贡献。

阿海照着这个思路算了算,果然估算出风浪的“平均振幅”。以后每次看到鱼漂跳动,他心里都有了一杆秤:这一下有多少是风浪,有多少可能是鱼讯。

σ^ε2=RV(all)−RV(sparse)2(n−nsparse)\hat{\sigma}_\varepsilon^2 = \frac{RV^{(all)} - RV^{(sparse)}}{2\left(n - n_{sparse}\right)}
噪声方差估计公式:高频与低频已实现波动率的差值,除以两倍tick数量之差,得到噪声方差的估计量。
  1. 分子差值$RV^{(all)} - RV^{(sparse)}$ 是高频与低频已实现波动率的差值,真实波动率部分互相抵消,仅剩噪声贡献之差。
    RV(all)−RV(sparse)RV^{(all)} - RV^{(sparse)}
  2. 分母系数$2\left(n - n_{sparse}\right)$ 是两倍的两个采样数量之差,用于将总噪声偏差“稀释”成单个噪声方差。
    2(n−nsparse)2\left(n - n_{sparse}\right)
  3. 噪声方差估计量$\hat{\sigma}_\varepsilon^2$ 计算出的结果就是微观噪声的方差估计,后续波动率修正都要靠它。
    σ^ε2\hat{\sigma}_\varepsilon^2

预平均去噪法

陈伯教阿海一个新招:“别死盯着鱼漂的每一个瞬间跳动,试试看它在一小段时间里的大概位置。”说着,他用手指在水面上轻轻画出一条线,把鱼漂抖动的中间轨迹描了出来。

预平均(pre-averaging)方法正是这个思路:对价格做局部滑动平均,把高频噪声先“抹”掉一层,然后再基于平均后的价格计算收益和已实现波动率。就像用手指在空中跟随鱼漂画一条平滑线,滤掉风浪的毛刺,留下整体的趋势。

窗口 $K$ 就像陈伯画线的“手势幅度”:太小则线不够平滑,噪声依然显著;太大则把真实波动也抹掉了。实际中 $K$ 通常按 tick 数量的立方根级别选取,兼顾降噪与保真。

yˉi(K)=1K∑j=0K−1yi+j,RV(PA)=∑i=Kn(yˉi(K)−yˉi−K(K))2\bar{y}_i^{(K)} = \frac{1}{K}\sum_{j=0}^{K-1} y_{i+j}, \qquad RV^{(PA)} = \sum_{i=K}^{n}\left(\bar{y}_i^{(K)} - \bar{y}_{i-K}^{(K)}\right)^2
预平均方法先把价格按窗口 $K$ 做滑动平均得到 $\bar{y}_i^{(K)}$,再基于这个平滑序列计算已实现波动率,噪声影响随窗口增大而衰减。
  1. 局部平均价格$\bar{y}_i^{(K)}$ 表示从第 $i$ 个tick开始连续 $K$ 个观测价格的平均值,相当于取一小段时间鱼漂的平均位置。
    yˉi(K)=1K∑j=0K−1yi+j\bar{y}_i^{(K)} = \frac{1}{K}\sum_{j=0}^{K-1} y_{i+j}
  2. 预平均收益$\bar{y}_i^{(K)} - \bar{y}_{i-K}^{(K)}$ 是两个不相交窗口的平均价格之差,类似平滑后的“收益”,噪声在相减时进一步被平均抵消。
    yˉi(K)−yˉi−K(K)\bar{y}_i^{(K)} - \bar{y}_{i-K}^{(K)}
  3. 预平均波动率$RV^{(PA)}$ 将平滑收益平方累加,得到降噪后的已实现波动率,偏差显著小于直接使用原始tick。
    RV(PA)=∑i=Kn(yˉi(K)−yˉi−K(K))2RV^{(PA)} = \sum_{i=K}^{n}\left(\bar{y}_i^{(K)} - \bar{y}_{i-K}^{(K)}\right)^2

卡尔曼滤波分离

阿海渐渐悟出一个道理:最聪明的渔夫既不会死盯鱼漂的每个瞬间,也不只是看平均位置,而是把鱼漂的当前读数和以往的经验结合起来,给出最可靠的判断。陈伯听完哈哈大笑:“这就是我钓了四十年鱼的秘诀!”

数学上,这套“经验 + 实时观测”的结合术就是卡尔曼滤波。把真实价格看作一个随时间演化的“鱼群轨迹”,它遵循随机的游走;而我们看到的tick价格,只是这个轨迹叠加上噪声后的观测。状态空间模型精确刻画了这个过程:

在每一步,卡尔曼滤波都像老渔夫一样做着同样的事:先“猜”水下鱼群大概在哪里,再瞄一眼鱼漂的实际读数,最后在两者之间取一个加权折中。权重由噪声方差决定——风浪越大,越依赖经验;风浪越小,越信任鱼漂。这个递归过程能在线实时分离信号与噪声,正是高频交易中监控动态波动率的利器。

yt=pt+εt,pt=pt−1+ηty_t = p_t + \varepsilon_t, \qquad p_t = p_{t-1} + \eta_t
观测方程描述“鱼漂读数 = 真实位置 + 风浪噪声”,状态方程描述“真实位置 = 上一时刻位置 + 新的随机驱动力”。
  1. 观测方程$y_t = p_t + \varepsilon_t$ 说明我们的tick观测 $y_t$ 是真实价格 $p_t$ 与噪声 $\varepsilon_t$ 的叠加,对应鱼漂读数与水下鱼群的关系。
    yt=pt+εty_t = p_t + \varepsilon_t
  2. 状态方程$p_t = p_{t-1} + \eta_t$ 说明真实价格每一步只比上一步多一个小的随机增量 $\eta_t$,这是一个随机游走过程。
    pt=pt−1+ηtp_t = p_{t-1} + \eta_t
  3. 预测更新递归滤波器先根据状态方程预测当前真实价格,再用观测值按卡尔曼增益 $K_t$ 修正预测,不断递归逼近真实信号。
    Kt=Pt∣t−1Pt∣t−1+σε2K_t = \frac{P_{t|t-1}}{P_{t|t-1} + \sigma_\varepsilon^2}

波动率精度提升

周末傍晚,阿海把自己学会的几种方法都试了一遍,发现用修正后的数据去判断水下动静,成功率一下子提高了很多。他把结果记录在小本子上,总结出一套“读漂心法”。

这套“读漂心法”对应到金融数据上,就是最直接的波动率修正方式:把高频已实现波动率里那个已知的噪声偏差项减掉。既然噪声对RV的污染量是 $2n\sigma_\varepsilon^2$,而我们又已经估出了噪声方差,那么修正就是一步减法:

相比之下,稀疏采样虽然也用“丢弃”来降噪,但代价是丢掉真实信息;预平均方法靠平滑降噪,但窗口选择偏经验。而修正公式有清晰的统计依据,可以和其他方法结合使用。阿海合上小本子,望着海面笑了——从今往后,每一竿都不会再被“假信号”骗了。

RV^=RV(all)−2n σ^ε2\widehat{RV} = RV^{(all)} - 2n\,\hat{\sigma}_\varepsilon^2
修正已实现波动率等于高频RV减去噪声偏差项,这是最简单也最常用的理论修正方法。
  1. 修正后的RV$\widehat{RV}$ 表示扣除噪声污染后的已实现波动率,它比原始高频RV更接近真实积分方差。
    RV^\widehat{RV}
  2. 噪声偏差项$2n\,\hat{\sigma}_\varepsilon^2$ 是将估计出的噪声方差放大 $2n$ 倍,用于还原高频RV中被噪声虚增的部分。
    2n σ^ε22n\,\hat{\sigma}_\varepsilon^2
  3. 修正操作$RV^{(all)} - 2n\,\hat{\sigma}_\varepsilon^2$ 用高频数据的信息减去噪声贡献,保留了tick数据的丰富信息又消除了偏差。
    RV(all)−2n σ^ε2RV^{(all)} - 2n\,\hat{\sigma}_\varepsilon^2

AI 应用场景

高频做市商实时波动率监控

阶段:实时数据处理与信号提取

解决的问题:做市商需要在毫秒级别判断短期波动是否异常,以动态调整买卖报价宽度。传统方法直接使用tick数据计算波动率,噪声会把波动率信号抬得虚高,导致报价过宽、盈利受损。AI系统通过卡尔曼滤波在线分离信号与噪声,实时输出干净的波动率估计

具体案例:某数字资产做市团队在行情流中部署卡尔曼滤波模块,将每秒2000笔的tick数据压缩为实时去噪价格序列,波动率估计精度比传统RV方法提升约40%,报价价差收窄15%,日盈利提高约8%

期权定价中的波动率曲面构建

阶段:特征工程与参数估计

解决的问题:期权定价模型的核心输入是标的资产的波动率,但使用tick数据计算的已实现波动率带有微观噪声偏差,导致隐含波动率曲面出现异常扭曲。通过预平均方法和方差修正,可以构建更干净的波动率基准,提高定价准确性

具体案例:某券商衍生品部门在50ETF期权定价流程中,先用预平均方法处理日内tick数据,再用修正公式计算日度已实现波动率,将其作为隐含波动率反演的先验。结果显示,模型定价误差降低了约25%,套利信号质量显著改善

高频风控中的VaR与压力测试

阶段:风险建模与实时预警

解决的问题:金融机构的VaR计算通常使用日频数据,但日频数据对盘中突发波动不敏感。若直接用tick数据计算,又会因为噪声虚增波动率而频繁误报。噪声方差估计与修正方法让风控系统既灵敏又不误报

具体案例:某银行交易台将修正后的已实现波动率接入实时风控引擎,在302个交易日中,对尾盘急剧波动事件的提前预警成功率比传统模型高出18%,误报率降低22%

Python 演示

python71 行
import numpy as np  def simulate_tick(n=2000, dt=1.0/252/23400, sigma_eta=0.00018, sigma_eps=0.0009, seed=42):    """生成模拟tick数据: 真实价格随机游走 + 微观结构噪声"""    rng = np.random.default_rng(seed)    true_ret = sigma_eta * np.sqrt(dt) * rng.standard_normal(n)    true_price = 100.0 * np.exp(np.cumsum(true_ret))    obs_noise = sigma_eps * rng.standard_normal(n)    obs_price = true_price + obs_noise    return true_price, obs_price  def realized_rv(price, step=1):    """按step间隔抽取价格并计算已实现方差"""    sampled = price[::step]    log_ret = np.diff(np.log(sampled))    return np.sum(log_ret ** 2), len(log_ret)  def preavg(price, win=5):    """对价格做窗口为win的滑动平均(预平均)"""    kernel = np.ones(win) / win    return np.convolve(price, kernel, mode="valid")  def kalman_filter(obs, sigma_eps_hat, sigma_eta_hat, dt):    """一维Kalman滤波: 状态=真实价格, 观测=噪声价格"""    n = len(obs)    state = obs[0]    var_p = sigma_eps_hat ** 2    q = (sigma_eta_hat ** 2) * dt    r = sigma_eps_hat ** 2    est = np.empty(n)    for i in range(n):        var_p = var_p + q        kg = var_p / (var_p + r)        state = state + kg * (obs[i] - state)        var_p = (1.0 - kg) * var_p        est[i] = state    return est  def main():    true_price, obs_price = simulate_tick()    n = len(obs_price)    dt = 1.0 / 252 / 23400     rv_high, _ = realized_rv(obs_price, step=1)    rv_low, n_low = realized_rv(obs_price, step=5)    sigma_eps_hat = np.sqrt((rv_high - rv_low) / (2.0 * (n - n_low)))    rv_corrected = rv_high - 2.0 * n * sigma_eps_hat ** 2     pre_price = preavg(obs_price, win=5)    rv_preavg, _ = realized_rv(pre_price, step=1)     kalman_est = kalman_filter(obs_price, sigma_eps_hat, 0.00018, dt)    rv_kalman, _ = realized_rv(kalman_est, step=1)     rv_true, _ = realized_rv(true_price, step=1)     print("真实波动率RV:    %.6f" % rv_true)    print("高频RV(含噪声):  %.6f" % rv_high)    print("低频采样RV:      %.6f" % rv_low)    print("修正后RV:        %.6f" % rv_corrected)    print("预平均后RV:      %.6f" % rv_preavg)    print("Kalman后RV:      %.6f" % rv_kalman)  if __name__ == "__main__":    main()
目的:模拟tick数据,对比高频RV、低频RV、方差修正、预平均和Kalman滤波五种方法对真实波动率的估计精度。
  1. rv_high, _ = realized_rv(obs_price, step=1)用全部tick计算高频已实现波动率,此时噪声偏差最大
  2. rv_low, n_low = realized_rv(obs_price, step=5)每5个tick抽样一次,噪声偏差减小但信息也减少
  3. sigma_eps_hat = np.sqrt((rv_high - rv_low) / (2.0 * (n - n_low)))用高低频差值反推噪声方差,是公式 $\hat{\sigma}_\varepsilon^2 = \frac{RV^{(all)} - RV^{(sparse)}}{2(n-n_{sparse})}$ 的直接实现
  4. rv_corrected = rv_high - 2.0 * n * sigma_eps_hat ** 2执行修正步骤,从高频RV中减去 $2n\hat{\sigma}_\varepsilon^2$
  5. pre_price = preavg(obs_price, win=5)用卷积实现滑动平均,窗口为5
  6. kg = var_p / (var_p + r)计算Kalman增益,决定对观测的信任程度
  7. state = state + kg * (obs[i] - state)用当前观测修正预测状态,平滑后的价格就是去噪信号

常见误区

误区tick数据是最精细的市场记录,我把所有tick都用来计算波动率,当然是最准确的,因为数据越多信息越完整。

正解这个想法忽略了微观结构噪声的累积效应。已实现波动率是所有收益平方的加总,每个噪声都会贡献一个正的平方项,tick数量越多,噪声偏差 $2n\sigma_\varepsilon^2$ 就越大,波动率被虚高得越离谱。就像紧盯着鱼漂每一毫秒的抖动,反而看不清真实的鱼汛。

为何常见:直觉上认为“数据越多越好”,没有意识到高频采样在增加信息的同时也在放大噪声。

误区既然高频数据有噪声,那我直接把采样频率降到很低,比如每100个tick取一个,噪声总该被滤掉了吧?

正解低频采样确实能减小噪声偏差,但同时丢弃了大量真实的短时波动信息,尤其在市场剧烈波动时,稀松采样会完全错过关键的价格跳变,导致波动率被严重低估。这和“每半小时看一眼鱼漂”一样,虽然风浪干扰少了,但鱼群可能已经游走了。

为何常见:这是高频噪声的矫枉过正,没有认识到低频数据的信息损失同样致命。

误区预平均就是滑动平均,那我直接把窗口设成100个tick,噪声肯定被全部消掉,波动率估计一定更准。

正解窗口过大会把真实的短时波动也一起抹平,造成新的偏差。预平均窗口 $K$ 的选择需要在降噪和保真之间取得平衡,通常应该与噪声方差和真实波动强度匹配,而不是越大越好。

为何常见:把“平滑”等同于“去噪声”,忽略了信号本身的频率特征也在平滑中被破坏。

误区我只要调用现成的Kalman滤波库,把tick数据丢进去,输出就是去噪后的干净价格,不需要理解内部原理。

正解Kalman滤波的效果高度依赖模型参数:状态转移噪声方差和观测噪声方差。如果观测噪声方差设得过大,滤波器会过度信任观测,噪声残留严重;设得过小,又会对真实波动过度平滑。必须先通过噪声方差估计等方法确定参数,再运行滤波,否则输出并不可靠。

为何常见:把滤波算法当作黑盒工具,忽视了状态空间建模中参数估计的核心地位。

面试题

Q1. 下列哪一项是tick数据微观结构噪声的重要来源?

单选题 · easy

  • A.买卖价差效应← 正确答案
  • B.央行利率调整
  • C.上市公司财报
  • D.季节气候变换

答案:A。买卖价差导致成交价在买一价与卖一价之间跳跃,是微观结构噪声的核心来源。央行利率、上市公司财报和季节气候虽然影响资产价格,但它们属于宏观与基本面因素,不是tick数据层面的微观噪声来源。

Q2. 使用全部tick数据计算已实现波动率,结果通常会?

单选题 · easy

  • A.精确等于真实值
  • B.低于真实波动率
  • C.高于真实波动率← 正确答案
  • D.无法确定高低

答案:C。噪声的平方项始终为正,累加后会使已实现波动率系统性高估。tick数越多,$2n\sigma_\varepsilon^2$ 越大,偏离越严重,就像鱼漂被风浪带着乱跳时,读出的“波动”总比真实水波大。

Q3. 下列关于采样频率的说法哪一项是正确的?

单选题 · easy

  • A.采样频率越高噪声越小
  • B.采样频率越低信息越全
  • C.最优频率需要权衡取舍← 正确答案
  • D.任何频率结果都相同

答案:C。高频采样噪声累积偏大,低频采样丢失信息,最优采样频率需要在两者之间折中。这就像看鱼漂,既要看清鱼汛又不能被浪花的抖动迷惑。

Q4. 预平均方法的核心思想是什么?

单选题 · mid

  • A.删除全部异常数据
  • B.对价格做滑动平均← 正确答案
  • C.复制数据增加样本
  • D.放大噪声看信号

答案:B。预平均方法对tick价格做局部滑动平均,先把高频噪声“抹平”再计算波动率,对应故事里“画出鱼漂平滑运动轨迹”的动作。

Q5. Kalman滤波在tick数据去噪中的作用是?

单选题 · mid

  • A.删除所有异常交易
  • B.分离信号与噪声← 正确答案
  • C.提高采样频率
  • D.放大价格偏差

答案:B。Kalman滤波通过状态空间建模,在预测与更新的递归过程中估计真实价格状态,将信号与噪声分离。它像老渔夫综合鱼漂读数与经验判断水下真实动静。

Q6. 高频RV与低频RV的差值主要反映了什么?

单选题 · mid

  • A.真实波动率大小
  • B.噪声总方差贡献← 正确答案
  • C.采样时段长度
  • D.成交量大小

答案:B。两个频率的RV都包含相同的真实积分方差,相减后真实部分抵消,剩下的就是高、低频噪声总方差之差,即 $2(n-n_{sparse})\sigma_\varepsilon^2$。

Q7. 修正已实现波动率的标准做法是?

单选题 · hard

  • A.高频RV减去噪声偏差项← 正确答案
  • B.低频RV加上噪声偏差项
  • C.高频RV乘上噪声方差
  • D.低频RV除以噪声方差

答案:A。修正公式为 $\widehat{RV}=RV^{(all)}-2n\hat{\sigma}_\varepsilon^2$。既然高频RV被噪声虚增了 $2n\sigma_\varepsilon^2$,减掉这项就还原了真实积分方差。

Q8. 下列哪些属于微观结构噪声的来源?

多选题 · mid

  • A.买卖价差效应← 正确答案
  • B.价格离散化← 正确答案
  • C.央行量化宽松
  • D.订单流冲击← 正确答案

答案:ABD。买卖价差、价格离散化和订单流冲击都会在tick数据层面引入噪声。央行量化宽松属于货币政策因素,影响宏观价格趋势,不是微观结构噪声。

Q9. 处理tick数据微观噪声的常用方法包括哪些?

多选题 · hard

  • A.预平均去噪← 正确答案
  • B.稀疏采样← 正确答案
  • C.Kalman滤波← 正确答案
  • D.忽略噪声

答案:ABC。预平均、稀疏采样和Kalman滤波都是从数据层面处理噪声的规范方法。忽略噪声会导致波动率估计继续虚高,不是有效方案。

Q10. 关于噪声方差估计与波动率修正,下列说法正确的是?

多选题 · extreme

  • A.可用高低频RV差值反推← 正确答案
  • B.稀疏RV必然低于真实值
  • C.修正RV需要减去2n乘方差← 正确答案
  • D.噪声偏差随tick数线性累积← 正确答案

答案:ACD。A正确,高低频RV差值除以 $2(n-n_{sparse})$ 可估计噪声方差;C正确,修正公式为 $RV^{(all)}-2n\hat{\sigma}_\varepsilon^2$;D正确,噪声对RV的偏差项 $2n\sigma_\varepsilon^2$ 随 $n$ 线性增长。B错误,低频RV是“真实积分方差+较小噪声”,只会高估而不会低于真实值,除非发生严重的信息遗漏。