# 持仓定时分析功能 - 使用指南

## 📖 功能概述

持仓定时分析功能允许您：
- **管理持仓股票**：添加、编辑、删除持仓股票清单
- **批量分析**：一次性分析所有持仓股票的投资价值
- **定时任务**：设置每日自动分析时间
- **自动监测**：分析结果自动同步到实时监测列表
- **通知提醒**：邮件或Webhook接收分析完成通知
- **历史记录**：查看每只股票的历史分析结果

---

## 🚀 快速开始

### 1. 安装依赖

确保已安装以下依赖包：

```bash
pip install schedule
pip install openai  # DeepSeek API使用
```

### 2. 访问功能

1. 启动应用：`streamlit run app.py`
2. 点击侧边栏**"📊 持仓分析"**按钮
3. 进入持仓管理界面

---

## 📝 功能详解

### 一、持仓管理

#### 添加股票

1. 点击**"➕ 添加持仓股票"**展开表单
2. 填写股票信息：
   - **股票代码**（必填）：例如 `600519.SH`、`000001.SZ`、`AAPL`
   - **股票名称**（可选）：例如 `贵州茅台`，留空自动获取
   - **成本价**（可选）：您的买入价格
   - **持仓数量**（可选）：持仓股数
   - **备注**：记录买入理由等信息
   - **自动同步监测**：勾选后分析结果自动加入监测列表
3. 点击**"➕ 添加股票"**完成

#### 编辑股票

1. 在股票卡片中点击**"✏️"**按钮
2. 修改信息后点击**"保存"**
3. 或点击**"取消"**放弃修改

#### 删除股票

1. 在股票卡片中点击**"🗑️"**按钮
2. 确认删除（不可恢复）

---

### 二、批量分析

#### 立即分析

1. 切换到**"🔄 批量分析"**标签
2. 选择分析模式：
   - **顺序分析**：逐个分析，稳定但较慢
   - **并行分析**：同时分析多只，速度快但消耗资源更多
3. 设置选项：
   - **自动同步到监测**：勾选后自动将评级结果添加到监测列表
   - **发送完成通知**：勾选后通过邮件/Webhook发送结果
4. 点击**"🚀 立即开始分析"**
5. 等待进度完成，查看分析结果

#### 分析结果

- **概况统计**：总数、成功、失败、耗时
- **详细结果**：每只股票的评级、进场区间、止盈止损位
- **颜色标识**：
  - 🟢 绿色：买入推荐
  - 🟡 黄色：持有观望
  - 🔴 红色：卖出建议

---

### 三、定时任务

#### 配置定时分析

1. 切换到**"⏰ 定时任务"**标签
2. **配置定时时间**（支持多个时间点）：
   - 查看当前已配置的时间列表
   - 点击**"➕ 添加定时时间"**添加新时间点（如 09:30, 15:05）
   - 点击时间旁的**"🗑️"**按钮删除不需要的时间
   - 系统自动按时间排序，支持2-5个时间点
3. **配置分析选项**：
   - **分析模式**：顺序或并行
   - **并行线程数**：并行模式下的同时分析数量（2-10）
   - **自动同步到监测**：是否自动将结果同步到监测列表
   - **发送完成通知**：是否发送通知
4. 点击**"💾 更新配置"**保存

**推荐配置**：
- 保守型：09:25（盘前） + 15:05（盘后）
- 积极型：09:30（开盘） + 13:05（午盘） + 15:05（收盘）
- 详见：[`docs/MULTI_SCHEDULE_GUIDE.md`](MULTI_SCHEDULE_GUIDE.md)

#### 启动/停止调度器

- **启动**：点击**"▶️ 启动调度器"**，系统将在每日设定时间自动执行分析
- **停止**：点击**"⏹️ 停止调度器"**，取消自动执行
- **立即执行**：点击**"🚀 立即执行一次"**，无需等待定时触发

#### 查看状态

