第七章:Delta与CVD分析

各位同学,今天我们来聊聊订单流交易里最核心的两个指标——Delta和CVD。说实话,这两个东西我刚开始接触时也觉得挺玄乎,不就是买卖量相减嘛。但真正在实盘里跑起来,你会发现它们就像市场的「心电图」,能提前告诉你价格要往哪走。

7.1 逐笔成交Delta计算

先说说Delta。它的定义很简单:每一笔成交中,主动买单量减去主动卖单量。正Delta说明买方更主动,负Delta说明卖方更主动。

但这里有个坑——你得搞清楚什么是「主动」。我见过不少新手把成交明细里的「买」和「卖」直接当成主动方向,其实不对。交易所的成交明细里,标记为「买」的通常是主动买,标记为「卖」的是主动卖。但有些数据源会反过来,你得先确认。

来看一段我实际用过的计算代码:

def calculate_delta(trades):
    """
    逐笔计算Delta
    trades: list of dict, 每笔包含 price, volume, side
    side: 'buy' 表示主动买, 'sell' 表示主动卖
    """
    delta = 0
    delta_series = []
    
    for trade in trades:
        if trade['side'] == 'buy':
            delta += trade['volume']
        else:
            delta -= trade['volume']
        delta_series.append({
            'time': trade['time'],
            'price': trade['price'],
            'delta': delta
        })
    
    return delta_series

嗯,这里要注意:Delta是累计值,不是单笔值。单笔Delta只是瞬时信号,累计Delta才能看出趋势。

核心要点:Delta反映的是「谁在主导市场」。正Delta持续扩大,说明买方在吸筹;负Delta持续扩大,说明卖方在出货。但别只看绝对值,要看变化速率。

7.2 累计成交量差(CVD)指标

CVD,全称Cumulative Volume Delta,其实就是Delta的累计版本。但为什么我要单独拿出来讲?因为CVD能帮你过滤掉很多噪音。

举个例子:某只股票在10秒内出现了3笔大单买入,Delta瞬间冲到+5000,但随后价格没怎么动。如果你只看单笔Delta,可能会觉得「哇,有大资金进场」。但CVD告诉你:这5000的Delta在5分钟维度上只占了总成交量的2%,其实没什么意义。

我习惯用两种CVD:

  • 日内CVD:从开盘开始累计,适合日内交易
  • 滚动CVD:取最近N笔成交的Delta和,适合捕捉短期动量

滚动CVD的计算方式:

def rolling_cvd(trades, window=100):
    """
    滚动CVD,取最近window笔成交的Delta和
    """
    deltas = []
    cvd_series = []
    
    for trade in trades:
        if trade['side'] == 'buy':
            deltas.append(trade['volume'])
        else:
            deltas.append(-trade['volume'])
        
        # 只保留最近window笔
        if len(deltas) > window:
            deltas.pop(0)
        
        cvd_series.append({
            'time': trade['time'],
            'price': trade['price'],
            'cvd': sum(deltas)
        })
    
    return cvd_series

我的经验:滚动窗口大小很关键。做高频交易我用50笔,做日内波段用200笔。太小了噪音大,太大了反应迟钝。你可以用历史数据回测一下,找到最适合你品种的参数。

7.3 Delta背离识别

这是我最喜欢用的信号之一。什么叫Delta背离?说白了就是:价格创新高,但Delta没创新高;或者价格创新低,但Delta没创新低

为什么会这样?你想想看,价格涨上去了,但主动买盘的力量却在减弱,说明这个上涨是「虚的」。我遇到过好几次这种情况——价格冲高回落,Delta背离就是最好的预警。

识别背离的步骤:

  1. 找到价格的高点/低点
  2. 找到对应时间点的Delta值
  3. 比较价格和Delta的走势是否一致

代码实现:

def detect_divergence(prices, deltas, lookback=20):
    """
    检测Delta背离
    返回:'bullish' 看涨背离, 'bearish' 看跌背离, None 无背离
    """
    # 找价格高点
    price_high = max(prices[-lookback:])
    price_high_idx = prices.index(price_high)
    
    # 找对应Delta
    delta_at_high = deltas[price_high_idx]
    
    # 比较当前价格和Delta
    current_price = prices[-1]
    current_delta = deltas[-1]
    
    # 看跌背离:价格创新高,Delta没跟上
    if current_price > price_high and current_delta < delta_at_high:
        return 'bearish'
    
    # 看涨背离:价格创新低,Delta没跟上
    price_low = min(prices[-lookback:])
    price_low_idx = prices.index(price_low)
    delta_at_low = deltas[price_low_idx]
    
    if current_price < price_low and current_delta > delta_at_low:
        return 'bullish'
    
    return None

避坑指南:我曾经在2019年做螺纹钢期货时,连续三次Delta背离都失败了。后来发现是时间周期没对齐——价格用1分钟K线,Delta用逐笔数据,两者天然存在延迟。记住:一定要用同一时间基准

7.4 Delta与价格关系建模

最后这部分,我们来聊聊怎么把Delta和价格的关系量化。说白了,就是找「Delta变化多少,价格会跟着动多少」这个规律。

我常用的方法有两种:

方法 原理 适用场景
线性回归 Delta变化量 → 价格变化量 趋势明显的行情
分位数回归 不同Delta分位数下的价格响应 震荡行情,非线性关系

线性回归的代码示例:

import numpy as np
from sklearn.linear_model import LinearRegression

def delta_price_model(delta_changes, price_changes):
    """
    建立Delta变化与价格变化的线性模型
    """
    X = np.array(delta_changes).reshape(-1, 1)
    y = np.array(price_changes)
    
    model = LinearRegression()
    model.fit(X, y)
    
    # 斜率:每单位Delta变化对应的价格变化
    slope = model.coef_[0]
    # 截距:无Delta变化时的价格漂移
    intercept = model.intercept_
    
    return {
        'slope': slope,
        'intercept': intercept,
        'r_squared': model.score(X, y)
    }

嗯,这里有个细节:Delta变化和价格变化要取同一时间窗口。我习惯用1秒窗口,太短了噪声大,太长了滞后严重。

实战建议:别指望模型能100%预测价格。Delta只是众多因子中的一个。我通常把Delta模型的预测结果作为「权重信号」——比如模型预测价格要涨,我就把仓位从30%加到50%,而不是直接满仓干。

最后,送大家一张我画的Delta分析框架图,把今天讲的内容串起来:

Delta与CVD分析框架 逐笔成交数据 逐笔Delta计算 CVD累计计算 Delta背离识别 Delta-价格建模 交易信号输出

这张图把整个流程串起来了:从原始数据出发,经过Delta和CVD计算,再到背离识别和关系建模,最后输出交易信号。每一步都有坑,每一步也都有机会。

最后说一句:Delta和CVD不是万能钥匙。我见过有人把Delta当成圣杯,结果亏得裤衩都不剩。记住:任何指标都要结合市场环境。震荡市里Delta背离很准,单边市里反而容易反向。多测试,多复盘,慢慢你就能找到感觉。

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