# stock-nine-turn-reminder **Repository Path**: jumperGo/stock-nine-turn-reminder ## Basic Information - **Project Name**: stock-nine-turn-reminder - **Description**: 量化策略监测-神奇九转策略检测提醒工具v2.0 - **Primary Language**: Python - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 14 - **Created**: 2025-12-29 - **Last Updated**: 2025-12-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 股票监控系统 - 神奇九转策略分析工具 v2.0 ## 项目概述 ### 项目目标 开发基于Python的股票监控工具,支持实时股票价格查询、神奇九转策略分析、趋势图表展示和交易信号提醒。 ### 核心功能 - 📊 实时股票数据获取(沪深A股) - 🔍 神奇九转策略自动识别与分析 - 📈 交互式K线图表展示 - 🔔 智能提醒通知系统 - ⚡ 跨平台兼容(Windows/Linux) - 🖥️ 命令行与GUI双模式支持 ## 技术架构 ### 系统架构图 ``` ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ 数据获取层 │ │ 业务逻辑层 │ │ 用户界面层 │ │ │ │ │ │ │ │ ├─ 新浪财经API │◄──►│ ├─ 九转算法引擎 │◄──►│ ├─ 主控制面板 │ │ ├─ 模拟数据源 │ │ ├─ 数据处理器 │ │ ├─ K线图表展示 │ │ └─ 数据缓存器 │ │ └─ 信号管理器 │ │ └─ 提醒通知器 │ └─────────────────┘ └─────────────────┘ └─────────────────┘ ``` ### 技术栈 - **后端**: Python 3.8+ - **GUI框架**: Tkinter (内置) - **图表库**: Matplotlib, NumPy, Pandas - **网络请求**: requests - **数据格式**: JSON, YAML - **测试框架**: pytest - **日志系统**: Python logging ## 项目结构 ``` stock-nine-turn-reminder/ ├── src/ # 源代码目录 │ ├── data/ # 数据获取模块 │ │ ├── data_source.py # 数据源管理 │ │ ├── data_manager.py# 数据处理器 │ │ └── models.py # 数据模型 │ ├── algorithm/ # 算法模块 │ │ └── nine_turn.py # 九转算法实现 │ ├── ui/ # 用户界面模块 │ │ ├── kline_chart.py # K线图表 │ │ └── chart_canvas.py# 图表画布 │ ├── utils/ # 工具模块 │ │ ├── config.py # 配置管理 │ │ └── display_manager.py# 显示管理 │ └── main.py # 主程序入口 ├── test/ # 测试目录 │ ├── unit/ # 单元测试 │ ├── integration/ # 集成测试 │ ├── functional/ # 功能测试 │ └── performance/ # 性能测试 ├── config/ # 配置文件 │ └── config.yaml # 系统配置 ├── logs/ # 日志目录 ├── data/ # 数据目录 ├── docs/ # 文档目录 ├── run.py # 启动脚本 └── requirements.txt # 依赖列表 ``` ## 快速开始 ### 环境要求 - Python 3.8+ ### 安装依赖 ```bash pip install -r requirements.txt ``` ### 运行方式 1. **GUI模式**(推荐) ```bash python run.py ``` 2. **命令行参数** ```bash # 调试模式 python run.py --debug # 运行测试 python run.py --test ``` 3. **批处理脚本** - Windows: 运行 `run_monitor.bat` - Linux/Mac: 运行 `run_monitor.sh` ## 功能特性 ### 数据获取 - ✅ 支持沪深A股实时数据 - ✅ 多数据源自动切换(新浪财经API、模拟数据源) - ✅ 请求优化和错误处理 - ✅ 数据缓存机制 - ✅ 分钟级数据支持 ### 九转算法 - ✅ 精确的九转序列识别 - ✅ 颜色编码点位标记(5-6级、7-8级、9级不同颜色) - ✅ 序列中断和重置机制 - ✅ 趋势判断和阈值配置 - ✅ 点位管理系统 - ✅ 时间索引唯一性保证 ### 用户界面 - ✅ 直观的K线图表展示 - ✅ 实时图表更新 - ✅ 多窗口管理 - ✅ 点位标记高亮显示 - ✅ 图表缩放和平移 ### 通知系统 - ✅ 智能提醒通知 - ✅ 声音警报 - ✅ 弹窗通知 - ✅ 可配置通知参数 ## 配置说明 系统配置通过 `config/config.yaml` 文件进行管理,包括: - 数据源配置 - 算法参数 - UI设置 - 日志配置 - 通知设置 ## 测试 ### 运行测试 - 命令行: `python run.py --test` - 批处理脚本: - Windows: 运行 `run_test.bat` - Linux/Mac: 运行 `test/run_test.sh` - pytest: `python -m pytest test/` ### 测试覆盖范围 - 储备点位时间索引唯一性测试 - 正式点位编号为正数测试 - 点位类型判断逻辑测试 - point_time_index为None时的处理测试 - 分钟模式算法验证测试 - 多重中断场景测试 - 点位管理修复验证测试 ### 测试目录结构 ``` test/ ├── unit/ # 单元测试 ├── integration/ # 集成测试 ├── functional/ # 功能测试 ├── performance/ # 性能测试 └── e2e/ # 端到端测试 ``` ## 项目状态 ### 已完成功能 - ✅ 完整的九转算法实现 - ✅ K线图表展示 - ✅ 实时数据获取 - ✅ 点位管理系统 - ✅ 通知提醒功能 - ✅ 配置管理系统 - ✅ 日志系统 - ✅ 测试框架 - ✅ 分钟模式支持 - ✅ 多重中断处理 ### 最新更新 - 点位时间索引唯一性修复 - 分钟模式算法优化 - 显示和日志系统增强 - 点位管理逻辑重构 ## 项目日志 ### 主要修复记录 - 点位编号管理优化 - 序列中断逻辑完善 - 显示更新机制改进 - 暂停恢复功能修复 详细记录请参考项目根目录下的各类修复文档: - `FIXES_SUMMARY.md` - `POINT_MANAGEMENT_FIX_SUMMARY.md` - `MINUTE_MODE_FINAL_FIX_SUMMARY.md` ## 故障排除 ### 常见问题 1. **无法获取实时数据** - 检查网络连接 - 确认股票代码格式正确 - 查看日志文件 `logs/stock_monitor.log` 2. **图表显示异常** - 确认matplotlib版本兼容性 - 检查数据格式是否正确 3. **通知不显示** - 检查系统通知权限 - 确认config.yaml中通知配置正确 ## 开发指南 ### 代码规范 - 遵循PEP 8代码风格 - 使用类型提示 - 添加适当的注释和文档字符串 - 保持函数和类的单一职责原则 ### 提交规范 - 提交前运行测试 - 确保代码风格符合规范 - 添加必要的测试用例 - 更新相关文档 ## 许可证 MIT License ## 贡献指南 欢迎提交Issue和Pull Request来改进项目。在贡献代码前,请: 1. 阅读项目文档 2. 运行现有测试确保通过 3. 添加新功能的测试用例 4. 确保代码符合项目规范