Community研究与数据分析github.com

wbdou2006/ClaudeSkills — 股票分析技能

分析股票或ETF距其52周高点的距离、下跌原因及多空观点,生成一致的HTML报告,若用户提供邮箱则准备可发送的邮件。未指定代码时使用默认观察列表。

ClaudeSkills — 股票分析技能 是什么?

该技能是一个直接集成到Claude Code等AI助手的工作流,用于对股票和ETF进行深入的“从52周高点回撤”分析。它自动生成一份结构一致的HTML报告,包含每只代码的概览表格、价格图表、收益情况、下跌驱动因素、看涨/看跌观点,以及持仓信息。该工作流通过Python脚本处理所有计算和渲染,用户(或AI)负责研究,重点是在运行Python脚本之前确保数据准确和来源可靠。它内置了一个可编辑的默认观察列表,包含主要科技ETF和指数,并具有强大的验证步骤,可在构建最终输出前检测缺失数据、不匹配的数字或未引用的来源。该技能还支持安全地准备一封可发送的电子邮件(.eml格式),包含报告附件,但绝不自行动态发送邮件——这依赖于用户通过其本地电子邮件客户端或提供的Python脚本,使用自己的应用密码进行发送。它强调严格遵守规则:所有数据必须来自有来源和有时间戳的工具调用;在脚本外绝不进行数学运算;绝不给出买入或卖出建议;绝不调用任何交易或下单工具。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/wbdou2006/ClaudeSkills/tree/HEAD/stock-analysis

Installed? Explore more 研究与数据分析 skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

股票分析

该技能每次生成相同的报告:

  • 一个概览表格
  • 每个代码一个面板,包含:
    • 事实数据
    • 周线图(相对于52周高点)
    • 收益情况
    • 下跌驱动因素
    • 看涨/看跌观点
    • 持仓、数据缺口及计算日志

脚本负责所有算术和HTML。您的工作是研究和检查。不要重新设计页面或手写HTML。

SKILL_DIR 是包含此文件的文件夹。通过在此SKILL.md路径上运行 dirname 找到它。

文件

路径用途
scripts/compute_drawdown.py每日CSV → 52周高点和低点、%跌幅、收益、周收盘价
scripts/verify.py从CSV重新衍生每个标题数字,检查字段和来源,写入 verified.json,如有任何问题则退出并返回1
scripts/build_report.py工人JSON + verified.json → 一个独立的HTML页面(使用 assets/report.css)
scripts/build_email.py相同的已验证数字 → 可发送的 drawdown_report.eml(邮件安全HTML + 文本,附带报告);验证邮箱地址
scripts/send_email.py供用户在自己的电脑上运行:通过SMTP发送 .eml,包括确认提示和本地输入的应用专用密码
defaults.json用户未指定代码时使用的默认观察列表(可编辑)
references/worker_brief.md每个工人遵循的简要说明(填入 {…} 占位符)
references/schema.md<TICKER>.json 的合约
examples/run-2026-10-16/一个完整的参考运行(FTEC, QQQ, SMH, ARTY):四个工人JSON和完成的 report.html。将其作为深度、语气和引用风格的标准。

工作流程

1. 设置

  1. 从用户请求中读取代码列表。
    • 未指定代码(“运行我的股票分析”、“市场距高点如何?”):读取 $SKILL_DIR/defaults.json 并按顺序使用其 default_watchlist。在第一行说明您正在使用默认观察列表并列出它。
    • 指定了代码: 精确使用那些代码;除非用户要求(例如“通常的加上NVDA”),否则不要添加默认值。
    • 指数(S&P 500, Dow Jones, Nasdaq Composite…):研究指数本身,使用 defaults.json 中的 id(SPX, DJI)或诸如 COMP 的短标签作为文件名中的代码。告知工人这是一个指数(参见简要中的指数说明)。
  2. 创建工作文件夹:WORK_DIR=$PWD/drawdown-<YYYY-MM-DD>。
  3. 创建任务列表,包含:
    • 每个代码一个任务
    • “验证数字”
    • “构建并发布报告”

2. 分派

为每个代码生成一个子代理,并行并在后台运行。每个代理的提示是:

  • references/worker_brief.md 的完整文本,
  • 其中 {TICKER}、{WORK_DIR}、{SKILL_DIR} 和 {TODAY} 已填入,
  • 加上任何值得检查的代码特定角度。例如,对于芯片基金:出口管制、超大规模资本支出、内存周期。

