增加选股策略

This commit is contained in:
oficcejo
2025-12-12 19:46:38 +08:00
parent 595278100f
commit ad5865d3b4
25 changed files with 4818 additions and 20 deletions
@@ -0,0 +1,239 @@
# 低价擒牛策略监控配置说明
## 环境变量配置
`.env` 文件中添加以下配置:
```bash
# 低价擒牛策略监控配置
LOW_PRICE_BULL_SCAN_INTERVAL=60 # 扫描间隔(秒),默认60秒
LOW_PRICE_BULL_HOLDING_DAYS=5 # 持股天数限制,默认5天
# TDX数据源API配置(必须)
TDX_BASE_URL=http://127.0.0.1:5000 # TDX API服务地址
```
## TDX数据源配置
策略监控需要使用TDX数据API获取股票K线数据和均线指标。
### 配置方法
`.env` 文件中添加TDX API URL
```bash
# TDX数据源API配置
TDX_BASE_URL=http://127.0.0.1:5000 # TDX API服务地址
```
### API接口说明
#### 核心接口
| 接口 | 说明 | 示例 |
|------|------|------|
| /api/quote | 五档行情 | ?code=000001 |
| /api/kline | K线数据 | ?code=000001&type=day |
| /api/minute | 分时数据 | ?code=000001 |
| /api/trade | 分时成交 | ?code=000001 |
| /api/search | 搜索股票 | ?keyword=平安 |
| /api/stock-info | 综合信息 | ?code=000001 |
#### K线数据接口
策略监控使用的接口:**`/api/kline`**
**请求参数**
- `code`: 股票代码(例如:000001
- `type`: K线类型(day=日K线)
**返回格式**
```json
[
{
"date": "2024-12-12",
"open": 10.50,
"high": 10.80,
"low": 10.30,
"close": 10.60,
"volume": 1000000
},
...
]
```
**使用示例**
```bash
curl "http://127.0.0.1:5000/api/kline?code=000001&type=day"
```
### 启动TDX API服务
如果您还没有TDX API服务,需要先启动服务:
1. 确保已安装相关依赖
2. 启动TDX API服务器(默认端口5000
3. 在.env中配置服务地址
### 数据说明
- **更新频率**K线数据实时更新
- **数据量**:策略需要至少20天的K线数据
- **均线计算**:系统自动计算MA5和MA20
## Webhook通知配置
建议配置钉钉Webhook以接收卖出提醒:
```bash
# Webhook通知配置
WEBHOOK_ENABLED=true
WEBHOOK_URL=https://oapi.dingtalk.com/robot/send?access_token=xxxxx
WEBHOOK_TYPE=dingtalk
WEBHOOK_KEYWORD=aiagents通知
```
## 功能说明
### 1. 加入策略监控
在"低价擒牛"选股结果中,点击任意股票详情中的"➕ 加入策略监控"按钮。
### 2. 监控条件
#### 条件1:持股天数到期
- 持股满5天(可配置)
- 第6天开盘时发送卖出提醒
- 自动从监控列表移除
#### 条件2MA5下穿MA20
- 每分钟扫描1次(可配置)
- 检测MA5是否小于MA20
- 满足条件时发送卖出提醒
- 自动从监控列表移除
### 3. 卖出提醒
提醒会通过以下方式发送:
- 钉钉Webhook通知(需配置)
- 监控面板中的"卖出提醒"标签页
### 4. 自动移除
当满足卖出条件时:
1. 生成卖出提醒
2. 发送钉钉通知(如已配置)
3. 自动从监控列表移除
4. 记录到历史提醒
## 使用流程
```
1. 低价擒牛选股
2. 查看选股结果
3. 点击" 加入策略监控"
4. 进入"📊 策略监控"面板
5. 启动监控服务
6. 等待卖出提醒
7. 收到提醒后卖出
```
## 监控面板功能
### 服务控制
- ▶️ 启动监控服务
- ⏸️ 停止监控服务
- ⚙️ 配置扫描间隔
### 监控列表
- 查看所有监控中的股票
- 显示持有天数
- 手动移除股票
### 卖出提醒
- 查看待处理的提醒
- 查看MA5/MA20数据
- 标记已处理/忽略
### 历史记录
- 查看历史提醒
- 清理旧记录
## 注意事项
1. ⚠️ **监控服务需要手动启动**
- 首次使用需在监控面板启动服务
- 服务启动后会持续运行
- 关闭浏览器后服务会停止
2. ⚠️ **TDX数据源**
- 必须配置TDX_BASE_URL
- 确俜TDX API服务已启动
- 使用`/api/kline`接口获取日K线数据
- 数据需要至少20天才能计算MA20
3. ⚠️ **扫描间隔**
- 默认60秒扫描1次
- 可在监控面板调整
- 建议不要低于30秒
4. ⚠️ **持股天数计算**
- 按自然日计算
- 不区分交易日/非交易日
- 建议留有余地
## 常见问题
### Q1: 监控服务无法启动?
A: 检查:
- Python环境是否正常
- 依赖包是否安装完整
- 查看控制台错误日志
### Q2: 没有收到卖出提醒?
A: 检查:
- Webhook是否配置正确
- 监控服务是否在运行
- TDX API服务是否启动
- 访问`http://127.0.0.1:5000/api/health`检查API状态
- 查看控制台日志是否有错误信息
### Q3: 如何修改扫描间隔?
A: 两种方式:
- 在监控面板的"⚙️ 监控配置"中修改
- 在.env文件中修改`LOW_PRICE_BULL_SCAN_INTERVAL`
### Q4: 持股天数如何调整?
A: 在.env文件中修改:
```bash
LOW_PRICE_BULL_HOLDING_DAYS=7 # 改为7天
```
## 技术实现
### 数据库
- SQLite本地数据库
- 文件:`low_price_bull_monitor.db`
- 包含监控列表和提醒记录
### 后台服务
- Python线程实现
- 定时扫描循环
- 异常自动恢复
### 数据获取
- 使用TDX API
- 调用`/api/kline`接口
- 获取日K线数据
- 计算MA5/MA20均线
---
**版本**: v1.0
**更新日期**: 2024-12-12