# yuqing-project **Repository Path**: qtfy2020/yuqing-project ## Basic Information - **Project Name**: yuqing-project - **Description**: 股票分析系统 - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-11-24 - **Last Updated**: 2025-11-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 股票分析系统 一个智能的股票分析系统,将股票与政策、新闻、舆情、公司资料、资金流向等数据关联起来,用于分析股票的利好利空。 ## 🚨 开发人员必读 > **⚠️ 新建聊天窗口前必须阅读:** > - 📋 **[PROJECT_RULES.md](./PROJECT_RULES.md)** - 项目开发规范 > - 🔄 **[WORKFLOW_GUIDE.md](./WORKFLOW_GUIDE.md)** - 工作流程指南 > > **严格禁止在根目录创建 `test_*.py` / demo文件 / 进度文件!** ## 🎯 功能特性 ### 核心功能 - **股票数据采集**: 自动采集股票基本信息、价格、资金流向等数据 - **新闻数据采集**: 采集相关新闻数据 - **涨停数据采集**: 采集涨停板相关数据 - **综合分析**: 执行综合数据分析 - **柚子筛选**: 执行柚子筛选策略 - **行业相关性分析**: 分析行业相关性矩阵,生成聚类和投资建议 ### 高级功能 - **龙虎榜分析**: 分析龙虎榜数据 - **大额交易追踪**: 追踪大额交易信息 - **游资追踪**: 追踪游资活动 - **定时任务调度**: 支持定时执行各种任务 - **Web界面**: 提供友好的Web管理界面 ### 📊 分析维度 ### 技术分析 - **技术指标**: 移动平均线、MACD、RSI、KDJ等 - **趋势分析**: 支撑阻力位、趋势线分析 - **形态识别**: 头肩顶、双顶、三角形等形态 ### 基本面分析 - **财务指标**: 市盈率、市净率、ROE等 - **行业分析**: 行业地位、竞争优势 - **政策影响**: 政策对行业和公司的影响 ### 资金面分析 - **资金流向**: 主力资金、北向资金流向 - **大单交易**: 大额交易监控 - **游资活动**: 游资买卖行为分析 ### 行业相关性分析 - **相关性矩阵**: 计算行业间的相关性系数 - **行业聚类**: 基于相关性进行行业分组 - **强弱分析**: 识别强势和弱势行业 - **投资建议**: 基于分析结果生成投资建议 ### 🔍 数据源 - **股票数据**: akshare、tushare - **新闻数据**: News API - **政策数据**: 政府网站、新闻媒体 - **舆情数据**: 社交媒体、新闻评论 - **资金流向**: 实时资金流向数据 ### 🆕 新增功能 - **涨停股采集**: 专门采集涨停股数据,统计分析涨停趋势 - **席位分析**: 分析知名席位活动,追踪游资操作模式 - **游资筛选**: 基于涨停池和龙虎榜的游资首板筛选 - **技术指标**: 15种技术指标计算,支持游资五件套 - **通知系统**: 独立的钉钉通知模块,支持多种通知类型 - **综合分析**: 市场概况、情绪分析、风险预警 - **定时任务调度器**: 独立的定时任务调度系统,支持数据采集和分析任务的自动化执行 - **任务管理**: 可视化定时任务管理,支持采集和分析任务调度 ## 系统架构 ``` 股票分析系统/ ├── config.py # 配置文件 ├── main.py # 主程序入口 ├── run_analysis.py # 分析模块入口 ├── requirements.txt # 依赖包列表 ├── README.md # 项目说明 ├── database/ # 数据库模块 │ ├── models.py # 数据模型 │ └── stock_manager.py # 股票管理器 ├── data_collectors/ # 数据采集模块 │ ├── stock_collector.py # 股票数据采集 │ ├── news_collector.py # 新闻数据采集 │ ├── collection_manager.py # 采集管理器 │ └── zt_collector.py # 涨停股采集器 ├── analysis/ # 分析模块 │ ├── comprehensive_analyzer.py # 综合分析器 │ └── seat_analyzer.py # 席位分析器 ├── screening/ # 筛选模块 │ └── youzi_screener.py # 游资筛选器 ├── indicators/ # 技术指标模块 │ ├── technical_indicators.py # 通用技术指标 │ ├── screening_indicators.py # 筛选技术指标 │ └── config.py # 技术指标配置 ├── notifications/ # 通知模块 │ ├── dingtalk_notifier.py # 钉钉通知 │ └── notification_manager.py # 通知管理器 ├── scheduler/ # 定时任务模块 │ ├── models.py # 任务数据模型 │ ├── task_manager.py # 任务管理器 │ └── task_scheduler.py # 任务调度器 ├── web/ # Web服务模块 │ ├── app.py # Flask应用 │ ├── templates/ # 前端模板 │ └── static/ # 静态资源 ├── test/ # 测试模块 │ ├── test_comprehensive_analysis.py │ └── test_youzi_screener.py └── logs/ # 日志目录 ``` ## 安装和运行 ### 1. 环境要求 - Python 3.8+ - SQLite 3 - 网络连接 ### 2. 安装依赖 ```bash pip install -r requirements.txt ``` ### 3. 配置环境变量 创建 `.env` 文件并配置以下参数: ```env # 数据库配置 DATABASE_URL=sqlite:///stock_analysis.db # API密钥配置 TUSHARE_TOKEN=your_tushare_token NEWS_API_KEY=your_news_api_key # 系统配置 UPDATE_INTERVAL=30 LOG_LEVEL=INFO FLASK_HOST=0.0.0.0 FLASK_PORT=5000 FLASK_DEBUG=False ``` ### 4. 运行系统 #### 方式一:启动完整系统(包含定时任务调度器) ```bash python main.py ``` #### 方式二:仅启动定时任务调度器 ```bash python run_scheduler.py ``` #### 方式三:仅启动Web服务 ```bash python run_web.py ``` ### 5. 访问Web界面 打开浏览器访问: http://localhost:5000 ### 6. 运行测试 ```bash # 运行综合分析测试 python test/test_comprehensive_analysis.py # 运行游资筛选测试 python test/test_youzi_screener.py # 运行技术指标测试 python test/test_indicators.py # 运行定时任务测试 python test/test_scheduler.py # 运行分析模块 python run_analysis.py ``` ## 使用说明 ### Web界面功能 #### 1. 仪表板 - 显示所有股票的综合分析结果 - 按综合得分排序 - 显示投资建议和风险等级 #### 2. 股票列表 - 查看所有股票的基本信息 - 支持按行业、关键词、等级筛选 - 点击查看详细分析 #### 3. 股票详情 - 基本信息:代码、名称、行业、市值等 - 最新价格:当前价格和涨跌幅 - 分析结果:多维度得分和投资建议 - 价格走势:K线图显示 #### 4. 分析工具 - 输入股票代码进行实时分析 - 生成最新的分析报告 #### 5. 新闻资讯 - 查看相关新闻 - 显示情感分析结果 #### 6. 定时任务管理 - 查看所有定时任务状态 - 启用/禁用任务 - 查看任务执行日志 - 手动执行任务 - 配置任务执行时间和频率 ### 定时任务调度器 系统现在支持独立的定时任务调度器,可以自动执行以下任务: #### 默认任务配置 - **股票数据采集**: 每30分钟执行一次,交易时间内 - **新闻数据采集**: 每60分钟执行一次,工作日9:00-18:00 - **涨停股采集**: 每15分钟执行一次,交易时间内 - **综合分析**: 每2小时执行一次,交易时间内 - **游资筛选**: 每60分钟执行一次,交易时间内 #### 任务执行时间 - 工作日:周一至周五 - 交易时间:09:30-11:30, 13:00-15:00 - 新闻采集时间:09:00-18:00 #### 启动方式 ```bash # 启动定时任务调度器(包含Web界面) python main.py # 仅启动定时任务调度器(后台运行) python run_scheduler.py ``` ### API接口 #### 获取股票列表 ``` GET /api/stocks ``` #### 获取股票详情 ``` GET /api/stock/{symbol} ``` #### 获取股票价格数据 ``` GET /api/stock/{symbol}/price ``` #### 获取股票相关新闻 ``` GET /api/stock/{symbol}/news ``` #### 获取股票相关政策 ``` GET /api/stock/{symbol}/policies ``` #### 获取股票舆情数据 ``` GET /api/stock/{symbol}/sentiment ``` #### 获取股票资金流向 ``` GET /api/stock/{symbol}/fund_flow ``` #### 分析股票 ``` GET /api/analyze/{symbol} ``` #### 获取仪表板数据 ``` GET /api/dashboard ``` #### 获取采集状态 ``` GET /api/collection/status ``` #### 获取待采集任务 ``` GET /api/collection/pending ``` #### 重置采集时间 ``` GET /api/collection/reset/{collection_type} ``` ## 配置说明 ### 股票配置 在 `config.py` 中修改 `STOCK_SYMBOLS` 来添加或删除要分析的股票: ```python STOCK_SYMBOLS = [ '000001', '000002', '000858', '002415', '600036', '600519', '000858', '002594', '000725', '002230' ] ``` ### 政策关键词 修改 `POLICY_KEYWORDS` 来调整政策识别关键词: ```python POLICY_KEYWORDS = [ '政策', '法规', '规定', '通知', '意见', '办法', '条例', '央行', '证监会', '银保监会', '发改委', '财政部' ] ``` ### 情感分析关键词 修改 `POSITIVE_KEYWORDS` 和 `NEGATIVE_KEYWORDS` 来调整情感分析: ```python POSITIVE_KEYWORDS = [ '利好', '上涨', '增长', '盈利', '突破', '创新', '合作' ] NEGATIVE_KEYWORDS = [ '利空', '下跌', '亏损', '风险', '违规', '处罚', '退市' ] ``` ## 分析逻辑 ### 1. 影响分析 - **政策影响**: 基于政策类型、影响程度、行业匹配度计算影响 - **新闻影响**: 基于情感得分、相关性、时效性计算影响 - **影响方向**: 利好/利空/中性 - **置信度**: 基于多个因素的综合评估 ### 2. 综合分析 - **技术面(20%)**: RSI、MACD、布林带、移动平均线 - **基本面(0%)**: 市盈率、市净率、市值(当前未启用) - **情感面(30%)**: 新闻和舆情的情感倾向 - **政策面(10%)**: 政策影响评估 - **资金面(20%)**: 主力资金流向 - **公司动作(15%)**: 公司内部政策 - **波动率(5%)**: 价格波动分析 ### 3. 投资建议 - **强烈推荐**: 综合得分 ≥ 70 - **推荐**: 综合得分 ≥ 60 - **观望**: 综合得分 ≥ 50 - **谨慎**: 综合得分 ≥ 40 - **不推荐**: 综合得分 < 40 ## 技术栈 ### 后端 - **Python 3.8+**: 主要开发语言 - **Flask**: Web框架 - **SQLAlchemy**: ORM框架 - **SQLite**: 数据库 - **akshare 1.16.72**: 股票数据API(支持实时行情) - **tushare**: 股票数据API - **snownlp**: 中文情感分析 - **jieba**: 中文分词 - **scikit-learn**: 机器学习 - **aiohttp 3.11.13**: 异步HTTP客户端 ### 前端 - **Bootstrap 5**: UI框架 - **Chart.js**: 图表库 - **Plotly.js**: 高级图表 - **JavaScript**: 前端交互 ### 数据处理 - **pandas**: 数据处理 - **numpy**: 数值计算 - **matplotlib/seaborn**: 数据可视化 ## 开发计划 ### 已完成功能 - [x] 基础数据采集框架 - [x] 股票数据采集 - [x] 实时行情数据采集(akshare 1.16.72) - [x] 新闻数据采集 - [x] 情感分析 - [x] 影响分析 - [x] 综合分析 - [x] Web界面 - [x] API接口 - [x] 采集时间管理(避免重复采集) - [x] 龙虎榜数据采集 - [x] 大额交易数据采集 - [x] 游资追踪功能 - [x] 股票等级管理系统 - [x] 智能采集频率控制 - [x] 测试框架(使用akshare真实数据) ### 计划功能 - [ ] 机器学习模型训练 - [ ] 预测功能 - [ ] 更多数据源集成 - [ ] 实时数据推送 - [ ] 移动端适配 - [ ] 用户系统 - [ ] 个性化推荐 ## 采集时间管理 系统内置智能采集时间管理,避免重复采集数据: ### 采集间隔配置 - **股票基本信息**: 24小时 - **股票价格数据**: 1小时 - **资金流向数据**: 4小时 - **实时行情数据**: 15分钟 - **新闻数据**: 2小时 - **政策数据**: 6小时 - **舆情数据**: 3小时 - **分析结果**: 12小时 - **龙虎榜数据**: 1天 - **大额交易数据**: 1天 - **游资追踪数据**: 1天 ### 股票等级采集频率 - **0级**: 不采集 - **1级**: 每周采集一次 - **2级**: 每3天采集一次 - **3级**: 每天采集一次 ### 采集状态监控 - 系统自动记录每次采集的时间和结果 - 提供API接口查看采集状态 - 支持手动重置采集时间 ### API接口 ``` GET /api/collection/status # 获取采集状态 GET /api/collection/pending # 获取待采集任务 GET /api/collection/reset/ # 重置采集时间 ``` ## 新增功能详解 ### 龙虎榜数据采集 - 使用akshare采集每日龙虎榜数据 - 记录上榜原因、买卖席位详情 - 分析游资操作模式 - 支持按股票等级筛选 - 基于真实市场数据 ### 大额交易监控 - 使用akshare监控大额交易数据 - 追踪机构资金动向 - 分析交易类型和金额 - 记录买卖双方信息 - 基于真实市场数据 ### 游资追踪系统 - 基于龙虎榜数据追踪游资 - 分析游资持仓和操作 - 计算游资盈利情况 - 预测游资下一步操作 - 基于真实市场数据 ### 实时行情采集 - 使用akshare 1.16.72新功能 - 支持实时行情数据采集 - 更新股票最新价格信息 - 提供实时涨跌幅数据 - 基于真实市场数据 ### 股票等级管理 - 根据股票等级设置采集频率 - 优化系统性能和资源使用 - 支持动态调整股票等级 - 提供等级筛选功能 - 基于真实市场数据 ## 注意事项 1. **API限制**: 部分数据源有API调用限制,请合理配置更新频率 2. **数据准确性**: 系统分析结果仅供参考,不构成投资建议 3. **网络要求**: 需要稳定的网络连接来获取实时数据 4. **存储空间**: 数据会随时间增长,注意磁盘空间 5. **采集时间**: 系统会自动判断是否需要采集,避免重复操作 6. **股票等级**: 建议根据股票重要程度设置合适的等级 ## 许可证 MIT License ## 贡献 欢迎提交Issue和Pull Request来改进这个项目。 ## 联系方式 如有问题或建议,请通过以下方式联系: - 提交Issue - 发送邮件 --- **免责声明**: 本系统仅供学习和研究使用,分析结果不构成投资建议。投资有风险,入市需谨慎。