多因子选股系统是一个集成了因子计算、机器学习建模、深度学习建模、LLM/VLM API调用评估、股票选择、组合优化和回测验证等功能的完整量化投资工具链。
- 后端: Flask + SQLAlchemy + Celery
- 数据处理: Pandas + NumPy + Scikit-learn
- 机器学习: XGBoost + LightGBM
- 深度学习: PyTorch + TensorFlow
- 优化: CVXPY
- 前端: Bootstrap5 + JavaScript
- 数据库: MySQL/SQLite
- 因子引擎 (FactorEngine): 因子定义管理、因子值计算
- 机器学习管理器 (MLModelManager): 模型训练、预测和评估
- 深度学习管理器 (DeepLearningModelManager): 深度学习模型管理
- 股票打分引擎 (StockScoringEngine): 综合评分计算
- 组合优化器 (PortfolioOptimizer): 多种优化算法
- 回测引擎 (BacktestEngine): 策略回测和性能评估
- LLM/VLM服务: 文本分析和情感分析
# 创建虚拟环境
python -m venv venv
source venv/bin/activate # Linux/Mac
# 或
venv\Scripts\activate # Windows
# 安装依赖
pip install -r requirements.txt复制 .env.example 到 .env 并配置相关参数:
cp .env.example .envflask db init
flask db migrate
flask db upgrade# 启动Flask应用
python app.py
# 启动Celery工作进程
celery -A app.celery worker --loglevel=info
# 启动Celery Beat调度器
celery -A app.celery beat --loglevel=infoPOST /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- 获取回测结果
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
- 在
app/models/factor.py中定义因子公式 - 在
app/services/factor_engine.py中实现计算逻辑 - 注册到因子引擎中
- 在
app/services/ml_model_manager.py中添加模型类 - 实现训练和预测方法
- 在API中注册新的模型类型
- 在
app/services/portfolio_optimizer.py中实现优化算法 - 添加相应的约束条件支持
- 更新API接口
# 运行所有测试
pytest
# 运行特定模块测试
pytest tests/test_factor_engine.py# 构建镜像
docker build -t stock-selection .
# 运行容器
docker run -p 5000:5000 stock-selection- 使用Gunicorn作为WSGI服务器
- 配置Nginx作为反向代理
- 使用Redis作为消息队列
- 配置MySQL作为主数据库
- Fork项目
- 创建功能分支
- 提交更改
- 创建Pull Request
MIT License