Skip to content

zf-account/Multi-factorQuantitativeStockSelectionSystem

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

多因子选股系统

项目概述

多因子选股系统是一个集成了因子计算、机器学习建模、深度学习建模、LLM/VLM API调用评估、股票选择、组合优化和回测验证等功能的完整量化投资工具链。

系统架构

  • 后端: Flask + SQLAlchemy + Celery
  • 数据处理: Pandas + NumPy + Scikit-learn
  • 机器学习: XGBoost + LightGBM
  • 深度学习: PyTorch + TensorFlow
  • 优化: CVXPY
  • 前端: Bootstrap5 + JavaScript
  • 数据库: MySQL/SQLite

核心模块

  1. 因子引擎 (FactorEngine): 因子定义管理、因子值计算
  2. 机器学习管理器 (MLModelManager): 模型训练、预测和评估
  3. 深度学习管理器 (DeepLearningModelManager): 深度学习模型管理
  4. 股票打分引擎 (StockScoringEngine): 综合评分计算
  5. 组合优化器 (PortfolioOptimizer): 多种优化算法
  6. 回测引擎 (BacktestEngine): 策略回测和性能评估
  7. LLM/VLM服务: 文本分析和情感分析

安装和运行

1. 环境准备

# 创建虚拟环境
python -m venv venv
source venv/bin/activate  # Linux/Mac
#
venv\Scripts\activate  # Windows

# 安装依赖
pip install -r requirements.txt

2. 配置环境变量

复制 .env.example.env 并配置相关参数:

cp .env.example .env

3. 初始化数据库

flask db init
flask db migrate
flask db upgrade

4. 启动服务

# 启动Flask应用
python app.py

# 启动Celery工作进程
celery -A app.celery worker --loglevel=info

# 启动Celery Beat调度器
celery -A app.celery beat --loglevel=info

API文档

因子管理

  • POST /api/v1/factors/compute - 计算因子值
  • GET /api/v1/factors - 获取因子列表
  • POST /api/v1/factors - 创建新因子

模型管理

  • POST /api/v1/models/train - 训练模型
  • GET /api/v1/models - 获取模型列表
  • GET /api/v1/models/{id}/predict - 模型预测

回测

  • POST /api/v1/backtest/run - 运行回测
  • GET /api/v1/backtest/results - 获取回测结果

LLM/VLM分析

  • POST /api/v1/llm/analyze - 文本分析

项目结构

quantitative_stock_selection/
├── app/
│   ├── __init__.py
│   ├── models/
│   ├── services/
│   ├── api/
│   ├── utils/
│   └── config.py
├── migrations/
├── static/
├── templates/
├── tests/
├── requirements.txt
├── app.py
└── README.md

开发指南

添加新因子

  1. app/models/factor.py 中定义因子公式
  2. app/services/factor_engine.py 中实现计算逻辑
  3. 注册到因子引擎中

添加新模型

  1. app/services/ml_model_manager.py 中添加模型类
  2. 实现训练和预测方法
  3. 在API中注册新的模型类型

添加新优化算法

  1. app/services/portfolio_optimizer.py 中实现优化算法
  2. 添加相应的约束条件支持
  3. 更新API接口

测试

# 运行所有测试
pytest

# 运行特定模块测试
pytest tests/test_factor_engine.py

部署

Docker部署

# 构建镜像
docker build -t stock-selection .

# 运行容器
docker run -p 5000:5000 stock-selection

生产环境

  1. 使用Gunicorn作为WSGI服务器
  2. 配置Nginx作为反向代理
  3. 使用Redis作为消息队列
  4. 配置MySQL作为主数据库

贡献指南

  1. Fork项目
  2. 创建功能分支
  3. 提交更改
  4. 创建Pull Request

许可证

MIT License

About

Multi-factor quantitative stock selection system

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages