增加龙虎榜批量分析功能,修复一些小bug
This commit is contained in:
@@ -0,0 +1,398 @@
|
||||
# 持仓定时分析功能 - 使用指南
|
||||
|
||||
## 📖 功能概述
|
||||
|
||||
持仓定时分析功能允许您:
|
||||
- **管理持仓股票**:添加、编辑、删除持仓股票清单
|
||||
- **批量分析**:一次性分析所有持仓股票的投资价值
|
||||
- **定时任务**:设置每日自动分析时间
|
||||
- **自动监测**:分析结果自动同步到实时监测列表
|
||||
- **通知提醒**:邮件或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导入导出
|
||||
- [ ] 自定义分析指标
|
||||
- [ ] 组合优化建议
|
||||
- [ ] 风险敞口分析
|
||||
|
||||
---
|
||||
|
||||
## 🙏 感谢使用
|
||||
|
||||
持仓定时分析功能旨在帮助您更高效地管理投资组合,做出明智的投资决策。
|
||||
|
||||
**祝您投资顺利!📈**
|
||||
|
||||
Reference in New Issue
Block a user