# BTC 短线看板 · 告警规则全量说明 > 本文档用于把当前系统的**全部告警规则**及其**触发条件、详细原因、数据来源、解除机制**一次性梳理清楚, > 方便直接提取喂给其它专家 / AI 做分析、优化或二次开发。 > 配套文档:程序路由地图见同目录 `ROUTE_MAP.md`。 --- ## 一、告警引擎运行机制(速览) - 引擎由 Python3 子包 `alert_engine/` 独立运行,通过 JSON / 数据库与 Python2 主服务解耦。 - 每条规则是一个**状态机实例** `IDLE → ARMED → FIRING → COOLED → RESOLVED`,以 `rule_id` 为键、每规则单实例。 - **指纹(fingerprint)**:`md5(rule_id | symbol | exchange | direction | level_key | wall_id | regime_bucket)` 的前 16 位, 同一规则同生命周期内复用同一 `dkey = ae.fire:`;解除时原地把 `kind` 改为 `ae.ok.`。 - **解除机制**:所有规则均启用 `ResolvePolicy(auto_resolve=True)`,即条件持续不满足后自动解除。 - `keep_firing_for_ms = 120000`(2 分钟):条件转 False 后先进入 `COOLED`,冷却满 2 分钟才 `RESOLVED`(真正解除并落库 `ae.ok.*`)。 - 部分规则带冷却 `cooldown_ms`:解除后同指纹在一定时间内不再重复触发。 - **严重级别(severity)**:`critical`(严重) > `high`(高风险) > `medium`(中等) > `low`(较低) > `info`(提示)。 - **方向(direction)**:`long`(偏多) / `short`(偏空) / `neutral`(中性) / `both`(双向)。 - **触发次数(min_hits)**:条件需连续满足 N 次才真正 FIRING,用于过滤单点噪声。 - **告警分级**:规则分「结构确认」(推送 + 置顶)与「脉冲事件」(仅日志 + 网页声音,不推送、不置顶)两类;脉冲类在下方汇总表中标注 `[脉冲]`。 --- ## 二、汇总表(24 条规则) | # | rule_id | 中文名 | 级别 | 方向 | 分类 | 数据周期 | 冷却(cooldown) | min_hits | 状态 | |---|---------|--------|------|------|------|----------|----------------|----------|------| | 1 | div_bullish | 价格-资金流多头背离 | high | long | 背离 | 15m | 900s(15m) | 2 | 启用 | | 2 | div_bearish | 价格-资金流空头背离 | high | short | 背离 | 15m | 900s(15m) | 2 | 启用 | | 3 | oi_surge | 持仓量激增 | high | neutral | 持仓 | 15m+1m | 600s(10m) | 2 | 启用 | | 4 | oi_dark_build | 暗建仓 | high | neutral | 持仓 | 15m | 1200s(20m) | 2 | 启用 | | 5 | oi_short_crowd_sweep | 空头拥挤·上扫预备 | high | long | 持仓 | 15m+5m | 900s(15m) | 2 | 启用 | | 6 | oi_long_crowd_sweep | 多头拥挤·下扫预备 | high | short | 持仓 | 15m+5m | 900s(15m) | 2 | 启用 | | 7 | oi_deleveraging | 去杠杆·多头平仓 | medium | short | 持仓 | 15m+5m | 900s(15m) | 2 | 启用 | | 8 | oi_reversal_candidate | 空头回补·反转候选 | medium | long | 持仓 | 15m+5m | 900s(15m) | 2 | 启用 | | 9 | flow_ratio_extreme | 主动成交比极端 `[脉冲]` | medium | neutral | 资金流 | 1m | 600s(10m) | 2 | 启用 | | 10 | flow_price_divergence | 量价背离 | high | short | 资金流 | 5m | 900s(15m) | 2 | 启用 | | 11 | flow_price_divergence_bullish | 量价背离·多头 | high | long | 资金流 | 5m | 900s(15m) | 2 | 启用 | | 12 | flow_outflow | 主力资金流出 | high | short | 资金流 | 15m | 900s(15m) | 2 | 启用 | | 13 | flow_inflow | 主力资金流入 | high | long | 资金流 | 15m | 900s(15m) | 2 | 启用 | | 14 | struct_lower_highs | 下降结构 | medium | short | 结构 | 15m | 900s(15m) | 1 | 启用 | | 15 | struct_higher_lows | 上升结构 | medium | long | 结构 | 15m | 900s(15m) | 1 | 启用 | | 16 | break_up_persist | 连续上攻 `[脉冲]` | low | long | 结构 | 5m | 600s(10m) | 1 | 禁用 | | 17 | break_down_persist | 主动抛压·未衰竭 `[脉冲]` | low | short | 结构 | 5m | 600s(10m) | 1 | 禁用 | | 18 | cr1_crowded_long | 多头拥挤 | critical | short | 复合 | 1h | 14400s(4h) | 2 | 启用 | | 19 | cr1b_short_crowded | 空头拥挤 | critical | long | 复合 | 1h | 14400s(4h) | 2 | 启用 | | 20 | cr2_distribution | 高位派发 | medium | short | 复合 | 1h | 14400s(4h) | 1 | 启用 | | 21 | cr1_low_accumulation | 低位吸筹 | high | long | 复合 | 1h | 14400s(4h) | 2 | 启用 | | 22 | vol_compression_break | 波动率突破 `[脉冲]` | medium | neutral | 结构 | 5m | 600s(10m) | 1 | 启用 | | 23 | wall_spoof | 盘口墙诱骗 `[脉冲]` | medium | neutral | 盘口 | 5m | 600s(10m) | 2 | 启用 | | 24 | liq_cascade | 强平级联 | critical | neutral | 清算 | 5m | 600s(10m) | 2 | 启用 | > 所有规则 `keep_firing_for_ms = 120000`(2 分钟),`auto_resolve = True`(条件不满足后自动解除)。 > 因此理论上**每条触发的告警都有对应的解除记录**;若出现"长期未解除",通常是历史数据残留或指纹复用泄漏,而非规则本身缺失解除逻辑。 --- ## 三、逐条详情 ### 1. div_bullish — 价格-资金流多头背离 - **级别**:high(高风险) **方向**:long(偏多) **分类**:背离(divergence) - **数据周期**:15 分钟 - **用到的数据**:价格(price)、累计 CVD(cvd) - `price.close.15m`(15 分钟收盘价)、`cvd.net.cum@15m`(15 分钟累计 CVD)、`cvd.z.15m`(CVD Z 值) - **触发条件(DSL)**: `divergence(price.close.15m, cvd.net.cum@15m, bullish) AND price.ret_log.15m < -0.2 AND cvd.z.15m > 0.5` - **含义**:15 分钟价格创新低但资金未跟着跑,可能反转向上。 - **详细原因**:15 分钟周期内价格创出近期新低(对数跌幅 < -0.2),但累计 CVD 未同步走低、反而为正(Z 值 > 0.5),即下跌过程中主力资金没有跟随抛售,出现价格与资金流的多头背离,通常预示短线可能见底向上反转。 - **冷却**:900000ms(15 分钟) **min_hits**:2 **同向窗口**:1800000ms(30 分钟) ### 2. div_bearish — 价格-资金流空头背离 - **级别**:high(高风险) **方向**:short(偏空) **分类**:背离(divergence) - **数据周期**:15 分钟 - **用到的数据**:价格(price)、累计 CVD(cvd) - `price.close.15m`、`cvd.net.cum@15m`、`cvd.z.15m` - **触发条件(DSL)**: `divergence(price.close.15m, cvd.net.cum@15m, bearish) AND price.ret_log.15m > 0.2 AND cvd.z.15m < -0.5` - **含义**:15 分钟价格创新高但资金在流出,可能反转向下。 - **详细原因**:15 分钟周期内价格创出近期新高(对数涨幅 > 0.2),但累计 CVD 未同步走强、反而为负(Z 值 < -0.5),即上涨过程中主力资金在净流出,出现价格与资金流的空头背离,警示上涨缺乏资金支撑、可能冲高回落。 - **冷却**:900000ms(15 分钟) **min_hits**:2 **同向窗口**:1800000ms(30 分钟) ### 3. oi_surge — 持仓量激增 - **级别**:high(高风险) **方向**:neutral(中性) **分类**:持仓(oi) - **数据周期**:15 分钟 + 1 分钟 - **用到的数据**:持仓量(oi) - `oi.chg_z@15m`(15 分钟持仓量变化 Z 值)、`oi.derivative@1m`(1 分钟持仓增速) - **触发条件(DSL)**:`oi.chg_z@15m > 2.5 AND oi.derivative@1m > 1.5` - **含义**:持仓量快速放大且加速上升,多空分歧加剧、波动将放大。 - **详细原因**:持仓量在 15 分钟尺度异常放大(Z 值 > 2.5),且 1 分钟尺度仍在加速上升(增速 > 1.5),说明多空双方都在大幅加仓、分歧急剧加大,后续波动大概率放大,方向未定但风险显著升高。 - **冷却**:600000ms(10 分钟) **min_hits**:2 ### 4. oi_dark_build — 暗建仓 - **级别**:high(高风险) **方向**:neutral(中性) **分类**:持仓(oi) - **数据周期**:15 分钟 - **用到的数据**:价格(price)、持仓量(oi) - `price.ret_log.15m`、`oi.chg_z@15m` - **触发条件(DSL)**:`abs(price.ret_log.15m) < 0.1 AND oi.chg_z@15m > 2.5` - **含义**:价格几乎不动但持仓量大幅增加,有资金在悄悄建仓。 - **详细原因**:价格 15 分钟几乎不动(对数涨跌绝对值 < 0.1),但持仓量却大幅增加(Z 值 > 2.5),即价格横盘、仓位剧增,暗示有大资金在悄悄建仓或对倒布局,容易随后走出单边行情。 - **冷却**:1200000ms(20 分钟) **min_hits**:2 ### 5. oi_short_crowd_sweep — 空头拥挤·上扫预备 - **级别**:high(高风险) **方向**:long(偏多) **分类**:持仓(oi) - **数据周期**:15 分钟 + 5 分钟 - **用到的数据**:价格(price)、持仓量(oi) - `price.close.15m`、`oi.abs.contract@15m`(15 分钟持仓量)、`price.ret.5m` - **触发条件(DSL)**: `oi_price_regime(price.close.15m, oi.abs.contract@15m) == short_squeeze_fuel AND price.ret.5m < 0` - **含义**:空头在下跌中持续加仓、持仓放大,酝酿向上扫盘(轧空)。 - **详细原因**:价格下跌但持仓量同步放大(OI 上升),说明空头在跌势中不断加仓、拥挤度上升;一旦价格止跌,密集的空头浮盈盘会成为上方燃料,容易引发向上扫盘(轧空)。当前 5 分钟仍在下跌,属于上扫前的蓄势阶段,短期偏多对待,不宜追空。 - **冷却**:900000ms(15 分钟) **min_hits**:2 ### 6. oi_long_crowd_sweep — 多头拥挤·下扫预备 - **级别**:high(高风险) **方向**:short(偏空) **分类**:持仓(oi) - **数据周期**:15 分钟 + 5 分钟 - **用到的数据**:价格(price)、持仓量(oi) - `price.close.15m`、`oi.abs.contract@15m`、`price.ret.5m` - **触发条件(DSL)**: `oi_price_regime(price.close.15m, oi.abs.contract@15m) == accumulation AND price.ret.5m > 0` - **含义**:多头在上涨中持续加仓、持仓放大,酝酿向下扫盘(多头踩踏)。 - **详细原因**:价格上涨且持仓量同步放大(OI 上升),说明多头在涨势中不断加仓、拥挤度上升;一旦价格失速,密集的多头浮盈盘会成为下方燃料,容易引发向下扫盘(多头踩踏)。当前 5 分钟仍在上涨,属于下扫前的蓄势阶段,短期偏空对待,不宜追多。 - **冷却**:900000ms(15 分钟) **min_hits**:2 ### 7. oi_deleveraging — 去杠杆·多头平仓 - **级别**:medium(中等) **方向**:short(偏空) **分类**:持仓(oi) - **数据周期**:15 分钟 + 5 分钟 - **用到的数据**:价格(price)、持仓量(oi) - `price.close.15m`、`oi.abs.contract@15m`、`price.ret.5m` - **触发条件(DSL)**: `oi_price_regime(price.close.15m, oi.abs.contract@15m) == deleveraging AND price.ret.5m < 0` - **含义**:价格下跌且持仓量下降,多头在离场、下跌动能或阶段性衰竭。 - **详细原因**:价格下跌同时持仓量下降(OI 下降),属于「价跌+OI跌」的去杠杆象限:多头正在平仓离场而非新开空头,说明下跌由多头减仓驱动而非空头主动进攻。这类下跌的持续性通常弱于空头开仓,若再伴随抛压衰竭,短线可能接近阶段性低点。 - **冷却**:900000ms(15 分钟) **min_hits**:2 ### 8. oi_reversal_candidate — 空头回补·反转候选 - **级别**:medium(中等) **方向**:long(偏多) **分类**:持仓(oi) - **数据周期**:15 分钟 + 5 分钟 - **用到的数据**:价格(price)、持仓量(oi) - `price.close.15m`、`oi.abs.contract@15m`、`price.ret.5m` - **触发条件(DSL)**: `oi_price_regime(price.close.15m, oi.abs.contract@15m) == reversal_candidate AND price.ret.5m > 0` - **含义**:价格上涨但持仓量下降,空头在回补、可能反转向上。 - **详细原因**:价格上涨但持仓量下降(OI 下降),属于「价涨+OI跌」的空头回补象限:上涨由空头被迫平仓推动而非新多开仓。这类上涨若伴随资金流入确认,容易演变为逼空式反转,是短线底部反转的候选信号。 - **冷却**:900000ms(15 分钟) **min_hits**:2 ### 9. flow_ratio_extreme — 主动成交比极端 `[脉冲]` - **级别**:medium(中等) **方向**:neutral(中性) **分类**:资金流(flow) - **数据周期**:1 分钟 - **用到的数据**:主动成交(flow) - `flow.taker_ratio@1m`(1 分钟主动买卖比) - **触发条件(DSL)**:`abs(flow.taker_ratio@1m - 0.5) > 0.2` - **含义**:主动买卖出现一边倒,短线情绪极度失衡。 - **详细原因**:1 分钟主动买卖严重失衡(主动买卖比偏离 0.5 超过 0.2),说明短线情绪一边倒、资金在单边主动进攻,往往是情绪极端点,短线可能急拉或急砸后出现修复。 - **冷却**:600000ms(10 分钟) **min_hits**:2 ### 10. flow_price_divergence — 量价背离 - **级别**:high(高风险) **方向**:short(偏空) **分类**:资金流(flow) - **数据周期**:5 分钟 - **用到的数据**:价格(price)、主动成交(flow) - `price.ret_log.5m`、`flow.delta.qty@5m` - **触发条件(DSL)**:`price.ret_log.5m > 0 AND flow.delta.qty@5m < 0` - **含义**:价格在涨但主力在净卖出,量价背离。 - **详细原因**:5 分钟价格在上涨,但主动净买入量为负(主力在净卖出),价格涨而资金撤、量价背离,警惕拉高出货、冲高回落。 - **冷却**:900000ms(15 分钟) **min_hits**:2 ### 11. flow_price_divergence_bullish — 量价背离·多头 - **级别**:high(高风险) **方向**:long(偏多) **分类**:资金流(flow) - **数据周期**:5 分钟 - **用到的数据**:价格(price)、主动成交(flow) - `price.ret_log.5m`、`flow.delta.qty@5m` - **触发条件(DSL)**:`price.ret_log.5m < 0 AND flow.delta.qty@5m > 0` - **含义**:价格在跌但主力在净买入,量价背离。 - **详细原因**:5 分钟价格在下跌,但主动净买入量为正(主力在净买入),价格跌而资金进、量价背离,警惕诱空砸盘、可能见底反抽向上。 - **冷却**:900000ms(15 分钟) **min_hits**:2 ### 12. flow_outflow — 主力资金流出 - **级别**:high(高风险) **方向**:short(偏空) **分类**:资金流(flow) - **数据周期**:15 分钟 - **用到的数据**:累计 CVD(cvd)、价格(price) - `cvd.net.cum@15m`(4 周期变化率内)、`price.ret.15m` - **触发条件(DSL)**:`rate_of_change(cvd.net.cum@15m, 4) < 0 AND price.ret.15m < -0.2` - **含义**:累计资金流持续下降且价格下跌,主力在撤退。 - **详细原因**:15 分钟累计 CVD 的 4 周期变化率为负(资金持续流出)且价格明显下跌(跌幅 < -0.2),主力资金在撤退同时价格走弱,确认短线空头占优、下跌动能未止。 - **冷却**:900000ms(15 分钟) **min_hits**:2 ### 13. flow_inflow — 主力资金流入 - **级别**:high(高风险) **方向**:long(偏多) **分类**:资金流(flow) - **数据周期**:15 分钟 - **用到的数据**:累计 CVD(cvd)、价格(price) - `cvd.net.cum@15m`(4 周期变化率内)、`price.ret.15m` - **触发条件(DSL)**:`rate_of_change(cvd.net.cum@15m, 4) > 0 AND price.ret.15m > 0.2` - **含义**:累计资金流持续上升且价格上涨,主力在进场。 - **详细原因**:15 分钟累计 CVD 的 4 周期变化率为正(资金持续流入)且价格明显上涨(涨幅 > 0.2),主力资金在进场同时价格走强,确认短线多头占优、上涨动能延续。 - **冷却**:900000ms(15 分钟) **min_hits**:2 ### 14. struct_lower_highs — 下降结构 - **级别**:medium(中等) **方向**:short(偏空) **分类**:结构(structure) - **数据周期**:15 分钟 - **用到的数据**:价格(price) - `price.high.15m`(15 分钟最高价)、`price.ret.15m` - **触发条件(DSL)**:`lower_highs(price.high.15m, 2) AND price.ret.15m < 0` - **含义**:高点越来越低,短线处于下跌结构。 - **详细原因**:15 分钟高点连续走低(出现至少 2 次更低的波峰)且当前 15 分钟下跌,形成下降结构,短线趋势偏空,反弹可能难以越过前高。 - **冷却**:900000ms(15 分钟) **min_hits**:1 ### 15. struct_higher_lows — 上升结构 - **级别**:medium(中等) **方向**:long(偏多) **分类**:结构(structure) - **数据周期**:15 分钟 - **用到的数据**:价格(price) - `price.low.15m`(15 分钟最低价)、`price.ret.15m` - **触发条件(DSL)**:`higher_lows(price.low.15m, 2) AND price.ret.15m > 0` - **含义**:低点越来越高,短线处于上升结构。 - **详细原因**:15 分钟低点连续抬高(出现至少 2 次更高的波谷)且当前 15 分钟上涨,形成上升结构,短线趋势偏多,回踩可能难以跌破前低。 - **冷却**:900000ms(15 分钟) **min_hits**:1 ### 16. break_up_persist — 连续上攻 `[脉冲]` - **级别**:low(较低) **方向**:long(偏多) **分类**:结构(structure) - **数据周期**:5 分钟 - **用到的数据**:价格(price) — `price.ret@5m` - **触发条件(DSL)**:`persist(price.ret@5m > 0, 3)` - **含义**:连续 3 根上涨 K 线,短线动能向上。 - **详细原因**:连续 3 根 5 分钟 K 线收涨,短线动能向上,属于较弱的顺势提示,适合作为趋势延续的佐证而非单独交易依据。 - **冷却**:600000ms(10 分钟) **min_hits**:1 **状态**:默认禁用(脉冲事件) ### 17. break_down_persist — 主动抛压·未衰竭 `[脉冲]` - **级别**:low(较低) **方向**:short(偏空) **分类**:结构(structure) - **数据周期**:5 分钟 - **用到的数据**:价格(price) — `price.ret@5m` - **触发条件(DSL)**:`persist(price.ret@5m < 0, 3)` - **含义**:连续下跌、主动抛压未衰竭,短线空头动能延续。 - **详细原因**:连续 3 根 5 分钟 K 线收跌,且为主动卖出主导的下跌,说明抛压仍在持续、尚未衰竭,短线空头动能未见回头信号,偏空延续;作为趋势延续的佐证,不建议在抛压未止时抄底。 - **冷却**:600000ms(10 分钟) **min_hits**:1 **状态**:默认禁用(脉冲事件) ### 18. cr1_crowded_long — 多头拥挤 - **级别**:critical(严重) **方向**:short(偏空) **分类**:复合(composite) - **数据周期**:1 小时 - **用到的数据**:资金费率(funding)、多空比(lsratio)、持仓量(oi) - `funding.rate.z@1h`(资金费率 Z 值)、`lsratio.z@1h`(多空比 Z 值)、`oi.chg_z@1h` - **触发条件(DSL)**:`funding.rate.z@1h > 2.0 AND lsratio.z@1h > 1.5 AND oi.chg_z@1h > 1.5` - **含义**:费率、多空比、持仓量同向极端,多头太拥挤容易踩踏。 - **详细原因**:1 小时尺度上,资金费率显著为正(Z > 2.0)、多空比极端偏多(Z > 1.5)、持仓量同步大增(Z > 1.5),三道指标同向显示多头极度拥挤,一旦获利盘踩踏极易引发快速回调或插针,风险最高。 - **冷却**:14400000ms(4 小时) **min_hits**:2 **同向窗口**:28800000ms(8 小时) ### 19. cr1b_short_crowded — 空头拥挤 - **级别**:critical(严重) **方向**:long(偏多) **分类**:复合(composite) - **数据周期**:1 小时 - **用到的数据**:资金费率(funding)、多空比(lsratio)、持仓量(oi) - `funding.rate.z@1h`、`lsratio.z@1h`、`oi.chg_z@1h` - **触发条件(DSL)**:`funding.rate.z@1h < -2.0 AND lsratio.z@1h < -1.5 AND oi.chg_z@1h > 1.5` - **含义**:费率、多空比、持仓量同向极端,空头太拥挤容易逼空。 - **详细原因**:1 小时尺度上,资金费率显著为负(Z < -2.0)、多空比极端偏空(Z < -1.5)、持仓量同步大增(Z > 1.5),三道指标同向显示空头极度拥挤,一旦空头被迫回补极易引发快速逼空拉升,风险最高。 - **冷却**:14400000ms(4 小时) **min_hits**:2 **同向窗口**:28800000ms(8 小时) ### 20. cr2_distribution — 高位派发 - **级别**:medium(中等) **方向**:short(偏空) **分类**:复合(composite) - **数据周期**:1 小时 - **用到的数据**:资金费率(funding)、持仓量(oi)、价格(price) - `funding.rate.z@1h`、`oi.chg_z@1h`、`price.ret_log.1h` - **触发条件(DSL)**:`funding.rate.z@1h > 2.0 AND oi.chg_z@1h < 0.5 AND price.ret_log.1h > 0` - **含义**:费率极高、持仓回落、价格却还在涨,疑似高位派发。 - **详细原因**:资金费率仍极高(Z > 2.0)但持仓量增速已明显放缓(Z < 0.5),价格却还在上涨,符合「高位派发」特征:散户在高费率吸引下接盘、主力在高位减仓,警惕见顶回落。 - **冷却**:14400000ms(4 小时) **min_hits**:1 ### 21. cr1_low_accumulation — 低位吸筹 - **级别**:high(高风险) **方向**:long(偏多) **分类**:复合(composite) - **数据周期**:1 小时 - **用到的数据**:资金费率(funding)、持仓量(oi)、价格(price) - `funding.rate.z@1h`、`oi.chg_z@1h`、`price.ret_log.1h` - **触发条件(DSL)**:`funding.rate.z@1h < -1.5 AND oi.chg_z@1h > 1.5 AND abs(price.ret_log.1h) < 0.15` - **含义**:费率持续为负、持仓放大、价格几乎不动,疑似低位吸筹。 - **详细原因**:资金费率显著为负(Z < -1.5)说明空头主导情绪,但持仓量却在放大(Z > 1.5)且价格几乎不动(对数涨跌绝对值 < 0.15),符合「低位吸筹」特征:主力在负费率环境下承接多头筹码、压制波动悄悄建仓,随后容易向上突破。 - **冷却**:14400000ms(4 小时) **min_hits**:2 ### 22. vol_compression_break — 波动率突破 `[脉冲]` - **级别**:medium(中等) **方向**:neutral(中性) **分类**:结构(structure) - **数据周期**:5 分钟 - **用到的数据**:波动率(vol)、价格(price) - `vol.compression@5m`(波动压缩度)、`price.range@5m`(振幅) - **触发条件(DSL)**:`vol.compression@5m < 0.5 AND price.range@5m > 1.5` - **含义**:波动率被压缩到低位后价格放大突破。 - **详细原因**:波动率被压缩到低位(压缩度 < 0.5)后,价格振幅突然放大(振幅 > 1.5),属于典型「压缩-突破」形态,波动回归往往引发快速单边行情,但方向未定。 - **冷却**:600000ms(10 分钟) **min_hits**:1 ### 23. wall_spoof — 盘口墙诱骗 `[脉冲]` - **级别**:medium(中等) **方向**:neutral(中性) **分类**:盘口(wall) - **数据周期**:5 分钟 - **用到的数据**:盘口墙(wall)、价格(price) - `wall.truth_score@5m`(挂单墙真实度)、`price.ret.5m` - **触发条件(DSL)**:`wall.truth_score@5m < 0.5 AND price.ret.5m > 0` - **含义**:挂单墙真实性很低却推着价格上行,疑似诱多。 - **详细原因**:盘口大挂单的真实性评分较低(< 0.5,疑似假墙/诱单),同时价格被推升,存在诱多嫌疑,需警惕主力撤单后价格回落。 - **冷却**:600000ms(10 分钟) **min_hits**:2 ### 24. liq_cascade — 强平级联 - **级别**:critical(严重) **方向**:neutral(中性) **分类**:清算(liquidation) - **数据周期**:5 分钟 - **用到的数据**:强平(liq) — `liq.cascade_score@5m`(强平级联评分) - **触发条件(DSL)**:`liq.cascade_score@5m > 2.0` - **含义**:强平连锁评分过高,可能出现连环爆仓。 - **详细原因**:强平级联评分过高(> 2.0),预示可能正在或即将发生连环强平,容易形成踩踏式急跌或急涨,风险极高。 - **冷却**:600000ms(10 分钟) **min_hits**:2 --- ## 四、解除机制与"未解除告警"核对要点 - 每条规则都走统一的 `ResolvePolicy(auto_resolve=True)`,即**条件持续不满足 → COOLED →(满 2 分钟)→ RESOLVED → 落库 `ae.ok.`**。 - 告警记录 `btc_notify_events` 里,`dkey = ae.fire:` 表示触发中,解除时同一行 `kind` 原地改为 `ae.ok.`。 - 若出现"看起来未解除"的记录,需区分两类: 1. **真实未解除**:条件仍满足、或正处于 COOLED 冷却窗口内的活跃生命周期。 2. **假未解除 / 残留**:历史测试数据、或由于指纹确定性复用导致的"旧行未被关闭"泄漏。 - 核对方法:把 `btc_notify_events` 中 `kind` 含 `ae.fire` 而未转 `ae.ok` 的行,与 `btc_alert_events`(结构化审计表)及 `runtime_state.json`(引擎当前状态)对照,确认其 `fingerprint` 是否仍处于 `FIRING/COOLED` 活跃状态;不在活跃态的即为残留,可清理。 - 引擎侧已修复为:解除时**逐条关闭所有未解除行**(而非只更新最新一行),避免指纹复用导致的泄漏残留。 --- ## 五、字段速查字典 - **severity**:critical=严重, high=高风险, medium=中等, low=较低, info=提示 - **direction**:long=偏多, short=偏空, neutral=中性, both=双向 - **category**:divergence=背离, flow=资金流, oi=持仓, wall=盘口, structure=结构, liquidation=清算, composite=复合 - **cooldown_ms → 中文时长**:600000=10分钟, 900000=15分钟, 1200000=20分钟, 14400000=4小时, 28800000=8小时 - **keep_firing_for_ms**:120000=2分钟(所有规则一致) - **`[脉冲]` 标注**:脉冲事件类规则(仅日志 + 网页声音,不推送、不置顶)