Files
aiagents-stock/docs/低价擒牛实现总结.md
2025-12-12 19:46:38 +08:00

261 lines
6.2 KiB
Markdown
Raw Permalink 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.
# 低价擒牛选股板块 - 实现总结
## 实现日期
2024-12-12
## 功能概述
在左侧菜单栏"选股板块"下新增"低价擒牛"选股策略,支持低价高成长股票筛选和量化交易模拟。
## 核心功能
### 1. 选股策略
- ✅ 股价 < 10元
- ✅ 净利润增长率 ≥ 100%
- ✅ 非ST、非科创板、非创业板
- ✅ 深圳A股
- ✅ 按成交额由小至大排名
- ✅ 筛选前5名(可配置3-10只)
### 2. 钉钉通知
- ✅ 读取.env中的Webhook配置
- ✅ 自动发送选股结果到钉钉群
- ✅ 包含股票代码、价格、净利增长率等信息
### 3. 量化交易策略
- ✅ 初始资金:100万元
- ✅ 持股周期:5天
- ✅ 仓位控制:满仓
- ✅ 个股最大持仓:40%
- ✅ 最大持股数:4只
- ✅ 单日最大买入:2只
- ✅ 买入时机:开盘买入
- ✅ 卖出信号:MA5下穿MA20 或 持股满5天
### 4. 交易模拟
- ✅ 支持策略模拟(无需配置)
- ✅ 支持MiniQMT实盘对接(需配置)
- ✅ 显示买入信号、持仓、账户状态
## 新增文件
### Python模块
1. **low_price_bull_selector.py** (158行)
- 使用pywencai获取符合条件的股票
- 数据清洗和格式化
- 股票代码列表生成
2. **low_price_bull_strategy.py** (278行)
- 量化交易策略实现
- 买卖信号判断
- 仓位管理
- 交易历史记录
3. **low_price_bull_ui.py** (382行)
- Streamlit界面展示
- 用户交互逻辑
- 钉钉通知集成
- 策略模拟展示
### 文档
1. **docs/低价擒牛功能说明.md** (241行)
- 完整功能文档
- 策略详解
- 配置说明
- 风险提示
2. **docs/低价擒牛快速开始.md** (197行)
- 快速上手指南
- 典型使用场景
- 常见问题解答
## 修改文件
### app.py
修改位置:第293-380行(菜单导航区域)
**修改内容**
1. 在"选股板块"下添加"🐂 低价擒牛"按钮
2. 更新所有按钮的状态清除列表,增加`show_low_price_bull`
3. 添加路由检查,显示低价擒牛界面
**代码变更**
```python
# 添加导航按钮
if st.button("🐂 低价擒牛", width='stretch', key="nav_low_price_bull", help="低价高成长股票筛选策略"):
st.session_state.show_low_price_bull = True
# 清除其他页面标志
# 添加路由
if 'show_low_price_bull' in st.session_state and st.session_state.show_low_price_bull:
from low_price_bull_ui import display_low_price_bull
display_low_price_bull()
return
```
## 技术实现
### 数据获取
- 使用pywencai模块调用问财接口
- 查询语句:`"股价<10元,净利润增长率(净利润同比增长率)≥100%,非st,非科创板,非创业板,深圳A股,成交额由小至大排名"`
- 智能解析返回结果,兼容DataFrame/dict/list格式
### 通知集成
- 复用notification_service模块
- 支持钉钉/飞书Webhook
- 自动包含关键词"aiagents通知"
- Markdown格式消息展示
### 策略实现
- 基于面向对象设计
- 严格的仓位管理
- 清晰的买卖信号
- 完整的交易记录
### UI展示
- Streamlit expander组件展示详情
- DataFrame展示完整数据
- Metric组件展示关键指标
- CSV下载功能
## 环境变量配置
### Webhook通知(可选)
```bash
WEBHOOK_ENABLED=true
WEBHOOK_URL=your_dingtalk_webhook_url
WEBHOOK_TYPE=dingtalk
WEBHOOK_KEYWORD=aiagents通知
```
### MiniQMT实盘(可选)
```bash
MINIQMT_ENABLED=true
MINIQMT_ACCOUNT_ID=your_account_id
```
## 使用流程
1. **启动系统**
```bash
streamlit run app.py
```
2. **进入功能**
- 左侧菜单 → 🎯 选股板块 → 🐂 低价擒牛
3. **开始选股**
- 调整筛选数量
- 点击"🚀 开始低价擒牛选股"
4. **查看结果**
- 股票列表
- 统计信息
- 钉钉通知(如已配置)
5. **策略模拟**(可选)
- 点击"🎮 开始策略模拟"
- 查看买入信号和持仓
6. **实盘交易**(可选)
- 配置MiniQMT
- 点击"🔗 连接MiniQMT实盘"
## 特色亮点
### 1. 智能筛选
- 多维度条件过滤
- 成交额排序优先低热度股票
- 自动排除风险股(ST、科创板)
### 2. 完整策略
- 清晰的买卖规则
- 严格的风险控制
- 可复现的交易逻辑
### 3. 即时通知
- 自动发送钉钉消息
- 无需人工查看
- 移动端即时接收
### 4. 灵活配置
- 筛选数量可调
- 策略参数可改
- 支持模拟和实盘
## 注意事项
### 使用限制
1. ⚠️ 问财接口有频率限制,建议每次间隔30秒以上
2. ⚠️ 净利润增长率≥100%的股票可能较少
3. ⚠️ 策略模拟不包含手续费和滑点
### 风险提示
1. ⚠️ 本功能仅供学习研究使用
2. ⚠️ 不构成任何投资建议
3. ⚠️ 股市有风险,投资需谨慎
4. ⚠️ 历史业绩不代表未来收益
### 技术限制
1. ⚠️ 需要稳定的网络连接
2. ⚠️ pywencai模块需要正确安装
3. ⚠️ MiniQMT需要额外配置
## 后续优化方向
### 短期优化
- [ ] 添加历史选股记录
- [ ] 支持自定义筛选条件
- [ ] 增加更多技术指标
### 中期优化
- [ ] 回测功能
- [ ] 策略参数优化
- [ ] 多策略对比
### 长期优化
- [ ] AI选股建议
- [ ] 实时监控
- [ ] 自动化交易
## 测试建议
### 功能测试
1. ✅ 测试选股功能是否正常
2. ✅ 验证数据格式是否正确
3. ✅ 检查钉钉通知是否发送
4. ✅ 确认策略模拟逻辑
### 边界测试
1. ✅ 筛选不到股票时的处理
2. ✅ 网络异常时的错误处理
3. ✅ Webhook未配置时的提示
### 性能测试
1. ✅ 数据获取速度
2. ✅ UI渲染性能
3. ✅ 并发访问支持
## 相关文档
- [低价擒牛功能说明](./docs/低价擒牛功能说明.md)
- [低价擒牛快速开始](./docs/低价擒牛快速开始.md)
- [Webhook通知配置指南](./docs/Webhook通知配置指南.md)
- [MiniQMT集成指南](./docs/MINIQMT_INTEGRATION_GUIDE.md)
## 总结
本次实现完整地添加了"低价擒牛"选股板块,包含:
- ✅ 完整的选股策略
- ✅ 钉钉通知集成
- ✅ 量化交易策略
- ✅ 策略模拟功能
- ✅ 详细的文档说明
所有功能均已集成到现有系统中,与主力选股等其他板块保持一致的交互体验。
---
**实现完成时间**2024-12-12
**版本**v1.0
**状态**:✅ 已完成并可使用