4. 板块量能异动与追高风险的联动分析

量能异动指标:相对均量放大倍数

追高风险的核心矛盾在于“价格已经涨了多少”与“这波上涨有没有量能支撑”。本节把板块成交量转成一个可比较的放大倍数指标,用它区分放量上涨与缩量上涨,并给出对追高风险评分的修正规则。

定义板块 i 在第 t 日的量能放大倍数:

VR_i(t) = V_i(t) / MA_V_i(t, N)
MA_V_i(t, N) = (1/N) * Σ_{k=1..N} V_i(t-k)     # 不含当日,避免当日量污染基准

关键约定:均量基准取前 N 日(不含当日),N 取 20;这样 VR 只反映“今天相对过去常态放大了多少”,不会因当日巨量把基准抬高而自我稀释。VR > 1 为放量,VR < 1 为缩量。为避免单日噪声,实际判断用 3 日平滑值 VR3 = 近 3 日 VR 的均值。

放量上涨与缩量上涨的风险差异

同样一段涨幅,量能结构不同,追高的性质完全不同:

  • 放量上涨(VR3 ≥ 1.5 且价格创新高):资金真实进场,趋势延续概率较高,但若 VR3 极端放大(≥ 3.0)且伴随涨幅偏离度已高,则往往是情绪高潮与派发区,追高即接盘。
  • 缩量上涨(VR3 ≤ 0.8 且价格创新高):上涨缺乏增量资金,多为存量博弈或惯性冲高,一旦回落速度快,追高风险显著更高。
  • 温和放量(0.8 < VR3 < 1.5):量价配合健康,是追高相对可接受的情形。
板块日成交量 V_i(t) 近 3 日涨幅 / 偏离度 前 20 日均量 MA_V_i(t,20) 不含当日 量能放大倍数 VR = V / MA_V VR3 = 近3日均值 温和放量 0.8 < VR3 < 1.5 量价配合健康 → 修正系数 ×1.0 放量上涨 VR3 ≥ 1.5 1.5≤VR3<3.0 → ×0.85;VR3≥3.0 → ×1.25 缩量上涨 VR3 ≤ 0.8 缺乏增量资金 → 修正系数 ×1.30 追高风险评分修正 Risk_adj = Risk_base × K_vol K_vol 由 VR3 分档给出;Risk_adj 越高,追高优先级越低 缩量创新高与极端放量创新高均被上调风险

修正规则与计算示例

把量能修正做成乘性系数,叠加到已有的追高风险评分上,规则如下表。示例数据为教学假设,用于说明计算过程,非实测结果。

VR3 区间量能形态修正系数 K_vol含义
VR3 ≥ 3.0极端放量创新高1.25情绪高潮,派发风险高
1.5 ≤ VR3 < 3.0健康放量上涨0.85资金进场,风险相对降低
0.8 < VR3 < 1.5温和放量1.00中性,不修正
VR3 ≤ 0.8缩量上涨1.30缺乏增量资金,追高风险高

示例:某板块基础追高风险评分 Risk_base = 60(0–100,越高越危险)。

  • 情形 A:当日量 2.4 亿,前 20 日均量 1.0 亿,VR = 2.4,近 3 日 VR3 = 2.1 → K_vol = 0.85 → Risk_adj = 60 × 0.85 = 51,风险下调。
  • 情形 B:当日量 0.6 亿,前 20 日均量 1.0 亿,VR = 0.6,VR3 = 0.7 → K_vol = 1.30 → Risk_adj = 60 × 1.30 = 78,风险显著上调。
  • 情形 C:VR3 = 3.4 → K_vol = 1.25 → Risk_adj = 60 × 1.25 = 75,极端放量同样触发高风险。

可执行实现

下面函数接收按日期升序的成交量序列与价格序列,输出 VR3 与修正后的风险评分。均量基准严格使用前 N 日,避免未来数据。

def vol_ratio_adjust(volumes, closes, risk_base, N=20, smooth=3):
    """volumes/closes: 按日期升序的列表;返回 (VR3, K_vol, Risk_adj)"""
    if len(volumes) < N + smooth:
        raise ValueError("数据长度不足 N+smooth")
    vr_series = []
    for t in range(N, len(volumes)):
        base = sum(volumes[t - N:t]) / N      # 前 N 日,不含当日
        vr_series.append(volumes[t] / base)
    vr3 = sum(vr_series[-smooth:]) / smooth

    if vr3 >= 3.0:
        k = 1.25
    elif vr3 >= 1.5:
        k = 0.85
    elif vr3 > 0.8:
        k = 1.00
    else:
        k = 1.30
    return round(vr3, 3), k, round(risk_base * k, 2)

# 教学示例
vols = [1.0] * 20 + [2.4, 2.2, 1.9]   # 前20日基准1.0亿,近3日放量
print(vol_ratio_adjust(vols, None, 60))   # 预期 VR3≈2.1, K=0.85, Risk_adj≈51

验证要点:把 vols 换成 [1.0]*20 + [0.6, 0.7, 0.8],应得到 VR3≈0.7、K=1.30、Risk_adj≈78;换成 [1.0]*20 + [3.4, 3.5, 3.3],应得到 K=1.25。三组结果与上表示例一致,即说明分档逻辑正确。

量能修正只调整风险评分的相对排序,不改变基础评分本身的量纲。若某板块同时满足“缩量上涨”与“涨幅偏离度已超阈值”,两项风险会叠加,此时应优先回避而非寻找买点。
均量基准若误用含当日的 N 日均量,极端放量会被自身稀释,VR 被系统性低估,导致高风险板块被误判为温和放量。务必确认基准窗口为 t-N 到 t-1。