🎯 多功能金融智能平台:量化选股 + 实时新闻分析 + AI情绪判断 + 可视化Dashboard
📊 量化策略: 训练期 2010-2015 | 预测期 2016-2025 | 年化夏普率 2.46
🌐 Web应用: 实时搜索 | 多模型AI | 情绪可视化 | 论坛协作
本项目已从课程大作业扩展为完整的智能金融分析平台,整合了:
- 📊 量化投资引擎:基于LightGBM的A股选股策略(年化夏普2.46)
- 🌐 实时Web应用:财经新闻搜索、多AI模型分析、情绪可视化
- 🤖 多Agent协作:DeepSeek/Claude/GPT-4/Qwen多模型论坛讨论
- 🎨 交互式Dashboard:Web原生图表,6维度情绪因子分析
- ✅ 预测目标创新: 次年12个月夏普率(收益+风险双重优化)
- ✅ 严格时间对齐: 财务特征延迟一年,杜绝未来信息泄露
- ✅ 文本信息融合: DeepSeek提取MD&A、公告、新闻的16个结构化特征
- ✅ 长期样本外验证: 10年回测(2016-2025),真实可靠
- ✅ 卓越业绩表现: 年化夏普2.46,最大回撤仅0.65%
- ✅ 多模型对比: 整合10+种机器学习模型(线性/树/神经网络/集成)
- 🚀 实时新闻搜索: 基于Tavily API的真实财经新闻检索
- 🤖 多模型AI分析: 4个大语言模型(DeepSeek/Claude/GPT-4/Qwen)
- 📊 情绪可视化: Chart.js原生图表,6维度Dashboard(情感分布、投资指数、关键因子等)
- 🎙️ 论坛协作机制: 多Agent讨论、观点汇总、共识识别
- 🎨 现代化UI: 深色主题、渐变设计、响应式布局
- ⚡ 无乱码: Web原生图表,完美中文显示
本项目现已扩展为多模型对比框架,整合了课程PPT中学习的所有机器学习模型:
| 类别 | 模型 | 来源 |
|---|---|---|
| 线性模型 | 线性回归、Ridge、Lasso、ElasticNet | ML3, ML4 |
| 非线性模型 | SVM(线性核/RBF核) | ML5 |
| 神经网络 | 单层MLP、深度MLP | ML5 |
| 树模型 | 决策树 | ML6 |
| 集成学习 | 随机森林、GBDT、AdaBoost、XGBoost、LightGBM | ML6 |
| 模型集成 | Voting、Stacking | ML6 |
| 降维技术 | PCA(可选) | ML7 |
使用方式:
- 运行
notebooks/multi_model_analysis.ipynb进行全面的模型对比 - 查看
docs/multi_model_guide.md获取详细使用说明 - 结果保存在
results/model_comparison/目录
2025-eco-machine-learning/
│
├── 📄 核心配置文件
│ ├── README.md # 项目说明文档
│ ├── requirements.txt # Python依赖包
│ ├── environment.yml # Conda环境配置
│ ├── .gitignore # Git忽略规则
│ └── Consolidated_Assignment.ipynb # 主分析笔记本⭐
│
├── 📁 web_interface/ # Web智能分析应用 🌐
│ ├── backend_v2.py # Flask后端API
│ ├── index_v2.html # 现代化前端界面
│ ├── sentiment_visualizer.py # 情绪可视化模块
│ ├── forum_adapter.py # 多Agent论坛协作
│ ├── 集成说明.md # 完整集成文档
│ └── Web可视化使用说明.md # 可视化指南
│
├── 📁 demos/ # 演示和测试脚本 🎮
│ ├── deepseek_demo.py # DeepSeek API演示
│ ├── search_maotai.py # 茅台新闻搜索
│ ├── 茅台文本因子可视化_修复版.py # 文本因子可视化
│ ├── DeepSeek_Text_Feature_Engineering.py # 文本特征工程
│ └── README.md # 演示脚本说明
│
├── 📁 docs/ # 项目文档 📚
│ ├── Google_LangExtract对比分析.md # 技术对比
│ ├── LangExtract集成说明.md # 集成指南
│ ├── PR协作说明.md # GitHub协作
│ ├── 真实爬取版本说明.md # 数据爬取说明
│ └── README.md # 文档导航
│
├── 📁 scripts/ # 工具脚本 🛠️
│ ├── organize_files.py # 文件整理工具
│ ├── update_script_paths.py # 路径更新工具
│ ├── organize_root_files.py # 根目录整理
│ └── README.md # 脚本使用说明
│
├── 📁 src/ # 核心源代码 💻
│ ├── multi_model_framework.py # 多模型对比框架
│ ├── deepseek_analysis.py # DeepSeek文本分析
│ ├── quantitative_assignment.py # 量化策略
│ └── fill_report_template.py # 报告生成
│
├── 📁 notebooks/ # Jupyter笔记本 📓
│ ├── main_analysis.ipynb # 主分析(核心)
│ ├── multi_model_analysis.ipynb # 多模型对比
│ └── detailed_report.ipynb # 详细报告
│
├── 📁 FinanceSpider/ # 金融爬虫模块 🕷️
│ ├── real_search_engine.py # Tavily搜索引擎
│ └── spider_utils.py # 爬虫工具
│
├── 📁 MultiAgentAnalysis/ # 多Agent分析 🤖
│ ├── agents/ # Agent模块
│ │ ├── media_agent.py
│ │ ├── query_agent.py
│ │ └── insight_agent.py
│ └── forum_engine.py # 论坛引擎
│
├── 📁 reports/ # 研究报告 📄
│ ├── main_report.tex # 主报告(LaTeX)
│ └── data_description.tex # 数据说明
│
├── 📁 results/ # 实验结果 📊
│ ├── figures/ # 图表(PNG)
│ └── data/ # 数据(Excel)
│
├── 📁 data/ # 数据文件 💾
│ ├── raw/ # 原始数据
│ ├── processed/ # 处理后数据
│ └── cache/ # 缓存文件
│
└── 📁 backups/ # 备份文件 🗄️
└── _旧文件备份/ # 历史版本
🌟 完整的中英文使用指南已准备就绪!
查看详细教程:USAGE_GUIDE.md 📘
包含内容:
- 🔧 环境配置 - Conda/pip安装步骤,API密钥配置
- 🌐 Web应用使用 - 实时新闻分析,情绪Dashboard,模型选择
- 📊 量化策略分析 - Jupyter笔记本运行,结果查看,多模型对比
- 🎮 演示脚本 - DeepSeek/茅台文本分析示例
- ❓ 常见问题 - API错误,启动问题,内存优化
- 🇬🇧 English Version - Complete bilingual documentation
快速导航:
# 1. 进入Web应用目录
cd web_interface
# 2. 设置API密钥
$env:OPENAI_API_KEY="your-api-key"
$env:OPENAI_BASE_URL="https://xh.v1api.cc/v1"
# 3. 启动后端
py backend_v2.py
# 4. 新终端启动前端
py -m http.server 8090
# 5. 打开浏览器访问
http://localhost:8090/index_v2.html功能演示:
- 🔍 搜索"比亚迪"或"小米" → 查看实时财经新闻
- 🤖 切换不同AI模型 → DeepSeek/Claude/GPT-4/Qwen
- 📊 向下滚动 → 查看6维度情绪可视化Dashboard
- 🎙️ 可选启用多模型论坛讨论
# 1. 克隆仓库
git clone https://github.com/sjkncs/2025-eco-machine-learning.git
cd 2025-eco-machine-learning
# 2. 安装依赖
pip install -r requirements.txt
# 3. 启动Jupyter Notebook
jupyter notebook
# 4. 打开并运行
notebooks/main_analysis.ipynb所有结果已预生成在 results/ 文件夹中:
- 图表:
results/figures/- 8张PNG图表 - 数据:
results/data/- 19个Excel文件
| 指标 | 机器学习策略 | 沪深300基准 |
|---|---|---|
| 累计收益率 | 32.42% | 2.46% |
| 年化收益率 | 3.25% | 0.27% |
| 年化夏普率 | 2.46 | 0.15 |
| 最大回撤 | 0.65% | 28.14% |
| 月胜率 | 65.14% | 51.38% |
- 财务特征: 盈利能力、偿债能力、营运效率、现金流质量
- 市场特征: 动量因子、波动率、市值、流动性
- 文本特征: DeepSeek提取的情感、主题、风险披露指标
- 模型: LightGBM梯度提升树
- 目标: 次年12个月滚动夏普率
- 训练期: 2010-2015(6年)
- 预测期: 2016-2025(10年)
- 选股规则: 每月选择预测夏普率TOP 20股票
- 权重方案: 等权配置
- 再平衡: 每月月初调仓
本项目创新性地集成了DeepSeek大语言模型进行财经文本分析,详见 docs/deepseek_bonus.md。
| 类别 | 特征数 | 说明 |
|---|---|---|
| MD&A情感分析 | 5个 | 情感得分、置信度、主题标签等 |
| 公司公告分析 | 5个 | 重大事件数量、类型、情绪等 |
| 新闻舆情分析 | 6个 | 媒体关注度、正负面新闻等 |
| 文件 | 说明 | 运行时间 |
|---|---|---|
notebooks/main_analysis.ipynb |
主分析代码,包含完整建模流程 | ~1.5小时 |
notebooks/detailed_report.ipynb |
详细实验报告与诊断分析 | ~30分钟 |
notebooks/exercises_solution.ipynb |
课程练习解答 | ~15分钟 |
| 文件 | 说明 |
|---|---|
src/deepseek_analysis.py |
DeepSeek API调用与文本特征提取 |
src/quantitative_assignment.py |
策略的脚本版本(可独立运行) |
src/fill_report_template.py |
自动生成报告工具 |
完整的研究报告(LaTeX格式)位于 reports/main_report.tex。
cd reports
xelatex main_report.tex
xelatex main_report.tex # 生成交叉引用需要编译两次或在Overleaf上直接编译(推荐)。
- 300+维度特征
- 三大类别: 财务、市场、文本
- 可观测性约束: 财务数据延迟一年使用
- LightGBM超参数: 150棵树,深度6,学习率0.05
- 交叉验证: 5折时间序列交叉验证
- 特征选择: 基于重要性得分
- 选股池: 沪深300成分股
- 选股数量: TOP 20
- 权重方案: 等权配置
- 交易成本: 考虑0.3%双边成本
所有图表位于 results/figures/:
- ML_Equity_Curve.png - 策略与基准资金曲线对比
- Feature_Importance_Top20.png - TOP 20特征重要性
- Annual_Return_Comparison.png - 逐年收益率对比
- Consolidated_Backtest.png - 综合回测诊断(多面板)
- Strategy_Variants_Comparison.png - 策略变体业绩对比
- TA_Strategy_Curves.png - 与技术分析策略对比
- TA_Strategy_Bars_CumReturn.png - 累计收益率条形图
- TA_Strategy_Bars_Sharpe.png - 夏普率条形图
- 目标变量创新: 预测次年12个月夏普率,同时优化收益与风险
- 文本特征融合: DeepSeek提取的结构化文本指标
- 严格时间对齐: 避免未来信息泄露的黄金法则
- 长期样本外验证: 10年真实回测,避免过拟合
- 多维度对比: 与基准指数、技术分析策略全面对比
- 语言: Python 3.8+
- 数据处理: pandas, numpy
- 机器学习: LightGBM, scikit-learn
- 可视化: matplotlib, seaborn
- 文本分析: DeepSeek API (OpenAI-compatible)
- 报告: LaTeX (XeLaTeX)
- 环境: Jupyter Notebook
项目使用的原始数据包括:
- 月个股回报率: 1999-2025年中国A股月度收益数据
- 财务三表: 上市公司资产负债表、利润表、现金流量表
- 公司信息: 行业分类、上市日期、基本信息
注意: 原始数据文件较大(>100MB),不包含在本仓库中。请从课程资料获取。
欢迎提交Issue和Pull Request!
- Fork本仓库
- 创建feature分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 提交Pull Request
本项目采用 MIT License - 详见 LICENSE 文件
- 项目负责人: sjkncs
- 课程: 量化金融与机器学习
- 学期: 2025秋季
- GitHub: @sjkncs
- 仓库: 2025-eco-machine-learning
- @Culaccino00 - 学姐提供的代码审查和PR贡献
- 优化项目依赖配置(pyarrow、fastparquet)
- 改进.gitignore规则
- 提供宝贵的代码优化建议
- 感谢小组其他同学在项目开发过程中的讨论与帮助
- 感谢课程提供的数据支持和指导
- 感谢所有开源项目的贡献者:
- scikit-learn、XGBoost、LightGBM - 机器学习框架
- Flask、Chart.js - Web应用开发
- OpenAI、Anthropic、DeepSeek、Qwen - AI模型API
- Tavily - 实时新闻搜索API
- Chen, T., & Guestrin, C. (2016). XGBoost: A scalable tree boosting system.
- Ke, G., et al. (2017). LightGBM: A highly efficient gradient boosting decision tree.
- Fama, E. F., & French, K. R. (1993). Common risk factors in the returns on stocks and bonds.
- Jegadeesh, N., & Titman, S. (1993). Returns to buying winners and selling losers.
重大更新:项目扩展为完整的智能金融分析平台!
- ✅ 创建实时新闻搜索Web应用(Tavily API)
- ✅ 集成4个大语言模型(DeepSeek/Claude/GPT-4/Qwen)
- ✅ 实现6维度情绪可视化Dashboard(Chart.js)
- ✅ 添加多Agent论坛协作机制
- ✅ 现代化深色主题UI设计
- ✅ 解决中文乱码问题(Web原生图表)
web_interface/backend_v2.py- 增强版Flask后端web_interface/index_v2.html- 现代化前端界面web_interface/sentiment_visualizer.py- 情绪可视化模块web_interface/forum_adapter.py- 论坛协作适配器web_interface/集成说明.md- 完整使用文档web_interface/Web可视化使用说明.md- 可视化指南
- Flask 2.3+ (Web框架)
- Chart.js 4.4+ (数据可视化)
- Tavily API (实时新闻搜索)
- 多LLM支持(统一API接口)
- ✅ 完成项目重构,优化文件结构
- ✅ 创建清晰的目录分类(notebooks/, src/, reports/, results/, docs/)
- ✅ 更新所有路径引用
- ✅ 添加完整的README文档
- ✅ 创建requirements.txt
- ✅ 集成DeepSeek文本分析
- ✅ 完成10年样本外回测
- ✅ 生成完整研究报告
⭐ 如果这个项目对您有帮助,请给个Star!
🌐 在线演示: 克隆仓库后运行 web_interface 查看实时Web应用!