SuperAPI AI 工具集

price-alert

数据与分析

查看项目

更新于 10-15 10:07

技能介绍

用途

price-alert 是一个事件驱动的价格告警技能,专为"实时信号"场景设计。定时摘要类任务(digest、token-movers 等)在固定时间运行,无法在价格刚创出新高或一小时内剧烈波动时即时告知运营者。本技能填补这一时间窗口:三类价格事件值得当日即时提醒,其余噪音不予打扰。

监控的三类事件

  1. 历史新高(ATH):被跟踪代币创出新的历史最高价。无论涨幅大小,均视为重要时间线事件。
  2. 1小时剧烈波动(±20%):可能是买盘涌入或清算级联,均会改变运营者的后续动作。
  3. 运营者设定的目标跨越:当价格突破 $X(通常是个人目标或与某条推文/发布相关的价位)时提醒。每个目标每个方向仅告警一次。

状态与配置

读取:

  • memory/MEMORY.md 中 "Tracked Token" 段落——被跟踪代币的合约地址与链。若缺失则静默退出。
  • memory/topics/price-alert-state.json——记录最新 ATH、各事件类型的最后告警时间戳、目标跨越历史。首次运行时以默认值创建。

写入:

  • memory/topics/price-alert-state.json——每次运行更新状态。
  • memory/logs/${today}.md——每次运行写入一个日志块,即使成功(OK)也记录。
  • 通过 ./notify 发送通知——仅在有事件触发时。

无需新增密钥。使用无需密钥的 DexScreener 接口;当公开 curl GET 不稳定时回退到 WebFetch。

状态 schema 关键不变量

  • ath.price_usd 只单调递增。若某次运行看到的价格低于已存 ATH,不改动 ATH。
  • last_alerts.* 驱动 4 小时去重窗口,每个事件有独立时钟。
  • targets.${price}.side 在目标首次被观察时若当前价低于目标则为 above(运营者等价格爬升到该位),否则为 below。设定后不再翻转。
  • targets.${price}.hit_at 在跨越发生的那次运行设定;announced_at 在通知发出的那次运行设定。目标告警不会重复触发,实践中二者相等。

使用方式

参数(var):

  • 可选。传入一个或多个目标价位(以逗号分隔的 USD 数字,允许科学计数法),当价格跨越任一目标时触发一次性告警。留空则仅运行 ATH 与剧烈波动两个门。
  • 传入 dry-run 可跳过 notify(状态仍更新)。
  • 传入 set-target:<price>(Telegram 强制回复的格式)可注册一个目标并获得一行确认。

运行步骤:

  1. 解析 var(识别 set-target、dry-run、目标列表)。
  2. 解析被跟踪代币(从 MEMORY.md 读取合约与链)。
  3. 获取当前价格(DexScreener 为主,WebFetch 回退;选取配置链上流动性最深的交易对)。
  4. 评估 ATH 门。
  5. 评估 1 小时剧烈波动门。
  6. 评估目标跨越门。
  7. 合并判定并发送通知。
  8. 原子持久化状态。
  9. 写入日志。

告警模板: 分别为 ATH、SHARP_MOVE、TARGET_HIT 三类,包含价格、前高、24小时/1小时涨跌、图表链接。剧烈波动的方向措辞按符号硬编码(正=买盘,负=卖压),不加主观解读。

set-target 强制回复: 在一次真正的 ATH 告警后(基线之后、非去重重复),且当前没有未命中的运营者目标高于现价时,发送强制回复提示运营者回复一个价位;回复路由回 var=set-target:<price>,注册目标后回一行确认。

退出与状态码

  • PRICE_ALERT_OK:运行完成,无事件触发(不通知)。
  • PRICE_ALERT_ATH:新的严格历史新高(基线之后)(通知)。
  • PRICE_ALERT_SHARP_MOVE:1小时 ±20%,在去重窗口外(通知)。
  • PRICE_ALERT_TARGET_HIT:首次跨越运营者目标(通知)。
  • PRICE_ALERT_DRY_RUN:dry-run 模式(不通知,状态更新)。
  • PRICE_ALERT_NO_TOKEN:MEMORY.md 中未配置被跟踪代币(不通知)。
  • PRICE_ALERT_TOKEN_CHANGED:合约自上次运行变更,状态重置(不通知)。
  • PRICE_ALERT_FETCH_FAIL:curl 与 WebFetch 均失败(不通知)。
  • PRICE_ALERT_BAD_PRICE:API 返回异常或零价格(不通知)。
  • PRICE_ALERT_BAD_VAR:var 非空且非 dry-run,但未产生有效目标(不通知)。
  • PRICE_ALERT_STATE_CORRUPT:写入后 jq 校验失败,已从 .bak 恢复。

适用场景与限制

适用: 需要按当日实时信号跟踪某代币的 ATH、剧烈波动与目标跨越的场景,尤其适合希望避开定时摘要延迟的运营者。

限制与约束:

  • 每个事件每 4 小时窗口最多一次告警,last_alerts.* 为唯一去重依据。
  • 目标告警每方向仅一次,一旦 hit_at 设定便不再重触发,即便价格回落再穿越也不重发;运营者需新增目标以获得持续信号。
  • 无基线告警:全新状态文件或代币变更后的首次运行不得发送 ATH 通知,所存价格仅为基线。
  • 不做主观解读,剧烈波动方向措辞按符号硬编码。
  • 仅选用流动性最深的交易对作为规范价格,不混合池均价。
  • 状态写入为原子操作并经 jq 校验,损坏时从 .bak 恢复。
  • 仅追加当日日志,不修改历史日志。
  • 目标为绝对 USD 而非百分比。
  • 同一分钟重跑具幂等性,相同价格输入产生相同状态与零新通知。