编程

Stock Price Alert

试用

股价异动实时提醒,支持行情接口、邮件和Sonos语音播报

它能做什么

监控股票持仓价格异动,当涨跌幅、成交量或价格突破阈值时,通过邮件和/或 Sonos 语音播报发出实时提醒。

技能文档

Stock Price Alert

监控股票持仓价格异动,当涨跌幅、成交量或价格突破阈值时,通过邮件和/或 Sonos 语音播报发出实时提醒。

使用场景

  • 持仓股票涨跌幅超过设定阈值时需要即时通知
  • 关键价格位突破(支撑/阻力)时需要提醒
  • 需要语音播报以便不在屏幕前时也能获知异动
  • 定时轮询行情并按规则触发告警

前置条件

  • curljq 已安装
  • 行情 API Key(默认支持 Alpha Vantage 免费接口,可替换为其他数据源)
  • 邮件提醒需配置 SMTP 环境变量:SMTP_HOSTSMTP_PORT、SMTP_USERSMTP_PASSALERT_EMAIL_TO`
  • Sonos 播报需本地网络有 Sonos 设备且 sonos CLI 可用

配置

scripts/config.json 中设定持仓和规则:

{
  "watchlist": [
    {
      "symbol": "AAPL",
      "name": "Apple Inc.",
      "alert_pct": 3.0,
      "alert_price_above": null,
      "alert_price_below": 170.0
    }
  ],
  "poll_interval_sec": 300,
  "notify": {
    "email": true,
    "sonos": true,
    "sonos_speaker": "Kitchen"
  },
  "api": {
    "provider": "alphavantage",
    "apikey_env": "ALPHAVANTAGE_API_KEY"
  }
}
字段说明
watchlist[].alert_pct涨跌幅超此值触发(百分比,如 3.0 表示 ±3%)
watchlist[].alert_price_above价格上穿此值触发(null 不启用)
watchlist[].alert_price_below价格下穿此值触发(null 不启用)
poll_interval_sec轮询间隔秒数
notify.email是否启用邮件提醒
notify.sonos是否启用 Sonos 语音播报
notify.sonos_speakerSonos 设备名称

工作流

  1. 读取配置 — 加载 config.json,获取持仓列表和告警规则
  2. 拉取行情 — 调用行情接口获取最新报价和前日收盘价
  3. 计算异动 — 对比涨跌幅、价格突破阈值
  4. 触发提醒 — 命中规则时执行邮件和/或 Sonos 播报
  5. 循环轮询 — 按 poll_interval_sec 间隔持续监控

运行

# 单次检查
bash scripts/stock_alert.sh --once

# 持续轮询
bash scripts/stock_alert.sh

# 指定自定义配置
bash scripts/stock_alert.sh --config /path/to/config.json

输出格式

标准输出打印检查结果,告警信息同时发送到配置的通知渠道:

[2026-05-12 08:00:01] AAPL $182.50 +4.2% ⚠️ 涨幅超阈值(3.0%)
[2026-05-12 08:00:01] → 邮件已发送至 user@example.com
[2026-05-12 08:00:01] → Sonos 播报: Kitchen

邮件提醒

脚本使用 curl 调用 SMTP 发送邮件,需配置环境变量:

变量说明
SMTP_HOSTSMTP 服务器地址
SMTP_PORTSMTP 端口(如 587)
SMTP_USER发件邮箱
SMTP_PASS邮箱密码/应用专用密码
ALERT_EMAIL_TO收件邮箱

Sonos 语音播报

依赖 sonos CLI(参见 sonoscli 技能),播报内容示例:

"AAPL 当前价格 182.50 美元,涨幅 4.2%,超过阈值 3%"

错误处理

错误处理
API 限流 (429)等待后重试,最多 3 次
API Key 缺失打印警告并跳过行情拉取
SMTP 连接失败降级为仅控制台输出
Sonos 设备不可达降级为仅控制台输出,不阻断其他通知

注意事项

  • Alpha Vantage 免费版限 25 次/天,建议 poll_interval_sec 不低于 300
  • 可替换 api.provider 为其他数据源,只需修改 fetch_quote 函数
  • 邮件发送也可替换为 SendGrid/Mailgun 等 HTTP API

相关技能

通过一个命令行工具完成多链加密货币交易、钱包管理与 AI 市场分析。

作者 lowesyang162 次安装109 星标

以 AI 机器人身份加入视频会议,提供语音、虚拟形象与屏幕共享四种模式。

作者 johnpatternai21 次安装8 星标

按用户明确指令,在得到大脑(Get笔记)中保存、搜索并管理笔记与知识库。

作者 iswalle763 次安装66 星标

在本地磁盘以分类纯 Markdown 文件保存需要长期留存的事实,与智能体内置记忆并存。

作者 Iván555 次安装18 星标

从 AdMapix API 拉取广告创意、应用、榜单和收入预估等数据,原样返回结构化 JSON。

作者 fly0pants4.3k 次安装296 星标

诊断生产力系统反复失效的根因,给出最小干预——容量测算、瓶颈定位、可靠的本地记录。

作者 Iván854 次安装69 星标

terrycarter1985 的更多技能

浏览全部技能

为中国小学三到六年级英语书面作业打分,并给出符合年龄的鼓励式反馈。

作者 terrycarter198517 次安装

Analyze stocks and cryptocurrencies using Yahoo Finance data. Supports portfolio management (create, add, remove assets), crypto analysis (Top 20 by market c...

作者 terrycarter198524 次安装

Control whole-house music scenes combining Spotify playback with Airfoil speaker routing. Quick presets for morning, party, chill modes.

作者 terrycarter198519 次安装

Generate reusable, policy-aligned customer service replies for e-commerce aftersales scenarios. Use when support staff need fast, compliant Chinese responses...

作者 terrycarter198518 次安装

Control whole-house music scenes combining Spotify playback with Airfoil speaker routing. Quick presets for morning, party, chill modes.

作者 terrycarter198516 次安装

Comprehensive developer cheatsheets and quick references for Git, Docker, Kubernetes, jq, curl, and common Linux commands. Use when needing quick lookups for...

作者 terrycarter198516 次安装