当用户仅指定一两个代码且未要求子代理时,您可以自己按照相同的简要进行研究。

3. 等待

当一个工人完成时,勾掉其任务并发布一行:代码、其%跌幅以及其高点日期。不要阅读工人转录。

4. 验证

运行:

python3 $SKILL_DIR/scripts/verify.py --dir $WORK_DIR --tickers <T...>

如果报告 MISMATCH、MISSING 或 NO SOURCE/TS,在构建前修复问题:

  • 算术或手抄错误: 重新运行 compute_drawdown.py 并从 <T>_metrics.json 更正JSON。
  • 缺少研究: 使用SendMessage将工人送回。

UNCITED 和 NO CROSS-CHECK 是警告。如果它们仍然存在,在回复中提及。

5. 构建

运行:

python3 $SKILL_DIR/scripts/build_report.py --dir $WORK_DIR --tickers <T...> \
  --out $WORK_DIR/drawdown_report.html --title "<2-4字名称>" --eyebrow "<例如 ETF 回撤回顾>"

选择标题: 选择一个简短具体的名称,例如“科技ETF回撤”或“芯片股回调”。对同一资产组合的重复运行使用相同标题。

6. 发布

使用Artifact工具发布HTML,使用 icon: "chart" 和一句描述,包含代码和截止日期。

  • 同一资产组合的重复运行: 如果用户希望保留旧链接,则重新发布到该Artifact的URL。
  • 不要编辑生成的HTML。 报告级别的更改应放到 build_report.py 或 assets/report.css 中。

7. 电子邮件(仅当用户提供了邮箱地址时)

除非用户自己的消息中包含邮箱地址(例如“…并发送到[email protected]”),否则跳过此步骤。如果他们说“发给我”但没有地址,请询问一个;切勿猜测或重复使用其他地方的地址。

没有连接器。 不要使用Gmail、Outlook或任何其他电子邮件连接器或浏览器自动化,也永远不要要求或处理电子邮件密码。发送发生在用户端:您准备一封可发送的消息,用户发送它。

  1. 构建电子邮件。
    python3 $SKILL_DIR/scripts/build_email.py --dir $WORK_DIR --tickers <T...> --to <地址...> \
      --report $WORK_DIR/drawdown_report.html --artifact-url <已发布链接> --title "<相同标题>"
    
    退出码2表示地址无效:要求用户更正。脚本写入 drawdown_report.eml(HTML + 纯文本,附带报告,收件人和主题已填好),以及 email_body.html、email_body.txt 和 email.json。
  2. 交付它。 使用SendUserFile发送 drawdown_report.eml(显示 attach)。
  3. 告知用户如何发送它,用两或三行:
    • 在Outlook中打开.eml(作为草稿打开)或Apple Mail(邮件 → 再次发送),检查,然后点击发送。
    • 或者,在他们自己的电脑上通过终端:python3 send_email.py drawdown_report.eml --from <他们的地址>。脚本会显示收件人,请求确认,并自行提示输入应用专用密码。如果他们要求,也发送 scripts/send_email.py。
  4. 链接的隐私性。 Artifact对用户私有。如果收件人是其他人,请说明除非用户共享页面,否则他们将依赖附带的报告。

8. 回复

保持回复简短:

  1. 一句话说明页面是什么。
  2. 一个按跌幅排序的markdown表格,列包括:代码、最新收盘价、52周高点(日期)、跌幅。
  3. 两或三个要点,总结跨代码的主要发现。
  4. 一个简短的“数据缺口”说明,涵盖影响本次运行的工具故障。
  5. 如果请求了电子邮件:一行说明.eml已准备好发送以及如何发送。

不要重述步骤。

不可协商事项

  1. 每个数字都来自工具调用,带有其来源和时间戳。
  2. “无数据”优于猜测。
  3. 所有数学运算都在脚本中完成。
  4. 仅限只读工具。 永远不要碰订单、警报或观察列表工具。永远不要自行发送电子邮件;步骤7仅准备供用户发送的消息。
  5. 不提供买入或卖出建议。 公平地呈现两种观点。

相关技能