feat: add multi-market analysis and sqlite-backed reporting

This commit is contained in:
root
2026-03-31 01:03:03 +08:00
parent dbdaca6f11
commit 5e467494e6
5 changed files with 1281 additions and 432 deletions

View File

@@ -1,18 +1,19 @@
---
name: stockbuddy
description: 港股分析助手,提供港股技术面和基本面综合分析,给出买入/卖出操作建议。支持单只股票查询分析、持仓批量分析和持仓管理。当用户提到"港股"、"股票分析"、"持仓分析"、"买入建议"、"卖出建议"、港股代码(如 0700.HK700或港股公司名称(如腾讯、阿里、比亚迪)时触发此技能。
description: 多市场股票分析助手,提供 A 股、港股、美股的技术面和基础估值分析,给出买入/卖出操作建议。支持单只股票查询分析、持仓批量分析、关注股票管理和持仓管理。当用户提到"股票分析"、"持仓分析"、"关注股票"、"买入建议"、"卖出建议",或提供 A 股代码(如 600519 / SH600519、港股代码(如 0700.HK / 700、美股代码(如 AAPL / TSLA)时触发此技能。
---
# 港股分析助手 (StockBuddy)
# 多市场股票分析助手 (StockBuddy)
## 概述
港股技术面与基本面综合分析工具,输出量化评分和明确操作建议(强烈买入/买入/持有/卖出/强烈卖出)。
A 股、港股、美股的技术面与基础估值综合分析工具,输出量化评分和明确操作建议(强烈买入/买入/持有/卖出/强烈卖出)。
大核心场景:
1. **单只股票分析** — 对指定股进行完整技术面+基本面分析,给出操作建议
大核心场景:
1. **单只股票分析** — 对指定股进行完整技术面+基本面分析,给出操作建议
2. **持仓批量分析** — 对用户所有持仓股票批量分析,给出各股操作建议和整体盈亏统计
3. **持仓管理** — 增删改查持仓记录
4. **关注池管理** — 增删改查关注股票,并记录股票基本信息
## 环境准备
@@ -22,7 +23,7 @@ description: 港股分析助手,提供港股技术面和基本面综合分析
bash {{SKILL_DIR}}/scripts/install_deps.sh
```
所需依赖:`numpy``pandas`(无需 yfinance已改用腾讯财经数据源
所需依赖:`numpy``pandas`、Python 内置 `sqlite3`(无需 yfinance已改用腾讯财经数据源
## 核心工作流
@@ -33,9 +34,10 @@ bash {{SKILL_DIR}}/scripts/install_deps.sh
**步骤:**
1. **识别股票代码**
- 用户提供数字代码 → 标准化为 `XXXX.HK` 格式(自动补零)
- 用户提供中文名称 → 查阅 `references/hk_stock_codes.md` 匹配对应代码
- 无法匹配时 → 询问用户确认具体代码
- 港股:标准化为 `XXXX.HK`
- A 股:标准化为 `SH600519` / `SZ000001`
- 美股:标准化为 `AAPL` / `TSLA`
- 用户提供中文名称时,可先根据上下文判断市场;无法唯一匹配时再向用户确认
2. **执行分析脚本**
```bash
@@ -43,7 +45,7 @@ bash {{SKILL_DIR}}/scripts/install_deps.sh
```
可选周期参数:`1mo` / `3mo` / `6mo`(默认)/ `1y` / `2y` / `5y`
**缓存机制**脚本内置 10 分钟缓存,同一股票短时间内重复分析不会重复请求腾讯财经。若用户明确要求"刷新数据"或"重新分析",加 `--no-cache` 参数强制刷新。清除所有缓存:`--clear-cache`。
**数据与缓存机制**原始日线 K 线、关注池、持仓数据统一保存在 `~/.stockbuddy/stockbuddy.db`SQLite。持仓记录通过 `watchlist_id` 关联关注股票主键。分析结果单独写入 SQLite 缓存表,默认 TTL 为 10 分钟,写入时自动清理过期缓存,并将总缓存条数控制在 1000 条以内。若用户明确要求"刷新数据"或"重新分析",加 `--no-cache` 参数强制刷新。清除分析缓存:`--clear-cache`。
3. **解读并呈现结果**
- 脚本输出 JSON 格式分析数据
@@ -60,6 +62,7 @@ bash {{SKILL_DIR}}/scripts/install_deps.sh
```bash
python3 {{SKILL_DIR}}/scripts/portfolio_manager.py list
```
持仓数据保存在 `~/.stockbuddy/stockbuddy.db` 的 `positions` 表。
2. **持仓为空时** → 引导用户添加持仓(参见场景三的添加操作)
@@ -84,7 +87,18 @@ bash {{SKILL_DIR}}/scripts/install_deps.sh
| 更新 | `python3 {{SKILL_DIR}}/scripts/portfolio_manager.py update <代码> [--price <价格>] [--shares <数量>] [--note <备注>]` |
| 移除 | `python3 {{SKILL_DIR}}/scripts/portfolio_manager.py remove <代码>` |
添加持仓时若用户未提供日期,默认使用当天日期。若用户提供了自然语言信息(如"我上周花 350 买了 100 股腾讯"),提取价格、数量、日期等参数后执行命令。
添加持仓时会自动确保该股票存在于关注池,并通过 `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 <代码>` |
## 分析方法论