4. 价差计算:基础价差公式、对数价差与百分比价差的区别

说到价差计算,很多新手第一反应就是「A减B」。嗯,没错,这是最直观的方式。但实际做量化交易时,你会发现事情没那么简单。

我个人习惯把价差计算分成三个层次:基础价差对数价差百分比价差。它们各有各的适用场景,选错了,策略可能直接崩掉。

4.1 基础价差公式:最直观,但坑最多

基础价差就是两个价格直接相减:

spread = price_A - price_B

这有什么好说的?你想想看,如果BTC在交易所A是50000 USDT,在交易所B是50050 USDT,那价差就是-50 USDT。简单吧?

但我在项目中遇到过一个大坑:价格尺度不一致。比如ETH价格是3000 USDT,而某个山寨币价格是0.5 USDT。你直接相减,价差几乎完全被ETH的价格波动主导,山寨币那点变化根本看不出来。

⚠️ 避坑指南: 基础价差只适用于价格尺度相近的品种。比如同一币种在不同交易所,或者价格接近的币对。否则,价差信号会被大数淹没。

另外,基础价差还有一个隐含假设——价差是平稳的。如果两个币种的价格趋势不同,价差会随时间漂移,这时候用基础价差做均值回归,大概率亏钱。

4.2 对数价差:我个人的首选

对数价差长这样:

log_spread = log(price_A) - log(price_B)

说白了,就是取对数后再相减。为什么这么做?

第一,对数价差天然是百分比变化的近似。当价格变化很小时,log(price_A) - log(price_B) ≈ (price_A - price_B) / price_B。也就是说,它衡量的是相对变化,而不是绝对变化。

第二,对数价差更稳定。我记得有一次做ETH/BTC的价差套利,ETH从300涨到3000,BTC从10000涨到60000。基础价差从-9700变成了-57000,完全没法用。但对数价差呢?log(300)-log(10000) ≈ -3.5,log(3000)-log(60000) ≈ -3.0,变化幅度小得多,而且均值回归特征明显。

💡 核心要点: 对数价差假设两个价格之间存在乘法关系(即比例关系),而不是加法关系。这在金融资产中更符合实际——价格翻倍和价格涨100块,显然是前者更有意义。

第三,对数价差可以处理价格归一化。如果你把两个价格都除以某个基准,对数价差不变。这在实际操作中非常方便。

4.3 百分比价差:直观但容易误导

百分比价差有两种常见形式:

pct_spread_1 = (price_A - price_B) / price_B
pct_spread_2 = (price_A - price_B) / ((price_A + price_B) / 2)

第一种是相对于B的百分比,第二种是相对于平均价格的百分比(也叫中点法)。

百分比价差的好处是直观——「价差是0.5%」,一听就懂。但问题也在这里。

我曾经犯过一个错误:用百分比价差做统计套利,结果发现阈值很难设。为什么?因为百分比价差的分布不是对称的。当price_A远大于price_B时,百分比价差接近+100%;当price_A远小于price_B时,百分比价差接近-100%。但实际交易中,价差很少会到±100%,所以阈值设小了没信号,设大了又错过机会。

📌 我的建议: 如果你只是做简单的价差监控,百分比价差够用。但如果你要做统计建模、回测、或者机器学习,对数价差是更稳妥的选择

4.4 三种价差的对比

我把它们的核心区别整理成了表格,方便你对照:

特性 基础价差 对数价差 百分比价差
计算公式 P_A - P_B ln(P_A) - ln(P_B) (P_A - P_B)/P_B
适用场景 同品种跨交易所 不同品种、不同尺度 快速监控、展示
平稳性 差(受趋势影响) 好(比例关系) 中等(受分母影响)
对称性 对称 近似对称 不对称
统计建模友好度

4.5 实战中的选择逻辑

说了这么多,到底怎么选?我一般按这个逻辑来:

  1. 同币种、同交易所、不同账户:用基础价差。比如你在两个账户之间搬砖,价格尺度完全一致,直接相减就行。
  2. 同币种、不同交易所:用基础价差或对数价差都行。但要注意,如果交易所之间价差波动很大,对数价差更稳定。
  3. 不同币种(如ETH/BTC)必须用对数价差。这是最稳妥的选择,没有之一。
  4. 快速展示给团队或客户:用百分比价差。大家一听就懂,不需要解释对数是什么。
⚠️ 重要提醒: 无论你选哪种价差,一定要先做平稳性检验(比如ADF检验)。如果价差不平稳,任何套利策略都是空中楼阁。我见过太多人直接拿价差跑回测,结果回测曲线漂亮得不行,实盘一跑就崩——因为价差结构变了。

4.6 知识体系图

下面这张图总结了三种价差的核心逻辑和选择路径:

价差计算选择路径 价差计算 同品种? 同交易所? → 基础价差 不同交易所? → 基础/对数价差 不同品种 → 必须用对数价差 最终建议 统计建模 → 对数价差 快速展示 → 百分比价差

嗯,这张图基本把选择逻辑说清楚了。你从「价差计算」出发,先问自己是不是同品种,然后根据场景选对应的方法。记住,对数价差是万金油,基础价差是特例,百分比价差是展示工具

💡 一个小技巧: 如果你不确定用哪种,先跑一下对数价差。大多数情况下它都work。如果发现价差不平稳,再考虑是不是需要做协整检验或者差分处理。

最后说一句,价差计算只是第一步。真正决定策略生死的是价差的统计特性——它是不是平稳的?它的波动率是多少?它的自相关结构如何?这些才是你后续要深挖的东西。


公众号:蓝海资料掘金营,微信deep3321