| .claude | ||
| config | ||
| src | ||
| web | ||
| .env.example | ||
| .gitignore | ||
| main.py | ||
| README.md | ||
| requirements.txt | ||
| start_web.sh | ||
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. 环境配置
# 创建虚拟环境
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. 访问应用
- 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 接口
单股综合分析
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界面使用
- 访问: 打开 http://localhost:5001
- 筛选: 点击"开始智能筛选"获取优质股票列表
- 分析: 输入股票代码进行单股详细分析
- 决策: 查看交易信号和投资建议
特色功能
🤖 智能化特性
- 自动股票代码识别: 输入6位数字自动添加交易所后缀
- 综合策略评估: 无需选择策略,自动三维度分析
- 智能交易建议: 根据综合评分智能调整交易信号强度
🛡️ 风险控制
- 多重验证: 三种策略交叉验证,提高准确性
- 止损建议: 基于ATR、布林带等技术指标动态计算
- 仓位管理: 根据风险评级提供合理的仓位建议
⚡ 性能优化
- 缓存机制: Redis缓存减少重复计算
- 批量处理: 限制处理数量避免超时
- 防重复提交: 前端防重复点击,后端缓存复用
许可证
MIT License