2. 尾段回落幅度量化:从最高点到收盘价的回撤计算

量化对象与计算口径

尾段回落幅度衡量的是“尾段最高点之后,价格最终收在哪里”。本节以单个竞价交易日为对象,取尾段窗口(示例取 14:30 之后)内的最高成交价 H_tail 与当日收盘价 C,计算回撤百分比:

Drawdown% = (H_tail − C) / H_tail × 100%

同时并列输出两个辅助指标,避免单看回撤幅度产生误判:

  • 当日振幅:Amplitude% = (H_day − L_day) / PrevClose × 100%,用于判断回撤在当日整体波动中的相对分量。
  • 尾段成交量占比:VolShare% = V_tail / V_day × 100%,用于判断回落是否有量能配合。
口径约定:H_tail 取尾段窗口内最高价;若尾段最高价出现在窗口起点之前,则回撤应改用全日最高价,并在输出中标注来源字段,避免口径漂移。
尾段回落幅度量化:三个并列指标的计算来源 价格 H_day 全日最高 H_tail 尾段最高 C 收盘价 L_day 全日最低 回撤 = H_tail − C 振幅 = H_day − L_day 09:30 14:30 尾段起点 15:00 回撤幅度 (H_tail − C) / H_tail 示例:3.85% 当日振幅 (H_day − L_day) / PrevClose 示例:6.20% 尾段量能占比 V_tail / V_day 示例:18.4% 三指标并列 → 单日回落强度描述

计算过程与示例数据

以下为教学示例数据(非实测),用于演示计算路径。假设某标的上一交易日收盘价 PrevClose = 20.00 元:

字段含义示例值
H_day全日最高价21.10
L_day全日最低价19.86
H_tail14:30 后最高价20.80
C收盘价20.00
V_tail14:30 后成交量1.84 万手
V_day全日成交量10.00 万手

代入公式:

  • 回撤幅度 = (20.80 − 20.00) / 20.80 × 100% ≈ 3.85%
  • 当日振幅 = (21.10 − 19.86) / 20.00 × 100% = 6.20%
  • 尾段量能占比 = 1.84 / 10.00 × 100% = 18.4%

解读:回撤 3.85% 约占当日振幅 6.20% 的 62%,说明尾段回落吃掉了当日大部分波动区间;同时尾段量能占比 18.4% 高于尾段时长占比(30 分钟 / 240 分钟 = 12.5%),属于放量回落形态,回落强度描述应偏强。

可执行计算脚本

将上述口径固化为函数,输入单日行情字段即可输出三项指标与强度标签:

def tail_drawdown(h_tail, close, h_day, l_day, prev_close, v_tail, v_day):
    if h_tail <= 0 or prev_close <= 0 or v_day <= 0:
        raise ValueError("价格与成交量必须为正数")
    if not (l_day <= close <= h_day):
        raise ValueError("收盘价应落在当日最低与最高之间")

    drawdown = (h_tail - close) / h_tail * 100
    amplitude = (h_day - l_day) / prev_close * 100
    vol_share = v_tail / v_day * 100

    # 回撤占振幅比重:衡量回落对当日波动的吞噬程度
    ratio = drawdown / amplitude * 100 if amplitude > 0 else 0.0

    if drawdown < 1.0:
        level = "弱回落"
    elif drawdown < 3.0:
        level = "中等回落"
    else:
        level = "强回落"

    return {
        "drawdown_pct": round(drawdown, 2),
        "amplitude_pct": round(amplitude, 2),
        "vol_share_pct": round(vol_share, 2),
        "drawdown_to_amplitude_pct": round(ratio, 2),
        "level": level,
    }

print(tail_drawdown(20.80, 20.00, 21.10, 19.86, 20.00, 1.84, 10.00))
# {'drawdown_pct': 3.85, 'amplitude_pct': 6.2, 'vol_share_pct': 18.4,
#  'drawdown_to_amplitude_pct': 62.1, 'level': '强回落'}

脚本中的校验分支用于拦截脏数据:收盘价越界、成交量或价格非正时直接报错,避免把异常值算成“极端回落”。阈值 1% / 3% 为示例分档,实际使用时应按标的波动特征校准。

结果判读与验证

  • 回撤幅度回答“尾段跌了多少”,是强度主指标。
  • 回撤/振幅比回答“这次回落是否吃掉了当日主要波动”,比值越高说明回落越具主导性。
  • 尾段量能占比回答“回落是否有量”,与尾段时长占比对比可区分放量与缩量。
验证要点:手工复算时先确认 H_tail 是否确实落在尾段窗口内;若尾段最高价等于全日最高价,回撤幅度与“全日最高到收盘”的回撤一致,需在输出中注明,防止与全日回撤指标混用。

通过条件:三项指标均可由给定字段直接推出且与脚本输出一致;强度标签与回撤/振幅比、量能占比的联合判断方向不矛盾,即视为单日回落强度描述成立。