- **🟢 运行中**：调度器已启动
- **🔴 已停止**：调度器未运行
- **⏰ 分析时间**：设定的每日执行时间
- **⏭️ 下次运行**：下次预计执行的时间

---

### 四、分析历史

#### 查看历史记录

1. 切换到**"📈 分析历史"**标签
2. 选择股票：
   - **全部**：显示所有股票的最新20条记录
   - **指定股票**：显示该股票的最近20次分析
3. 展开记录查看详情：
   - 投资评级和置信度
   - 进场区间、目标价
   - 止盈位、止损位
   - 分析摘要

#### 历史数据用途

- **对比变化**：观察评级和位置的变化趋势
- **验证准确性**：对比历史预测与实际走势
- **优化策略**：根据历史数据调整投资决策

---

## ⚙️ 高级配置

### 通知配置

#### 邮件通知

1. 进入**"⚙️ 环境配置"**
2. 配置SMTP信息：
   ```
   EMAIL_ENABLED=true
   SMTP_SERVER=smtp.example.com
   SMTP_PORT=587
   EMAIL_FROM=your@email.com
   EMAIL_PASSWORD=your_password
   EMAIL_TO=receiver@email.com
   ```

#### Webhook通知（钉钉/飞书）

1. 获取群机器人Webhook URL
2. 配置环境变量：
   ```
   WEBHOOK_ENABLED=true
   WEBHOOK_URL=https://your_webhook_url
   WEBHOOK_TYPE=dingtalk  # 或 feishu
   WEBHOOK_KEYWORD=aiagents通知
   ```

### 数据存储

- **持仓数据库**：`portfolio_stocks.db`
  - 持仓股票信息
  - 分析历史记录
- **监测数据库**：`stock_monitor.db`
  - 自动同步的监测股票

### 数据备份

建议定期备份数据库文件：

```bash
# Windows
copy portfolio_stocks.db portfolio_stocks_backup_%date%.db

# Linux/Mac
cp portfolio_stocks.db portfolio_stocks_backup_$(date +%Y%m%d).db
```

---

## 💡 使用技巧

### 1. 合理配置持仓清单

- **精选股票**：只添加重点关注的股票（建议10-30只）
- **完善信息**：填写成本价和数量，便于计算收益
- **详细备注**：记录买入理由、目标价等，便于复盘

### 2. 选择合适的分析模式

- **顺序分析**：
  - ✅ 稳定可靠，API调用有序
  - ✅ 适合API限速严格的场景
  - ❌ 速度较慢，10只股票约需10-15分钟

- **并行分析**：
  - ✅ 速度快，3线程约5-8分钟完成10只
  - ✅ 适合持仓较多的用户
  - ❌ 对API并发要求高，可能触发限速

**建议**：
- 持仓≤10只：顺序分析
- 持仓>10只：并行分析（3-5线程）

### 3. 设置合理的定时时间

推荐定时配置：
- **开盘后分析**：`09:35`（开盘5分钟后，数据稳定）
- **午盘后分析**：`13:05`（午盘结束后，评估上午走势）
- **收盘后分析**：`15:05`（收盘后，获取完整日数据）

### 4. 充分利用自动监测

- 开启**"自动同步到监测"**
- 分析后自动将进场区间、止盈止损同步到监测列表
- 实时监测模块会在触发关键位置时发送通知
- 减少手动操作，不遗漏交易机会

### 5. 定期查看历史记录

- 每周查看一次历史分析
- 对比预测与实际走势
- 总结规律，优化投资策略

---

## 🔧 常见问题

### Q1: 添加股票后为什么无法分析？

**A:** 检查以下几点：
1. DeepSeek API Key是否配置正确
2. 股票代码格式是否正确（A股需要加`.SH`或`.SZ`后缀）
3. 网络连接是否正常
4. API额度是否充足

### Q2: 定时任务为什么没有执行？

**A:** 可能原因：
1. 调度器未启动（检查是否显示🟢运行中）
2. 应用已关闭（调度器需要应用持续运行）
3. 时间配置错误（检查系统时间和设定时间）

