diff --git a/README.md b/README.md index e296cc0..fa522d8 100644 --- a/README.md +++ b/README.md @@ -1,24 +1,26 @@ -# 股票分析筛选 AI Agent +# AI 金融分析平台 -基于 tushare 数据接口的智能股票筛选和分析系统,支持多种投资策略的量化评分。 +基于 tushare 数据接口的智能股票筛选和分析系统,支持多种投资策略的量化评分和综合评估。 ## 功能特性 -- **多策略筛选**: 价值投资、成长投资、技术分析三大策略 +- **三维度综合分析**: 价值投资、成长投资、技术分析三大策略综合评估 +- **智能筛选**: AI算法自动筛选优质股票,无需手动选择策略 +- **交易信号分析**: 提供买入/卖出信号、止盈止损建议 - **实时数据**: 基于 tushare API 获取最新股票数据 - **智能评分**: AI 算法对股票进行综合评分和排名 -- **可视化分析**: 直观的图表展示和财务指标雷达图 +- **可视化分析**: 直观的图表展示和财务指标分析 - **缓存优化**: Redis 缓存提升数据查询性能 ## 技术栈 - **后端**: FastAPI + Python 3.9+ +- **前端**: Flask + HTML/CSS/JavaScript - **数据源**: Tushare API - **数据处理**: pandas, numpy, scikit-learn - **缓存**: Redis - **数据库**: SQLAlchemy (支持 SQLite/PostgreSQL) -- **前端**: Streamlit -- **可视化**: Plotly +- **可视化**: Chart.js ## 快速开始 @@ -47,100 +49,170 @@ TUSHARE_TOKEN=your_tushare_token_here ### 3. 启动服务 ```bash -# 启动 API 服务 +# 启动后端 API 服务 python main.py -# 启动 Web 界面 (新终端) -streamlit run src/web/streamlit_app.py +# 启动前端 Web 服务 (新终端) +cd web && python app.py ``` ### 4. 访问应用 -- API 文档: http://localhost:8000/docs -- Web 界面: http://localhost:8501 +- **Web界面**: http://localhost:5001 (主要入口) +- **API文档**: http://localhost:8000/docs (后端API) -## 投资策略说明 +## 投资策略详解 -### 价值投资策略 -- 关注指标: PE、PB、ROE、负债率、净利率 -- 适合: 寻找被低估的优质股票 -- 评分权重: PE(25%) + PB(20%) + ROE(20%) + 负债(15%) + 其他(20%) +### 价值投资策略 (40%权重) +- **关注指标**: PE、PB、ROE、负债率、净利率、现金流 +- **适合场景**: 寻找被低估的优质股票,长期投资 +- **评分标准**: PE<15(优) PB<2(优) ROE>15%(优) 负债率<50%(优) -### 成长投资策略 -- 关注指标: 营收增长、利润增长、ROE、研发投入 -- 适合: 寻找高成长潜力的股票 -- 评分权重: 营收增长(30%) + 利润增长(25%) + ROE(20%) + 其他(25%) +### 成长投资策略 (30%权重) +- **关注指标**: 营收增长率、利润增长率、ROE、毛利率趋势 +- **适合场景**: 寻找高成长潜力的股票,中长期投资 +- **评分标准**: 营收增长>20%(优) 利润增长>15%(优) ROE>20%(优) -### 技术分析策略 -- 关注指标: 移动平均线、RSI、MACD、成交量、波林带 -- 适合: 短期交易和趋势跟踪 -- 评分权重: 趋势(30%) + 动量(25%) + 成交量(20%) + 其他(25%) +### 技术分析策略 (30%权重) +- **关注指标**: 移动平均线、RSI、MACD、成交量、布林带、ADX +- **适合场景**: 短期交易和趋势跟踪,交易时机判断 +- **评分标准**: 趋势向上(25%) 动量健康(20%) 成交量配合(15%) + +## 主要功能 + +### 🔍 智能筛选 +- **综合评分**: 三种策略加权平均,智能筛选优质股票 +- **固定标准**: 综合评分≥60分,最多返回50只股票 +- **自动识别**: 输入6位股票代码,自动识别交易所 + +### 📊 综合分析 +- **多维评估**: 同时从价值、成长、技术三个角度分析 +- **详细评分**: 显示各策略的具体得分和综合评分 +- **投资建议**: 基于评分给出BUY/HOLD/WATCH建议 + +### 💹 交易信号 +- **买卖时机**: 基于技术分析提供具体的买入/卖出信号 +- **价格建议**: 智能推荐买入价格和卖出价格 +- **风险管理**: 提供止盈止损建议和仓位管理 +- **市场时机**: 评估当前市场环境和交易时机 ## API 接口 -### 获取股票列表 -```http -GET /api/stocks -``` - -### 单股分析 +### 单股综合分析 ```http POST /api/analyze Content-Type: application/json { - "ts_code": "000001.SZ", - "strategy": "value" + "ts_code": "000001", + "strategy": "technical" # value/growth/technical } ``` -### 批量筛选 +### 智能综合筛选 ```http POST /api/screen Content-Type: application/json { - "strategy": "value", + "strategy": "comprehensive", "min_score": 60, "limit": 50 } ``` +### 获取股票基础数据 +```http +GET /api/stocks +``` + ## 项目结构 ``` StockAgent/ ├── src/ │ ├── data/ # 数据获取和存储 -│ ├── analysis/ # 财务和技术指标计算 +│ │ ├── tushare_client.py # Tushare数据接口 +│ │ ├── database.py # 数据库操作 +│ │ └── redis_cache.py # Redis缓存 +│ ├── analysis/ # 分析计算模块 +│ │ ├── financial_indicators.py # 财务指标计算 +│ │ ├── technical_indicators.py # 技术指标计算 +│ │ └── trading_signals.py # 交易信号分析 │ ├── strategies/ # 投资策略实现 -│ ├── utils/ # 工具函数 -│ └── web/ # Web 界面 +│ │ ├── value_strategy.py # 价值投资策略 +│ │ ├── growth_strategy.py # 成长投资策略 +│ │ └── technical_strategy.py # 技术分析策略 +│ └── utils/ # 工具函数 +├── web/ # Web前端 +│ ├── app.py # Flask应用 +│ ├── templates/ # HTML模板 +│ └── static/ # CSS/JS静态文件 ├── config/ # 配置文件 -├── tests/ # 测试文件 -├── main.py # API 主程序 +├── main.py # FastAPI后端主程序 └── requirements.txt # 依赖包 ``` ## 使用示例 +### Python API调用 ```python from src.data import TushareClient -from src.strategies import ValueStrategy +from src.strategies import ValueStrategy, GrowthStrategy, TechnicalStrategy -# 初始化数据客户端 +# 初始化 client = TushareClient() +value_strategy = ValueStrategy() +growth_strategy = GrowthStrategy() +technical_strategy = TechnicalStrategy() # 获取股票数据 -stocks = client.get_stock_list() financial_data = client.get_financial_data('000001.SZ') +daily_data = client.get_stock_daily('000001.SZ') -# 使用价值投资策略评分 -strategy = ValueStrategy() -score = strategy.calculate_score(stock_data) -print(f"投资评分: {score}") +# 多策略评分 +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、布林带等技术指标动态计算 +- **仓位管理**: 根据风险评级提供合理的仓位建议 + +### ⚡ 性能优化 +- **缓存机制**: Redis缓存减少重复计算 +- **批量处理**: 限制处理数量避免超时 +- **防重复提交**: 前端防重复点击,后端缓存复用 + ## 许可证 MIT License \ No newline at end of file