# AI 金融分析平台 基于 tushare 数据接口的智能股票筛选和分析系统,支持多种投资策略的量化评分和综合评估。 ## 功能特性 - **三维度综合分析**: 价值投资、成长投资、技术分析三大策略综合评估 - **智能筛选**: AI算法自动筛选优质股票,无需手动选择策略 - **交易信号分析**: 提供买入/卖出信号、止盈止损建议 - **实时数据**: 基于 tushare API 获取最新股票数据 - **智能评分**: AI 算法对股票进行综合评分和排名 - **可视化分析**: 直观的图表展示和财务指标分析 - **缓存优化**: Redis 缓存提升数据查询性能 ## 技术栈 - **后端**: FastAPI + Python 3.9+ - **前端**: Flask + HTML/CSS/JavaScript - **数据源**: Tushare API - **数据处理**: pandas, numpy, scikit-learn - **缓存**: Redis - **数据库**: SQLAlchemy (支持 SQLite/PostgreSQL) - **可视化**: Chart.js ## 快速开始 ### 方法一:Docker部署 (推荐) 使用Docker Compose可以一键部署整个应用,包括前端、后端和Redis缓存。 #### 1. 环境准备 ```bash # 确保已安装Docker和Docker Compose docker --version docker-compose --version # 克隆项目 git clone cd StockAgent ``` #### 2. 配置环境变量 ```bash # 复制环境变量模板 cp .env.docker .env # 编辑环境变量文件,设置你的tushare token vim .env # 或使用其他编辑器 ``` 在 `.env` 文件中设置: ```bash TUSHARE_TOKEN=your_tushare_token_here ``` #### 3. 启动服务 ```bash # 一键启动所有服务 docker-compose up -d # 查看服务状态 docker-compose ps # 查看日志 docker-compose logs -f ``` #### 4. 访问应用 - **Web界面**: http://localhost:5001 - **API文档**: http://localhost:8000/docs - **Redis管理**: localhost:6379 #### 5. 管理命令 ```bash # 停止服务 docker-compose down # 重启服务 docker-compose restart # 更新应用 docker-compose down docker-compose build --no-cache docker-compose up -d # 清理数据 docker-compose down -v # 警告:会删除Redis数据 ``` ### 方法二:本地开发部署 适合开发和调试环境。 #### 1. 环境配置 ```bash # 创建虚拟环境 python -m venv venv source venv/bin/activate # Windows: venv\Scripts\activate # 安装依赖 pip install -r requirements.txt # 配置环境变量 cp .env.example .env # 编辑 .env 文件,设置你的 tushare token ``` #### 2. 配置 tushare token 在 `.env` 文件中设置: ``` TUSHARE_TOKEN=your_tushare_token_here ``` #### 3. 启动服务 ```bash # 启动后端 API 服务 python main.py # 启动前端 Web 服务 (新终端) cd web && python app.py ``` #### 4. 访问应用 - **Web界面**: http://localhost:5001 (主要入口) - **API文档**: http://localhost:8000/docs (后端API) ## 投资策略详解 ### 价值投资策略 (40%权重) - **关注指标**: PE、PB、ROE、负债率、净利率、现金流 - **适合场景**: 寻找被低估的优质股票,长期投资 - **评分标准**: PE<15(优) PB<2(优) ROE>15%(优) 负债率<50%(优) ### 成长投资策略 (30%权重) - **关注指标**: 营收增长率、利润增长率、ROE、毛利率趋势 - **适合场景**: 寻找高成长潜力的股票,中长期投资 - **评分标准**: 营收增长>20%(优) 利润增长>15%(优) ROE>20%(优) ### 技术分析策略 (30%权重) - **关注指标**: 移动平均线、RSI、MACD、成交量、布林带、ADX - **适合场景**: 短期交易和趋势跟踪,交易时机判断 - **评分标准**: 趋势向上(25%) 动量健康(20%) 成交量配合(15%) ## 主要功能 ### 🔍 智能筛选 - **综合评分**: 三种策略加权平均,智能筛选优质股票 - **固定标准**: 综合评分≥60分,最多返回50只股票 - **自动识别**: 输入6位股票代码,自动识别交易所 ### 📊 综合分析 - **多维评估**: 同时从价值、成长、技术三个角度分析 - **详细评分**: 显示各策略的具体得分和综合评分 - **投资建议**: 基于评分给出BUY/HOLD/WATCH建议 ### 💹 交易信号 - **买卖时机**: 基于技术分析提供具体的买入/卖出信号 - **价格建议**: 智能推荐买入价格和卖出价格 - **风险管理**: 提供止盈止损建议和仓位管理 - **市场时机**: 评估当前市场环境和交易时机 ## API 接口 ### 单股综合分析 ```http POST /api/analyze Content-Type: application/json { "ts_code": "000001", "strategy": "technical" # value/growth/technical } ``` ### 智能综合筛选 ```http POST /api/screen Content-Type: application/json { "strategy": "comprehensive", "min_score": 60, "limit": 50 } ``` ### 获取股票基础数据 ```http GET /api/stocks ``` ## 项目结构 ``` StockAgent/ ├── src/ │ ├── data/ # 数据获取和存储 │ │ ├── tushare_client.py # Tushare数据接口 │ │ ├── database.py # 数据库操作 │ │ └── redis_cache.py # Redis缓存 │ ├── analysis/ # 分析计算模块 │ │ ├── financial_indicators.py # 财务指标计算 │ │ ├── technical_indicators.py # 技术指标计算 │ │ └── trading_signals.py # 交易信号分析 │ ├── strategies/ # 投资策略实现 │ │ ├── value_strategy.py # 价值投资策略 │ │ ├── growth_strategy.py # 成长投资策略 │ │ └── technical_strategy.py # 技术分析策略 │ └── utils/ # 工具函数 ├── web/ # Web前端 │ ├── app.py # Flask应用 │ ├── templates/ # HTML模板 │ └── static/ # CSS/JS静态文件 ├── config/ # 配置文件 ├── main.py # FastAPI后端主程序 └── requirements.txt # 依赖包 ``` ## 使用示例 ### Python API调用 ```python from src.data import TushareClient from src.strategies import ValueStrategy, GrowthStrategy, TechnicalStrategy # 初始化 client = TushareClient() value_strategy = ValueStrategy() growth_strategy = GrowthStrategy() technical_strategy = TechnicalStrategy() # 获取股票数据 financial_data = client.get_financial_data('000001.SZ') daily_data = client.get_stock_daily('000001.SZ') # 多策略评分 stock_data = { 'ts_code': '000001.SZ', 'financial_ratios': financial_data, 'technical_indicators': daily_data } value_score = value_strategy.calculate_score(stock_data) growth_score = growth_strategy.calculate_score(stock_data) technical_score = technical_strategy.calculate_score(stock_data) # 综合评分 (40% + 30% + 30%) comprehensive_score = value_score * 0.4 + growth_score * 0.3 + technical_score * 0.3 print(f"价值投资评分: {value_score}") print(f"成长投资评分: {growth_score}") print(f"技术分析评分: {technical_score}") print(f"综合评分: {comprehensive_score}") ``` ### Web界面使用 1. **访问**: 打开 http://localhost:5001 2. **筛选**: 点击"开始智能筛选"获取优质股票列表 3. **分析**: 输入股票代码进行单股详细分析 4. **决策**: 查看交易信号和投资建议 ## 特色功能 ### 🤖 智能化特性 - **自动股票代码识别**: 输入6位数字自动添加交易所后缀 - **综合策略评估**: 无需选择策略,自动三维度分析 - **智能交易建议**: 根据综合评分智能调整交易信号强度 ### 🛡️ 风险控制 - **多重验证**: 三种策略交叉验证,提高准确性 - **止损建议**: 基于ATR、布林带等技术指标动态计算 - **仓位管理**: 根据风险评级提供合理的仓位建议 ## 部署说明 ### 🐳 Docker部署架构 ``` ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ Frontend │ │ Backend │ │ Redis Cache │ │ (Flask) │────│ (FastAPI) │────│ (Redis) │ │ Port: 5001 │ │ Port: 8000 │ │ Port: 6379 │ └─────────────────┘ └─────────────────┘ └─────────────────┘ │ │ │ └────────────────────────┼────────────────────────┘ │ Docker Network: stockagent-network ``` ### 🔧 生产环境优化 对于生产环境部署,可以使用以下优化配置: #### 1. 创建生产环境Docker Compose文件 ```bash # 创建生产环境配置 cp docker-compose.yml docker-compose.prod.yml ``` #### 2. 生产环境配置优化 - 使用nginx反向代理 - 添加SSL证书支持 - 配置日志轮转 - 设置资源限制 - 添加监控和告警 ### 🔍 故障排除 #### 常见问题及解决方案 **1. Tushare Token配置问题** ```bash # 检查环境变量 docker-compose exec backend env | grep TUSHARE_TOKEN # 如果未设置,停止服务并重新配置 docker-compose down vim .env # 设置正确的token docker-compose up -d ``` **2. Redis连接问题** ```bash # 检查Redis服务状态 docker-compose exec redis redis-cli ping # 查看Redis日志 docker-compose logs redis ``` **3. 服务启动失败** ```bash # 查看详细日志 docker-compose logs backend docker-compose logs frontend # 重新构建镜像 docker-compose build --no-cache docker-compose up -d ``` **4. 端口冲突** ```bash # 检查端口占用 netstat -tlnp | grep :5001 netstat -tlnp | grep :8000 # 修改docker-compose.yml中的端口映射 ``` ### 📊 监控和维护 #### 1. 服务监控 ```bash # 查看服务状态 docker-compose ps # 查看资源使用情况 docker stats $(docker-compose ps -q) # 查看实时日志 docker-compose logs -f --tail=100 ``` #### 2. 数据备份 ```bash # 备份Redis数据 docker-compose exec redis redis-cli BGSAVE docker cp stockagent-redis:/data/dump.rdb ./backup/redis-$(date +%Y%m%d).rdb # 备份配置文件 tar -czf backup/config-$(date +%Y%m%d).tar.gz config/ .env ``` #### 3. 更新和维护 ```bash # 拉取最新代码 git pull # 停止服务 docker-compose down # 重新构建并启动 docker-compose build --no-cache docker-compose up -d # 验证服务正常 curl http://localhost:5001 curl http://localhost:8000/docs ```