**解决方案**：
- 保持Streamlit应用运行（可使用`nohup`或`screen`后台运行）
- 或使用外部定时工具（如系统cron）调用分析接口

### Q3: 批量分析失败率高怎么办？

**A:** 优化建议：
1. 切换到顺序分析模式
2. 减少并行线程数
3. 检查网络稳定性
4. 确认股票代码有效性
5. 查看错误日志定位具体问题

### Q4: 如何导出分析结果？

**A:** 方法：
1. 通过邮件/Webhook接收结果
2. 直接查询`portfolio_stocks.db`数据库：
   ```sql
   SELECT * FROM portfolio_analysis_history ORDER BY analysis_time DESC;
   ```
3. 未来版本将支持CSV/Excel导出功能

### Q5: 监测同步不生效？

**A:** 检查：
1. 持仓股票是否勾选**"自动监测"**
2. 分析是否成功（失败的分析不会同步）
3. 分析结果是否包含进场区间和止盈止损（缺失则跳过）
4. 查看日志确认同步结果

---

## 📊 性能参数

### 分析速度参考

| 持仓数量 | 顺序分析 | 并行(3线程) | 并行(5线程) |
|---------|----------|------------|------------|
| 5只     | 5-8分钟  | 3-4分钟    | 2-3分钟    |
| 10只    | 10-15分钟| 6-8分钟    | 4-5分钟    |
| 20只    | 20-30分钟| 12-15分钟  | 8-10分钟   |
| 30只    | 30-45分钟| 18-22分钟  | 12-15分钟  |

*实际速度取决于网络环境和API响应时间*

### 资源消耗

- **内存**：基础50MB + 每线程10MB
- **CPU**：单线程<5%，多线程<20%
- **网络**：每只股票约2-5MB数据传输
- **数据库**：每条历史记录约1-2KB

---

## 🎯 最佳实践

### 日常使用流程

1. **早晨**（开盘前）
   - 查看昨日定时分析结果（如有）
   - 检查监测列表的通知
   - 决定今日交易计划

2. **盘中**（交易时段）
   - 关注监测列表的实时提醒
   - 根据进场区间执行买入
   - 按照止盈止损位纪律卖出

3. **收盘后**
   - 回顾今日交易
   - 更新持仓信息（新增/删除股票）
   - 查看分析历史，总结经验

### 长期投资策略

1. **建立核心持仓清单**（10-20只优质股票）
2. **设置定时分析**（每日收盘后15:05）
3. **开启自动监测同步**
4. **每周回顾**历史记录，调整持仓
5. **每月总结**投资表现，优化策略

### 短线交易策略

1. **快速轮换持仓清单**（5-10只热门股）
2. **多次盘中分析**（开盘后、午盘后）
3. **立即同步监测**，捕捉买卖点
4. **及时更新持仓**（止盈/止损后删除）
5. **灵活调整**，跟随市场热点

---

## 📞 技术支持

### 获取帮助

- **查看日志**：检查终端输出的`[OK]`/`[ERROR]`消息
- **数据库工具**：使用SQLite Browser查看数据库
- **问题反馈**：在项目GitHub提交Issue

### 调试模式

开启详细日志：

```python
# portfolio_scheduler.py 顶部添加
import logging
logging.basicConfig(level=logging.DEBUG)
```

---

## 📝 更新日志

### v1.0.0 (2024-01)

- ✅ 持仓股票管理（增删改查）
- ✅ 批量分析功能（顺序/并行模式）
- ✅ 定时任务调度器
- ✅ 自动监测同步
- ✅ 邮件/Webhook通知
- ✅ 分析历史记录

### 未来计划

- [ ] 收益率统计和可视化
- [ ] CSV/Excel导入导出
- [ ] 自定义分析指标
- [ ] 组合优化建议
- [ ] 风险敞口分析

---

## 🙏 感谢使用

持仓定时分析功能旨在帮助您更高效地管理投资组合，做出明智的投资决策。

**祝您投资顺利！📈**

