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

10 KiB
Raw Permalink Blame History

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. 环境准备

# 确保已安装Docker和Docker Compose
docker --version
docker-compose --version

# 克隆项目
git clone <repository-url>
cd StockAgent

2. 配置环境变量

# 复制环境变量模板
cp .env.docker .env

# 编辑环境变量文件设置你的tushare token
vim .env  # 或使用其他编辑器

.env 文件中设置:

TUSHARE_TOKEN=your_tushare_token_here

3. 启动服务

# 一键启动所有服务
docker-compose up -d

# 查看服务状态
docker-compose ps

# 查看日志
docker-compose logs -f

4. 访问应用

5. 管理命令

# 停止服务
docker-compose down

# 重启服务
docker-compose restart

# 更新应用
docker-compose down
docker-compose build --no-cache
docker-compose up -d

# 清理数据
docker-compose down -v  # 警告会删除Redis数据

方法二:本地开发部署

适合开发和调试环境。

1. 环境配置

# 创建虚拟环境
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. 启动服务

# 启动后端 API 服务
python main.py

# 启动前端 Web 服务 (新终端)
cd web && python app.py

4. 访问应用

投资策略详解

价值投资策略 (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 接口

单股综合分析

POST /api/analyze
Content-Type: application/json

{
  "ts_code": "000001",
  "strategy": "technical"  # value/growth/technical
}

智能综合筛选

POST /api/screen
Content-Type: application/json

{
  "strategy": "comprehensive",
  "min_score": 60,
  "limit": 50
}

获取股票基础数据

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调用

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文件

# 创建生产环境配置
cp docker-compose.yml docker-compose.prod.yml

2. 生产环境配置优化

  • 使用nginx反向代理
  • 添加SSL证书支持
  • 配置日志轮转
  • 设置资源限制
  • 添加监控和告警

🔍 故障排除

常见问题及解决方案

1. Tushare Token配置问题

# 检查环境变量
docker-compose exec backend env | grep TUSHARE_TOKEN

# 如果未设置,停止服务并重新配置
docker-compose down
vim .env  # 设置正确的token
docker-compose up -d

2. Redis连接问题

# 检查Redis服务状态
docker-compose exec redis redis-cli ping

# 查看Redis日志
docker-compose logs redis

3. 服务启动失败

# 查看详细日志
docker-compose logs backend
docker-compose logs frontend

# 重新构建镜像
docker-compose build --no-cache
docker-compose up -d

4. 端口冲突

# 检查端口占用
netstat -tlnp | grep :5001
netstat -tlnp | grep :8000

# 修改docker-compose.yml中的端口映射

📊 监控和维护

1. 服务监控

# 查看服务状态
docker-compose ps

# 查看资源使用情况
docker stats $(docker-compose ps -q)

# 查看实时日志
docker-compose logs -f --tail=100

2. 数据备份

# 备份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. 更新和维护

# 拉取最新代码
git pull

# 停止服务
docker-compose down

# 重新构建并启动
docker-compose build --no-cache
docker-compose up -d

# 验证服务正常
curl http://localhost:5001
curl http://localhost:8000/docs