A 股到价提醒
这个技能做什么、不做什么
- 做:帮用户把「跌到 11.8 提醒我」「涨停了告诉我一声」这种条件记下来,定时去拉一次公开行情,条件满足就报一句话——哪只票、哪个条件、那一刻多少钱、什么时候。
- 只面向 A 股(沪深北交易所的股票)。
- 不做:不推荐买什么,不预测涨跌,不解读消息面,不判断「便宜了没有」。用户问「现在能买吗」「还会跌吗」,直接说这不在本技能范围内,只把他自己设的条件状态念给他听。
- 提醒不是交易指令。到价只是到价,买不买卖不卖是用户自己的事,技能不加任何倾向性措辞。
- 免费技能,不做任何付费引导。
会访问哪里、会写什么
联网(只读,只有下面 3 个地址)
| 主机 | 属于 | 用途 | 什么时候访问 |
|---|---|---|---|
qt.gtimg.cn |
腾讯财经 | 实时行情(现价、涨跌幅、涨跌停价、成交量) | 每次 check;add 时取一次股票名称 |
push2.eastmoney.com |
东方财富 | 实时行情(备用) | 只在腾讯财经取不到时才访问 |
smartbox.gtimg.cn |
腾讯财经 | 代码搜索:把股票名称换成六位代码 | 只在用户用名称(如「贵州茅台」)添加提醒时访问;直接给六位代码就不访问 |
- 全部是 HTTPS 匿名 GET 请求,证书和主机名校验保持开启;不需要任何账号、密钥或登录。
- 请求里只带股票代码,或用户输入的股票名称;不带任何个人信息、提醒条件或本地数据。
- 脚本内置白名单,只允许访问上表 3 个主机,其他地址一律拒绝。
- 除此之外不访问任何网址,不上传任何东西,不下载、不执行任何外部文件。
- 本技能不取历史 K 线,只用当下的实时行情。
本机写入(只有 1 个文件)
- 路径:默认
~/.a-share-alerts/alerts.sqlite(Windows 下是C:\Users\<用户名>\.a-share-alerts\alerts.sqlite),可以用--db <路径>换成别的位置;目录不存在时会自动创建。 - 内容:两张表。
- 提醒表:每条提醒的股票代码与名称、条件、备注、单次还是可重复、冷却分钟数、状态(启用 / 暂停 / 已触发停用)、触发次数、最近触发时间、创建时间。
- 触发记录表:每一次触发时的现价、涨跌幅、成交量、涨跌停价、行情时间、数据来源、完整提醒文案、触发时间。
- 什么时候写:
add/pause/resume/remove按用户的命令写;check只在条件满足时写触发记录,并按下面「单次提醒触发后自动停用」的规则更新状态。 - 不写其他文件,不改系统设置,不创建定时任务(定时由用户自己在 WorkBuddy 里配)。
什么时候用
- 用户说「XX 到 XX 块提醒我」「跌破多少叫我」「涨停了通知我」「跌 5% 提醒」——用
add建提醒。 - 用户问「我设了哪些提醒」「有没有触发」——用
list/history。 - 用户说「把那条提醒重新打开」——用
resume <编号>。 - 定时任务每 5 分钟跑一次
check,有触发就把脚本打印的内容原样转述给用户,不要改写、不要加评论。
命令
脚本:python {baseDir}/scripts/alert.py <子命令>
库默认在 ~/.a-share-alerts/alerts.sqlite,可用 --db <路径> 指定。
| 命令 | 作用 | 例子 |
|---|---|---|
add <代码或名称> <条件> |
添加提醒 | add 600519 ">=1280" / add 贵州茅台 "chg<=-5" --note "关注回调" |
list [--all] |
列出提醒(默认不含已触发停用的,加 --all 全部列出) |
list --all |
remove <编号> |
删除一条提醒(历史触发记录保留) | remove 3 |
pause <编号> |
暂停 | pause 3 |
resume <编号> |
恢复暂停的提醒,或重新启用已触发停用的单次提醒 | resume 3 |
check [--force] |
拉一次行情、逐条判定、打印并落库 | check |
history [--days 7] [--limit 100] |
回放触发记录 | history --days 30 |
add 的可选参数(添加时由用户选定):
--note "文字":备注,触发时一起打印。--once:单次提醒,触发一次后自动停用(不加任何参数时就是单次)。--repeat --cooldown 30:可重复提醒,两次提醒之间至少间隔 30 分钟,不会自动停用。
添加时脚本会把选定的方式说清楚,例如「提醒方式:单次。条件满足、提醒你一次之后,这条提醒会自动停用……想再用,运行 resume 3 重新启用」。助手替用户添加提醒时,要把这句话转述给用户,让用户知道自己选的是哪种方式;用户想要反复提醒,就加 --repeat。
条件写在引号里,避免 shell 把 > < 当重定向。
条件语法
| 写法 | 含义 |
|---|---|
>=12.5 |
现价大于等于 12.5 |
<=11.8 |
现价小于等于 11.8 |
chg>=5 |
当日涨跌幅 ≥ +5% |
chg<=-5 |
当日涨跌幅 ≤ -5% |
limitup |
现价触及涨停价 |
limitdown |
现价触及跌停价 |
vol>=N |
当日成交量 ≥ N 手(和现价来自同一次行情请求;取不到成交量时该条不判定并说明) |
> 等价于 >=,< 等价于 <=。详细语义见 references/conditions.md。
单次提醒触发后自动停用
- 这是用户添加提醒时就选好的行为:不加参数或加
--once就是单次;加--repeat就是可重复,永远不会自动停用。 - 单次提醒触发时,
check会在提醒文案后面单独列出:
以下提醒已触发并按你的设置停用(添加时选的是单次提醒):
#3 贵州茅台 600519 >=1280.00
想重新启用,运行 resume 编号(例如 resume 3);想以后反复提醒,删掉后加 --repeat 重新添加。
- 停用的提醒不会被删除:
list --all能看到,状态显示「已触发停用」;历史触发记录全部保留。 - 重新启用:
resume <编号>。重新启用后如果条件仍然满足,下次检查会再提醒一次,然后再次自动停用。 - 除此之外,
check不会修改任何提醒的设置。
交易时段
check 只在北京时间 09:30–11:30、13:00–15:00 的交易日执行;周末与内置的 2026 年节假日不检查,只打印「非交易时段,未检查」。要在盘外验证配置,加 --force。
定时任务怎么配
定时任务由用户自己在腾讯 WorkBuddy 的「定时任务」里新建,技能本身不会创建:
- 频率:每 5 分钟(也可以只选工作日的 9 点到 15 点;脚本自己会跳过非交易时段)
- 执行内容:调用本技能并运行
python {baseDir}/scripts/alert.py check
- 技能被调用时的动作:把
check输出里以「【到价】」开头的每一行,以及「以下提醒已触发并按你的设置停用」这一段,原样转述给用户;没有触发就什么都不用说(或者一句「没有触发」)。不要根据触发内容自行补充判断、建议或行情解读。
提醒文案
固定格式,一行一条:
【到价】贵州茅台 600519 现价 1280.00(+1.20%)已满足 >=1280.00,2026-09-14 10:32:15
有备注时在后面接「;备注:xxx」。单次提醒的停用说明另起一段列出(见上)。
出错时
脚本出错统一打印两行,助手原样转述:
出错了:行情取不到,本次没有判定任何提醒,也不会拿旧价格代替:……
下一步:检查一下网络,过几分钟再运行 check;提醒都还在,不受影响。
口吻
- 只报事实:哪只票、哪个条件、现价、涨跌幅、时间。
- 不写「建议」「可以考虑」「注意风险」之类的话,也不写「终于到了」这类情绪词。
- 用户追问怎么办,回答「这个技能只负责到价提醒,买卖决定由你自己做」。
边界
- 提醒不是交易指令,本技能不下单、不接券商。
- 行情来自公开接口(腾讯财经为主、东方财富备用),可能延迟或被限流;取不到行情时脚本会打印原因并且不判定,绝不会拿上一次的旧价当新价。
- 单库最多 200 条未完成提醒,超了先删或先暂停。
- 停牌、退市、代码变更等情况下可能取不到行情,脚本会逐条说明「未判定」。
- 节假日表内置到 2026 年;跨年后如果交易所日历变了,用
--force或更新脚本里的节假日表。