4.3 KiB
4.3 KiB
数据库存储和Web展示功能
功能概述
本系统现已支持将策略筛选结果按策略分组存储到SQLite数据库,并提供Web界面进行可视化展示。
🗄️ 数据库设计
主要表结构
-
strategies - 策略表
- 存储不同的交易策略信息
- 支持策略配置参数的JSON存储
-
scan_sessions - 扫描会话表
- 记录每次市场扫描的信息
- 关联策略ID,记录扫描统计数据
-
stock_signals - 股票信号表
- 存储具体的股票筛选信号
- 包含完整的K线数据和技术指标
-
pullback_alerts - 回踩监控表
- 存储回踩提醒信息
- 关联原始信号,记录回踩详情
数据库文件位置
- 数据库文件:
data/trading.db - 建表脚本:
src/database/schema.sql
🌐 Web展示功能
启动Web服务
# 方法1: 使用启动脚本
python start_web.py
# 方法2: 直接运行
cd web
python app.py
访问地址
页面功能
1. 首页 (/)
- 策略统计概览
- 最新交易信号列表
- 最近回踩提醒
2. 交易信号页面 (/signals)
- 详细的信号列表
- 支持策略和时间范围筛选
- 分页显示
3. 回踩监控页面 (/pullbacks)
- 回踩提醒记录
- 风险等级分类
- 统计图表
API接口
GET /api/signals- 获取信号数据GET /api/stats- 获取策略统计GET /api/pullbacks- 获取回踩提醒
🔧 使用方法
1. 策略扫描自动存储
当运行K线形态策略扫描时,结果会自动存储到数据库:
from src.strategy.kline_pattern_strategy import KLinePatternStrategy
# 初始化策略(会自动创建数据库连接)
strategy = KLinePatternStrategy(data_fetcher, notification_manager, config)
# 执行市场扫描(结果自动存储到数据库)
results = strategy.scan_market()
2. 手动数据库操作
from src.database.database_manager import DatabaseManager
# 初始化数据库管理器
db_manager = DatabaseManager()
# 获取最新信号
signals = db_manager.get_latest_signals(limit=50)
# 获取策略统计
stats = db_manager.get_strategy_stats()
# 按日期范围查询
from datetime import date, timedelta
start_date = date.today() - timedelta(days=7)
recent_signals = db_manager.get_signals_by_date_range(start_date)
3. 多策略支持
系统支持多个策略的数据分别存储:
# 创建新策略
strategy_id = db_manager.create_or_update_strategy(
strategy_name="新策略名称",
strategy_type="strategy_type",
description="策略描述",
config={"param1": "value1"}
)
📊 数据库维护
清理旧数据
# 清理90天前的数据
db_manager.cleanup_old_data(days_to_keep=90)
备份数据库
# 复制数据库文件进行备份
cp data/trading.db data/trading_backup_$(date +%Y%m%d).db
🎨 Web界面特性
- 响应式设计: 支持桌面和移动设备
- 实时更新: 数据自动刷新
- 交互式表格: 支持排序、筛选
- 美观界面: 使用Bootstrap框架
- 数据导出: 支持CSV格式导出
🚀 性能优化
- 缓存机制: 股票名称缓存,避免重复请求
- 分页显示: 大数据量分页加载
- 索引优化: 数据库关键字段建立索引
- 批量操作: 信号批量保存,提高性能
🔍 故障排除
常见问题
-
数据库文件权限问题
# 检查data目录权限 ls -la data/ # 如果需要,修改权限 chmod 755 data/ chmod 644 data/trading.db -
Web界面无法访问
- 检查Flask是否已安装:
pip install flask - 确认端口5000是否被占用
- 查看控制台错误信息
- 检查Flask是否已安装:
-
数据库连接失败
- 确认data目录存在且可写
- 检查SQLite库是否正常工作
日志查看
# 查看应用日志
tail -f logs/trading.log
# 查看Web服务日志
# 直接在启动Web服务的终端查看
📈 未来扩展
- 支持更多数据库后端(MySQL, PostgreSQL)
- 添加用户认证和权限管理
- 实现策略回测结果存储
- 添加图表可视化功能
- 支持策略参数在线调整
- 实现数据导入导出功能