Files
aiagents-stock/docs/实时监测定时功能说明.md

213 lines
6.1 KiB
Markdown

# 实时监测定时自动启动/关闭功能说明
## 功能概述
实时监测板块新增了定时自动启动和关闭功能,可以在交易日的交易时间自动启动监测服务,在收盘后自动停止,无需手动干预。
## 主要功能
### 1. 智能交易时间识别
- **自动识别交易日**: 系统会自动判断当前是否为交易日(默认为周一至周五)
- **交易时间检测**: 实时检测当前是否在交易时间段内
- **多市场支持**: 支持中国A股、美股、港股三个市场的交易时间
### 2. 自动启动/停止
- **定时启动**: 在开盘时间自动启动监测服务
- **定时停止**: 在收盘时间自动停止监测服务(可选)
- **智能检测**: 每分钟自动检测交易状态,实时调整监测状态
### 3. 灵活配置
- **市场选择**: 可选择 CN(中国A股)、US(美股)、HK(港股)
- **交易日设置**: 自定义交易日(默认周一至周五)
- **提前启动**: 可设置在开盘前提前启动(0-30分钟)
- **延后停止**: 可设置在收盘后延后停止(0-30分钟)
- **自动停止开关**: 可选择收盘后是否自动停止
## 默认交易时间
### 中国A股 (CN)
- **上午**: 09:30 - 11:30
- **下午**: 13:00 - 15:00
- **交易日**: 周一至周五
### 美股 (US)
- **交易时间**: 21:30 - 04:00(北京时间)
- **交易日**: 周一至周五
### 港股 (HK)
- **上午**: 09:30 - 12:00
- **下午**: 13:00 - 16:00
- **交易日**: 周一至周五
## 使用方法
### 1. 启用定时调度
1. 进入 **股票监测管理** 页面
2. 在监测服务状态下方找到 **⏰ 定时自动启动/关闭** 区域
3. 点击展开 **⚙️ 定时调度设置**
4. 勾选 **启用定时调度** 复选框
### 2. 配置市场和时间
**市场选择区域:**
- 选择您要监测的市场(CN/US/HK)
- 查看对应市场的交易时间
- 自定义交易日(如需要)
**调度参数区域:**
- **启用定时调度**: 总开关
- **收盘后自动停止**: 是否在交易时间结束后自动停止
- **提前启动**: 在开盘前多少分钟启动(默认5分钟)
- **延后停止**: 在收盘后多少分钟停止(默认5分钟)
### 3. 保存并启动
1. 配置完成后点击 **💾 保存设置**
2. 点击 **▶️ 启动调度器** 按钮
3. 系统将开始自动调度
### 4. 状态监控
在定时调度区域顶部可以看到实时状态:
- **定时已启用/未启用**: 定时调度功能的启用状态
- **调度器运行中/未运行**: 调度器的运行状态
- **交易日/非交易日**: 当前日期是否为交易日
- **交易时间内/下次交易时间**: 当前是否在交易时间,以及下次交易时间
## 工作原理
### 智能检测机制
调度器每分钟执行一次检测:
1. 检查当前是否为交易日
2. 检查当前是否在交易时间内
3. 如果在交易时间且监测服务未运行,则自动启动
4. 如果不在交易时间且监测服务正在运行且启用了自动停止,则自动停止
### 配置文件
- 调度配置保存在 `monitor_schedule_config.json` 文件中
- 支持手动编辑配置文件(不推荐)
- 配置更改后需重启调度器生效
## 配置文件示例
```json
{
"enabled": true,
"market": "CN",
"trading_hours": {
"CN": [
{"start": "09:30", "end": "11:30"},
{"start": "13:00", "end": "15:00"}
],
"US": [
{"start": "21:30", "end": "04:00"}
],
"HK": [
{"start": "09:30", "end": "12:00"},
{"start": "13:00", "end": "16:00"}
]
},
"trading_days": [1, 2, 3, 4, 5],
"auto_stop": true,
"pre_market_minutes": 5,
"post_market_minutes": 5
}
```
## 注意事项
### 1. 独立运行
- 定时调度器独立于手动启动/停止按钮
- 即使调度器在运行,仍可手动控制监测服务
- 手动操作不会影响调度器的自动检测
### 2. 节假日处理
- 当前版本仅支持按周几判断交易日
- 不会自动识别法定节假日
- 遇到节假日需要手动停止调度器或监测服务
### 3. 性能影响
- 调度器每分钟检测一次,资源消耗极低
- 不会影响监测服务的正常运行
- 建议在服务器或长期运行的电脑上使用
### 4. 跨天交易
- 支持跨天的交易时间(如美股)
- 时间判断会自动处理跨天情况
## 使用场景
### 场景1: 上班族自动监测
- 设置为中国A股市场
- 启用定时调度
- 工作日交易时间自动监测,下班后自动停止
### 场景2: 24小时服务器运行
- 根据关注的市场设置交易时间
- 启用自动停止,节省服务器资源
- 仅在交易时间运行监测
### 场景3: 多市场混合监测
- 如果监测多个市场的股票,选择主要市场
- 或不启用自动停止,手动控制
- 根据需要切换市场设置
## 故障排查
### 调度器无法启动
1. 检查是否已启用定时调度
2. 查看控制台是否有错误信息
3. 尝试重启应用
### 没有自动启动监测
1. 确认调度器正在运行
2. 检查当前是否为交易日和交易时间
3. 查看配置是否正确保存
### 配置无法保存
1. 检查文件写入权限
2. 查看是否有文件锁定
3. 尝试手动删除配置文件重新生成
## 技术说明
### 核心文件
- `monitor_scheduler.py`: 调度器核心模块
- `monitor_service.py`: 监测服务(已集成调度器)
- `monitor_manager.py`: UI管理界面(包含调度设置)
- `monitor_schedule_config.json`: 配置文件(自动生成)
### 依赖库
- `schedule`: Python定时任务库
- `threading`: 多线程支持
### 扩展性
代码设计支持以下扩展:
- 添加更多市场
- 自定义交易时间
- 接入节假日API
- 邮件/通知提醒
## 更新日志
### v1.0.0 (2024-10-16)
- ✅ 初始版本发布
- ✅ 支持中国A股、美股、港股三个市场
- ✅ 实现交易日和交易时间自动判断
- ✅ 支持自动启动和停止
- ✅ 提供完整的UI配置界面
- ✅ 智能检测机制,每分钟自动调整
## 反馈与支持
如有问题或建议,请:
1. 检查本文档的故障排查部分
2. 查看控制台输出的错误信息
3. 提交问题反馈
---
**祝您使用愉快!** 🎉