stock-agent/README.md
2025-12-28 10:15:39 +08:00

218 lines
6.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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
## 快速开始
### 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、布林带等技术指标动态计算
- **仓位管理**: 根据风险评级提供合理的仓位建议
### ⚡ 性能优化
- **缓存机制**: Redis缓存减少重复计算
- **批量处理**: 限制处理数量避免超时
- **防重复提交**: 前端防重复点击,后端缓存复用
## 许可证
MIT License