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

3.2 KiB

股票分析筛选 AI Agent

基于 tushare 数据接口的智能股票筛选和分析系统,支持多种投资策略的量化评分。

功能特性

  • 多策略筛选: 价值投资、成长投资、技术分析三大策略
  • 实时数据: 基于 tushare API 获取最新股票数据
  • 智能评分: AI 算法对股票进行综合评分和排名
  • 可视化分析: 直观的图表展示和财务指标雷达图
  • 缓存优化: Redis 缓存提升数据查询性能

技术栈

  • 后端: FastAPI + Python 3.9+
  • 数据源: Tushare API
  • 数据处理: pandas, numpy, scikit-learn
  • 缓存: Redis
  • 数据库: SQLAlchemy (支持 SQLite/PostgreSQL)
  • 前端: Streamlit
  • 可视化: Plotly

快速开始

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 界面 (新终端)
streamlit run src/web/streamlit_app.py

4. 访问应用

投资策略说明

价值投资策略

  • 关注指标: PE、PB、ROE、负债率、净利率
  • 适合: 寻找被低估的优质股票
  • 评分权重: PE(25%) + PB(20%) + ROE(20%) + 负债(15%) + 其他(20%)

成长投资策略

  • 关注指标: 营收增长、利润增长、ROE、研发投入
  • 适合: 寻找高成长潜力的股票
  • 评分权重: 营收增长(30%) + 利润增长(25%) + ROE(20%) + 其他(25%)

技术分析策略

  • 关注指标: 移动平均线、RSI、MACD、成交量、波林带
  • 适合: 短期交易和趋势跟踪
  • 评分权重: 趋势(30%) + 动量(25%) + 成交量(20%) + 其他(25%)

API 接口

获取股票列表

GET /api/stocks

单股分析

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

{
  "ts_code": "000001.SZ",
  "strategy": "value"
}

批量筛选

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

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

项目结构

StockAgent/
├── src/
│   ├── data/           # 数据获取和存储
│   ├── analysis/       # 财务和技术指标计算
│   ├── strategies/     # 投资策略实现
│   ├── utils/          # 工具函数
│   └── web/           # Web 界面
├── config/            # 配置文件
├── tests/             # 测试文件
├── main.py           # API 主程序
└── requirements.txt  # 依赖包

使用示例

from src.data import TushareClient
from src.strategies import ValueStrategy

# 初始化数据客户端
client = TushareClient()

# 获取股票数据
stocks = client.get_stock_list()
financial_data = client.get_financial_data('000001.SZ')

# 使用价值投资策略评分
strategy = ValueStrategy()
score = strategy.calculate_score(stock_data)
print(f"投资评分: {score}")

许可证

MIT License