Files
stockbuddy/SKILL.md

144 lines
8.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
name: stockbuddy
description: 多市场股票分析助手,提供 A 股、港股、美股的技术面和基础估值分析,给出买入/卖出操作建议。支持单只股票查询分析、持仓批量分析、关注股票管理和持仓管理。当用户提到股票分析、持仓分析、关注股票、买入建议、卖出建议,或直接提供股票代码 / 股票名称请求分析时触发此技能。
---
# 多市场股票分析助手 (StockBuddy)
## 概述
A 股、港股、美股的技术面与基础估值综合分析工具,输出量化评分和明确操作建议(强烈买入/买入/持有/卖出/强烈卖出)。默认以**决策优先**的方式返回结果:先给简明结论、评分/置信度、事件修正后的二次建议与挂单实操建议;只有在用户明确要求时才展开完整长报告。
四大核心场景:
1. **单只股票分析** — 对指定股票进行完整技术面+基本面分析,给出操作建议
2. **持仓批量分析** — 对用户所有持仓股票批量分析,给出各股操作建议和整体盈亏统计
3. **持仓管理** — 增删改查持仓记录
4. **关注池管理** — 增删改查关注股票,并记录股票基本信息
## 环境准备
仅在依赖缺失,或脚本运行时报缺包错误时,再执行安装脚本:
```bash
bash {{SKILL_DIR}}/scripts/install_deps.sh
```
所需依赖:`numpy``pandas`、Python 内置 `sqlite3`(无需 yfinance已改用腾讯财经数据源
## 核心工作流
### 场景一:分析单只股票
触发示例:"分析腾讯"、"这只股票能不能买"、"看看比亚迪怎么样"、"帮我分析一下这只票"
**步骤:**
1. **识别股票代码**
- 港股:标准化为 `XXXX.HK`
- A 股:标准化为 `SH600519` / `SZ000001`
- 美股:标准化为 `AAPL` / `TSLA`
- 用户提供中文名称时,可先根据上下文判断市场;无法唯一匹配时再向用户确认
2. **执行分析脚本**
```bash
python3 {{SKILL_DIR}}/scripts/analyze_stock.py <代码> --period 6mo
```
可选周期参数:`1mo` / `3mo` / `6mo`(默认)/ `1y` / `2y` / `5y`
**数据与缓存机制**:原始日线 K 线、关注池、持仓数据统一保存在 `~/.stockbuddy/stockbuddy.db`SQLite。持仓记录通过 `watchlist_id` 关联关注股票主键。分析结果单独写入 SQLite 缓存表,默认 TTL 为 10 分钟,写入时自动清理过期缓存,并将总缓存条数控制在 1000 条以内。若用户明确要求"刷新数据"或"重新分析",加 `--no-cache` 参数强制刷新。清除分析缓存:`--clear-cache`。
3. **解读并呈现结果**
- 脚本输出 JSON 格式分析数据
- **默认单股分析优先使用** `references/output_templates.md` 中的 **“默认查询模板”**:先返回最重要的决策信息,必须包含:股票基本信息、基于数据面的操作建议(含评分与置信度)、重要事件、事件加持后的二次分析建议,以及最终的挂单实操建议
- **挂单风格默认走平衡型**:若用户未特别指定,挂单价格按 `references/output_templates.md` 中的“挂单价格生成规范”采用平衡型;只有当用户明确要求“保守版”或“激进版”时才切换
- **完整报告仅在用户明确要求时输出**:当用户说"完整报告"、"详细分析"、"完整分析详情"、"全量报告"等,再按同文件中的 **“完整报告组合规则”**,用多个原子模板拼装完整报告
- **顶部完整分析详情为必选项**:无论默认查询还是完整报告,都必须先给出 2-4 句话的自然语言完整分析详情,概括市场场景、主建议、置信度、支撑/风险点,以及是否适合立刻操作
- **仅当用户明确追问细节时**(如"展开讲讲"、"为什么是这个评级"、"短线怎么看"、"止盈止损怎么设"、"详细分析"),才切换为更自然的开放式解读,围绕用户追问点展开说明
- 最终结果直接输出为标准 Markdown 正文,不要包在代码块里;默认优先短段落、项目符号和卡片式结构,除非用户明确要求,否则不要自动展开过多宽表格
### 场景二:持仓批量分析
触发示例:"分析我的持仓"、"看看我的股票"、"持仓怎么样了"
默认输出仍以**决策优先**为主:每只持仓先给操作建议、评分/置信度、重要事件、事件修正后的二次建议,以及最简挂单实操版;除非用户明确要求详细版,否则不要把每只股票都展开成冗长全量报告。
**步骤:**
1. **检查持仓数据**
```bash
python3 {{SKILL_DIR}}/scripts/portfolio_manager.py list
```
持仓数据保存在 `~/.stockbuddy/stockbuddy.db` 的 `positions` 表。
2. **持仓为空时** → 引导用户添加持仓(参见场景三的添加操作)
3. **执行批量分析**
```bash
python3 {{SKILL_DIR}}/scripts/portfolio_manager.py analyze
```
4. **解读并呈现结果**
- 按 `references/output_templates.md` 中"持仓批量分析报告"模板呈现
- 直接输出为标准 Markdown 正文,不要包在代码块里;可使用规范 Markdown 表格与列表混合呈现,保证不同平台可读性
- 包含每只股票的操作建议和整体盈亏汇总
### 场景三:持仓管理
触发示例:"添加腾讯持仓"、"我买了 100 股比亚迪"、"删除阿里持仓"
| 操作 | 命令 |
|------|------|
| 添加 | `python3 {{SKILL_DIR}}/scripts/portfolio_manager.py add <代码> --price <买入价> --shares <数量> [--date <日期>] [--note <备注>]` |
| 查看 | `python3 {{SKILL_DIR}}/scripts/portfolio_manager.py list` |
| 更新 | `python3 {{SKILL_DIR}}/scripts/portfolio_manager.py update <代码> [--price <价格>] [--shares <数量>] [--note <备注>]` |
| 移除 | `python3 {{SKILL_DIR}}/scripts/portfolio_manager.py remove <代码>` |
添加持仓时会自动确保该股票存在于关注池,并通过 `positions.watchlist_id -> watchlist.id` 关联。若用户未提供日期,默认使用当天日期。若用户提供了自然语言信息(如"我上周花 350 买了 100 股腾讯"),提取价格、数量、日期等参数后执行命令。
### 场景四:关注池管理
触发示例:"关注腾讯"、"把苹果加到关注列表"、"取消关注茅台"
| 操作 | 命令 |
|------|------|
| 查看关注池 | `python3 {{SKILL_DIR}}/scripts/portfolio_manager.py watch-list` |
| 添加关注 | `python3 {{SKILL_DIR}}/scripts/portfolio_manager.py watch-add <代码>` |
| 取消关注 | `python3 {{SKILL_DIR}}/scripts/portfolio_manager.py watch-remove <代码>` |
## 分析方法论
综合评分体系覆盖技术面(约 60% 权重)和基本面(约 40% 权重),最终评分范围约 -10 到 +10
| 评分区间 | 操作建议 |
|----------|----------|
| ≥ 5 | 🟢🟢 强烈买入 |
| 2 ~ 4 | 🟢 买入 |
| -1 ~ 1 | 🟡 持有/观望 |
| -4 ~ -2 | 🔴 卖出 |
| ≤ -5 | 🔴🔴 强烈卖出 |
仅当用户要求解释评分逻辑、技术指标含义,或你需要校准开放式解读时,再读取 `references/technical_indicators.md`。
当需要组织最终输出格式、决定默认查询 vs 完整报告、或生成挂单实操建议时,优先读取 `references/output_templates.md`;其中已经定义了默认查询模板、原子模板、完整报告组合规则,以及保守型/平衡型/激进型挂单价格生成规范(默认平衡型)。
## 重要注意事项
- 所有分析仅供参考,**不构成投资建议**
- 数据来源以 **腾讯财经** 为主,可能存在延迟、缺口或字段局限
- 港股没有涨跌停限制,波动风险更大
- 每次分析结果末尾**必须**附上风险免责提示
- 技术分析在市场极端情况下可能失效
- 建议用户结合宏观经济环境、行业趋势和公司基本面综合判断
## 资源文件
| 文件 | 用途 |
|------|------|
| `scripts/analyze_stock.py` | 核心分析脚本,获取数据并计算技术指标和基本面评分 |
| `scripts/portfolio_manager.py` | 持仓管理脚本,支持增删改查和批量分析 |
| `scripts/install_deps.sh` | Python 依赖安装脚本 |
| `references/technical_indicators.md` | 技术指标详解和评分标准 |
| `references/output_templates.md` | 分析输出模板总控:默认查询模板、原子模板、完整报告组合规则、挂单价格生成规范 |
| `references/data-source-roadmap.md` | 数据源升级路线图:主源 / fallback / 事件层规划;仅在需要扩展数据源或接入事件信息时读取 |