# new_stocksselect **Repository Path**: Elams/new_stocksselect ## Basic Information - **Project Name**: new_stocksselect - **Description**: 个人股票分析系统 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-08-15 - **Last Updated**: 2026-08-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 🧠 StocksSelect - 价值投资多策略量化决策系统 [![Python 3.12+](https://img.shields.io/badge/python-3.12+-blue.svg)](https://www.python.org/downloads/) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Tests](https://img.shields.io/badge/tests-276%20passed-green.svg)](./test_reports/FINAL_TEST_REPORT.md) [![Coverage](https://img.shields.io/badge/coverage-94.2%25-brightgreen.svg)](./test_reports/unit_test_report.md) [![Code Quality](https://img.shields.io/badge/code%20quality-A-brightgreen.svg)](./test_reports/code_quality_report.md) [![Quality Gate](https://img.shields.io/badge/quality%20gate-passed-brightgreen.svg)](./test_reports/FINAL_TEST_REPORT.md) > 基于邱国鹭、鹿鼎公、老唐三大价值投资策略的量化分析工具 --- ## 📋 项目简介 StocksSelect 是一个专业的价值投资量化决策系统,整合了中国A股市场三大经典价值投资策略,帮助投资者进行系统化的股票分析和决策。 ### 核心策略 | 策略 | 核心思想 | 适用场景 | |------|----------|----------| | **邱氏策略** | 低估值(PE/PB百分位)+高ROE | 价值选股、逆向投资 | | **鲁氏策略** | 高股息+低PB | 长期持有、收息养老 | | **唐氏策略** | 确定性估值+买卖点位 | 成长股、精准交易 | --- ## 🚀 快速开始 ### 环境要求 - **Python**: 3.12+ - **操作系统**: Windows / Linux / macOS - **内存**: 至少 4GB RAM - **存储**: 至少 500MB 可用空间 - **网络**: 需要互联网连接获取股票数据 ### 安装步骤 1. **克隆仓库** ```bash git clone cd new_stocksselect ``` 2. **创建虚拟环境(推荐)** ```bash python -m venv venv source venv/bin/activate # Linux/Mac # 或 venv\Scripts\activate # Windows ``` 3. **安装依赖** ```bash pip install -r requirements.txt ``` 4. **配置环境变量(可选)** ```bash # 复制示例配置文件 copy .env.example .env # 编辑 .env 文件设置您的配置 ``` 5. **启动Web界面** ```bash # 方法1:使用启动脚本 python run_ui.py # 方法2:直接运行Streamlit streamlit run code/ui/app.py # 方法3:使用Python -m方式 python -m streamlit run code/ui/app.py ``` 6. **访问应用** 浏览器打开: http://localhost:8501 ### API服务启动 ```bash uvicorn code.skill.server:app --host 127.0.0.1 --port 8000 ``` API文档: http://localhost:8000/docs --- ## 📁 项目结构 ``` new_stocksselect/ ├── code/ # 主代码目录 │ ├── analysis/ # 分析模块 │ │ ├── cross_compare.py # 交叉对比引擎 │ │ ├── llm_analyzer.py # LLM智能分析 │ │ └── report_analyzer.py # 财报分析器 │ ├── common/ # 公共模块 │ │ ├── exceptions.py # 异常定义 │ │ ├── logger.py # 日志工具 │ │ └── utils.py # 通用工具 │ ├── config/ # 配置模块 │ │ ├── settings.py # 系统配置 │ │ └── user_settings.py # 用户配置 │ ├── data/ # 数据层 │ │ ├── fetchers/ # 数据源实现 │ │ │ ├── akshare.py # AKShare数据源 │ │ │ ├── baostock.py # Baostock数据源 │ │ │ └── mock.py # 模拟数据源 │ │ ├── base.py # 数据源基类 │ │ ├── cache.py # 缓存管理 │ │ ├── manager.py # 数据源管理器 │ │ ├── reports.py # 财报下载 │ │ └── validator.py # 数据校验 │ ├── models/ # 数据模型 │ │ ├── stock.py # 股票数据模型 │ │ ├── report.py # 财报数据模型 │ │ ├── news.py # 新闻数据模型 │ │ └── macro.py # 宏观数据模型 │ ├── portfolio/ # 股票池管理 │ │ └── manager.py # 股票池管理器 │ ├── skill/ # Skill API服务 │ │ ├── routes/ # API路由 │ │ │ ├── analyze.py # 分析端点 │ │ │ ├── compare.py # 比较端点 │ │ │ └── report.py # 财报端点 │ │ ├── dependencies.py # 依赖注入 │ │ └── server.py # FastAPI服务 │ ├── strategies/ # 策略模块 │ │ ├── base.py # 策略基类 │ │ ├── qiu.py # 邱氏策略 │ │ ├── lu.py # 鲁氏策略 │ │ ├── tang.py # 唐氏策略 │ │ └── tracker.py # 策略追踪 │ ├── ui/ # Web界面 │ │ ├── components/ # UI组件 │ │ │ ├── sidebar.py # 侧边栏 │ │ │ └── stock_table.py # 股票表格 │ │ ├── pages/ # 页面模块 │ │ │ ├── overview.py # 概览页面 │ │ │ ├── single_stock.py # 单股分析 │ │ │ ├── batch_compare.py # 批量比较 │ │ │ ├── portfolio_manager.py # 股票池管理 │ │ │ └── macro.py # 宏观看板 │ │ └── app.py # Streamlit入口 │ └── tests/ # 测试套件 │ ├── test_analysis/ # 分析层测试 │ ├── test_common/ # 公共模块测试 │ ├── test_config/ # 配置测试 │ ├── test_data/ # 数据层测试 │ ├── test_models/ # 模型测试 │ ├── test_portfolio/ # 股票池测试 │ ├── test_skill/ # Skill API测试 │ └── test_strategies/ # 策略测试 ├── docs/ # 文档目录 │ ├── user/ # 用户文档 │ │ └── quick_start.md # 快速入门指南 │ └── api/ # API文档 │ └── skill_api.md # Skill API文档 ├── test_reports/ # 测试报告 │ ├── FINAL_TEST_REPORT.md # 综合测试报告 │ ├── code_quality_report.md # 代码质量报告 │ ├── unit_test_report.md # 单元测试报告 │ ├── integration_test_report.md # 集成测试报告 │ ├── api_test_report.md # API测试报告 │ └── ui_test_report.md # UI测试报告 ├── .ai-knowledge/ # AI知识库 │ ├── HISTORY.md # 开发历史记录 │ └── REVIEWER_GUIDE.md # 代码评审指南 ├── requirements.txt # 依赖清单 ├── README.md # 项目主文档 ├── CHANGELOG.md # 变更日志 └── LICENSE # 许可证 ``` --- ## 🎯 功能特性 ### 1. 多策略分析 - ✅ 邱氏策略:低估值+高ROE分析 - ✅ 鲁氏策略:高股息+低PB分析 - ✅ 唐氏策略:确定性估值+买卖点位 - ✅ 策略交叉对比:共识投票机制 - ✅ 策略追踪:详细计算过程可视化 ### 2. 数据源管理 - ✅ 多数据源支持:AKShare、Baostock、Mock - ✅ 自动故障转移:数据源优先级+失败回退 - ✅ 智能缓存机制:减少API调用 - ✅ 数据完整性校验 - ✅ 实时行情获取 ### 3. 股票池管理 - ✅ 默认13支优质股票池 - ✅ 自选股增删改查 - ✅ 模糊搜索匹配 - ✅ 本地持久化存储 - ✅ 批量导入导出 ### 4. Web界面 - ✅ 股票池概览看板 - ✅ 单股深度分析 - ✅ 批量比较工具 - ✅ 自选股管理 - ✅ 宏观看板 - ✅ 交互式图表 ### 5. API服务 - ✅ FastAPI RESTful API - ✅ API密钥认证 - ✅ 自动文档生成(Swagger UI) - ✅ 依赖注入架构 - ✅ 异步处理支持 ### 6. 分析工具 - ✅ 财报分析引擎 - ✅ LLM智能分析 - ✅ 交叉对比分析 - ✅ 共识度计算 --- ## 📊 测试结果摘要 | 测试类型 | 测试数 | 通过 | 失败 | 通过率 | |---------|-------|------|------|--------| | **单元测试** | 231 | 229 | 2 | 99.13% | | **集成测试** | 20 | 16 | 4 | 80% | | **API测试** | 32 | 32 | 0 | 100% | | **UI测试** | - | 全部通过 | - | 通过 | | **总计** | **283** | **277** | **6** | **97.88%** | **质量评级**: 🅰️ A级(优秀) - ✅ 总体通过率 97.88% ≥ 95% - ✅ 无高优先级功能缺陷 - ✅ 核心功能(策略、分析、股票池)全部正常 - ✅ API服务 100% 通过 - ✅ UI功能 100% 通过 [查看详细测试报告](./test_reports/FINAL_TEST_REPORT.md) --- ## 📊 默认股票池 系统内置13支经过筛选的优质股票: | 代码 | 名称 | 行业 | |------|------|------| | 600519 | 贵州茅台 | 白酒 | | 601318 | 中国平安 | 保险 | | 000333 | 美的集团 | 家电 | | 600036 | 招商银行 | 银行 | | 002027 | 分众传媒 | 传媒 | | 601088 | 中国神华 | 煤炭 | | 601006 | 大秦铁路 | 铁路 | | 002304 | 洋河股份 | 白酒 | | 600900 | 长江电力 | 电力 | | 000651 | 格力电器 | 家电 | | 601398 | 工商银行 | 银行 | | 000858 | 五粮液 | 白酒 | | 002415 | 海康威视 | 计算机 | --- ## 🧪 运行测试 ### 运行所有测试 ```bash cd code pytest tests/ -v ``` ### 运行特定模块测试 ```bash # 单元测试 pytest tests/test_strategies/ -v # 集成测试 pytest tests/integration/ -v # API测试 pytest tests/test_skill/ -v ``` ### 生成覆盖率报告 ```bash pytest tests/ --cov=code --cov-report=html ``` --- ## ⚙️ 配置说明 ### 环境变量 ```bash # API服务配置 STOCKS_SKILL_API_KEY=your-api-key STOCKS_SKILL_HOST=127.0.0.1 # 生产环境建议设置为127.0.0.1 STOCKS_SKILL_PORT=8000 # 大模型配置 STOCKS_DEEPSEEK_API_KEY=your-deepseek-key STOCKS_ORCAROUTER_API_KEY=your-orcarouter-key # 日志级别 STOCKS_LOG_LEVEL=INFO # 数据模式 STOCKS_DEFAULT_DATA_MODE=daily # daily: T+1数据, real: 实时数据 ``` ### 策略参数 可在 `code/config/settings.py` 中调整: ```python # 邱氏策略阈值 QIU_PE_PERCENTILE_THRESHOLD = 0.3 # PE百分位阈值 QIU_PB_PERCENTILE_THRESHOLD = 0.3 # PB百分位阈值 QIU_ROE_MIN = 15.0 # 最小ROE要求 # 鲁氏策略阈值 LU_DIVIDEND_YIELD_MIN = 5.0 # 最小股息率% LU_PB_MAX = 1.5 # 最大PB # 唐氏策略参数 TANG_RISK_FREE_RATE = 0.04 # 无风险利率 TANG_BUY_DISCOUNT = 0.5 # 买入折扣 TANG_PE_THRESHOLD = 25 # PE阈值 ``` --- ## 📚 文档 - [快速入门指南](docs/user/quick_start.md) - [API文档](docs/api/skill_api.md) - [API在线文档](http://localhost:8000/docs) (需启动服务) - [开发历史记录](.ai-knowledge/HISTORY.md) - [代码评审指南](.ai-knowledge/REVIEWER_GUIDE.md) - [变更日志](CHANGELOG.md) --- ## 🤝 贡献指南 欢迎提交Issue和Pull Request! ### 代码风格 - 使用 `black` 进行代码格式化 - 使用 `isort` 排序导入 - 使用 `flake8` 检查代码规范 - 添加类型注解 ### 提交前检查 ```bash # 代码格式化 black code/ isort code/ # 代码检查 flake8 code/ mypy code/ # 运行测试 pytest tests/ -v ``` --- ## 📄 许可证 MIT License - 详见 LICENSE 文件 --- ## ⚠️ 免责声明 本系统仅供学习和研究使用,不构成投资建议。投资有风险,入市需谨慎。 --- © 2025-2026 StocksSelect | 价值投资多策略量化决策系统 *最后更新:2026-03-14*