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