timi-le/Research-Engine_alpha_generation
GitHub: timi-le/Research-Engine_alpha_generation
面向外汇市场的生产级量化研究引擎,整合多模型机器学习流水线、市场状态检测、宏观情绪分析和全功能回测框架。
Stars: 0 | Forks: 0
# 研究引擎 - Alpha 生成
一个生产级的量化研究和 Alpha 生成引擎,专为外汇市场设计。实现了完整的机器学习流水线,涵盖从原始数据摄取、特征工程、模型训练、回测到策略评估的全过程。
包含 25,000 多行 Python 代码。构建为 [ATRX](https://github.com/timi-le/ATRX) 交易平台的研究核心。
## 架构
```
Raw Market Data (MT5, OANDA, Dukascopy)
|
v
+--------------------+
| Data Connectors | Normalize, clean, store as Parquet
+--------------------+
|
v
+--------------------+ +---------------------+
| Feature Engine |---->| Dataset Assembly |
| (70+ indicators, | | (join, validate, |
| Numba JIT) | | NaN handling) |
+--------------------+ +---------------------+
|
+--------------------------+
| |
v v
+--------------------+ +---------------------+
| Labeling System | | Time Series Split |
| (Triple-barrier, | | (Walk-forward, |
| VoV filtering) | | gap insertion) |
+--------------------+ +---------------------+
| |
+-----------+--------------+
|
v
+--------------------------------------------+
| Model Training Suite |
| +----------+ +----------+ +-------------+ |
| | XGBoost | | LSTM | | CNN | |
| | Trainer | | Trainer | | Trainer | |
| +----------+ +----------+ +-------------+ |
| Cross-validation | Early stopping | ONNX |
+--------------------------------------------+
|
v
+--------------------------------------------+
| Regime Detector |
| HMM | Gaussian Mixture | KMeans | DBSCAN |
| Logistic meta-classifier | Rule fallback |
+--------------------------------------------+
|
v
+--------------------------------------------+
| Backtesting Engine |
| Market replay | Execution simulator |
| Stress testing | Performance analytics |
+--------------------------------------------+
|
v
+--------------------------------------------+
| Evaluation & Reporting |
| Sharpe, Sortino, Calmar | Drawdown |
| Regime breakdown | Equity curves | Logs |
+--------------------------------------------+
```
## 模块
### 数据层 (`/data`)
多源数据摄取,提供 MetaTrader 5、OANDA 和 Dukascopy 的连接器。包括经济日历加载、具备可配置情感分析器的新闻情感解析,以及用于实时数据的流式馈送接口。所有原始数据均规范化为 Parquet 格式,以实现高效存储和检索。
### 特征引擎 (`/core/feature_engine.py`)
通过 Numba JIT 优化计算 70 多个技术指标,以确保性能。特征组包括:
- **动量 (Momentum)** - RSI、MACD、随机振荡器、跨可配置周期的变化率
- **波动率 (Volatility)** - ATR、布林带、已实现波动率、波动率的波动率
- **趋势 (Trend)** - ADX、CCI、移动平均交叉、方向性指标
- **统计** - 赫斯特指数、香农熵、峰度、滚动窗口内的偏度
- **点差** - 买卖价差分析、点差波动率、点差 z-score
- **宏观** - 经济惊喜指数、新闻情感评分、统一宏观特征向量
### 标注系统 (`/trainers/labeling`)
采用波动率自适应阈值的三重屏障标注法。支持基于 RV 和 ATR 的屏障计算,利用 VoV(波动率的波动率)过滤进行状态感知,以及多交易品种处理。生成适用于分类模型的平衡标签(+1 上屏障,-1 下屏障,0 超时)。
### 状态检测 (`/core/regime_detector.py`)
多种方法的市场状态分类,分为趋势、均值回归和震荡状态:
- **隐马尔可夫模型** - 用于概率状态推断的高斯 HMM
- **高斯混合模型** - 基于特征分布的无监督聚类
- **KMeans / DBSCAN** - 基于密度和基于质心的聚类
- **逻辑回归** - 融合多个检测器输出的元分类器
- **基于规则的回退** - 当 ML 方法不确定时使用的确定性规则
### ML 训练流水线 (`/trainers`)
针对三种模型架构的生产级训练套件:
- **XGBoost** (`train_xgboost.py`) - 梯度提升树,附带特征重要性分析
- **LSTM** (`train_lstm.py`) - 用于序列模式学习的循环网络
- **CNN** (`train_cnn.py`) - 用于局部模式检测的卷积网络
- **统一训练器** (`train_model.py`) - 跨所有架构的单一接口
交叉验证具有时间序列感知能力,带有可配置的间隙以防止前视偏差。包括行前优化、自动化超参数调整、L1/L2 正则化、Dropout、早停、数据漂移检测、带有回滚的模型版本控制,以及用于优化推理的 ONNX 导出。
重训练调度器 (`retraining_scheduler.py`) 监控模型性能,并在检测到漂移或性能降至阈值以下时触发重训练。
### 宏观引擎 (`/core/macro_engine.py`)
结合经济惊喜数据(实际值与预测值对比)与新闻情感分析,生成宏观特征向量。滚动 z-score 标准化,可配置的回溯窗口(经济数据为 252 天,情感数据为 30 天),并支持多货币。
### 回测 (`/backtester`)
全模拟框架:
- **市场重放** - 具有可配置 Tick/Bar 粒度的历史数据重放
- **执行模拟器** - 真实的订单成交建模,涵盖滑点、点差、部分成交和延迟
- **压力测试** - 极端市场条件下的情景分析
- **性能指标** - Sharpe、Sortino、Calmar 比率,最大回撤,胜率,盈亏因子,基于状态的绩效细分,权益曲线生成,以及交易级日志记录
### 策略 (`/strategies`)
具有动态配置的状态自适应交易策略:
- **突破/趋势** - 状态转换时的基于动量的入场
- **时间剥头皮** - 震荡区间内的高频均值回归
- **网格/马丁格尔** - 基于网格的持仓,配有可配置的风险控制
策略切换器根据当前的市场状态分类和置信度得分,在策略间动态分配资金。
### 执行 (`/core`, `/services`)
- **执行引擎** - TWAP 和 POV 订单切片算法
- **订单路由器** - 多经纪商路由,集成 MT5
- **风险管理器** - 三层回撤控制,基于 ATR 的止损/止盈,VaR 计算,熔断机制
- **仓位分配器** - 凯利公式最优规模,配合波动率目标和相关性限制
### API (`/api`)
FastAPI REST API,提供系统控制、模型推理、健康监控和数据检索的端点。采用 Pydantic 请求/响应模型和结构化日志记录。
### 基础设施 (`/config`)
基于 YAML 的分层配置,支持环境变量覆盖。加密的密钥管理、TLS 证书处理、审计日志记录和配置版本控制。
## 技术栈
| 类别 | 技术 |
|----------|-------------|
| 核心 | Python 3.11+, NumPy, Pandas, SciPy |
| ML | Scikit-learn, XGBoost, TensorFlow/Keras, ONNX Runtime |
| 性能 | Numba JIT |
| 统计 | hmmlearn, nolds (赫斯特指数) |
| API | FastAPI, Uvicorn, Pydantic |
| 消息传递 | ZeroMQ (PyZMQ) |
| 监控 | Prometheus client |
| 安全 | cryptography, python-dotenv |
| 数据 | Parquet, YAML, PostgreSQL |
| 可视化 | Matplotlib |
## 设置
```
git clone https://github.com/timi-le/Research-Engine.git
cd Research-Engine
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
```
可选的深度学习依赖项:
```
pip install tensorflow tf2onnx onnxruntime
```
## 用法
### 训练模型
```
python scripts/train_model.py --model xgboost --symbol EURUSD --config config/training.yaml
```
### 运行回测
```
python scripts/run_leanish_backtest.py --config config/strategy_params.yaml
```
### 组装数据集
```
python scripts/assemble_dataset.py --features data/processed/ --labels data/labels/
```
### 参数调优
```
python tools/parameter_tuner.py --model xgboost --search bayesian
```
## 项目结构
```
Research-Engine/
|-- api/ # FastAPI endpoints and service layer
|-- backtester/ # Backtest engine, market replay, execution sim,
| # stress testing, performance metrics
|-- config/ # YAML configs, secrets management, TLS,
| # audit logging, config versioning
|-- core/ # Feature engine, regime detector, ML predictor,
| # macro engine, risk manager, execution engine,
| # order router, position sizer, strategy switcher,
| # pub/sub messaging
|-- data/ # Data connectors (MT5, OANDA, Dukascopy),
| # news sentiment parser, economic calendar,
| # streaming feed
|-- docs/ # Training pipeline docs, audit reports,
| # system guides, devlog
|-- evaluation/ # Model evaluation and validation
|-- scripts/ # Training pipelines, data assembly,
| # data cleaning, import diagnostics
|-- services/ # Execution service layer
|-- strategies/ # Breakout, scalping, grid strategies
|-- tools/ # Parameter tuning framework
|-- trainers/ # Model training (XGBoost, LSTM, CNN),
| # cross-validation, labeling, retraining
|-- test_models/ # Trained model artifacts (.h5, .pkl)
|-- test_reports/ # Backtest results, trade logs, metrics
|-- outputs/ # Stress test and backtest output files
```
## 作者
**Timilehin Olapade** - ML 工程师 & 量化开发者
世界量子大学 (WorldQuant University) 金融工程硕士候选人
## 许可证
专有。保留所有权利。
标签:Alpha生成引擎, Apex, ASM汇编, ATRX, CNCF毕业项目, CNN, Dukascopy, FinTech, FX, HMM, LSTM, MT5, Numba JIT, OANDA, ONNX, Parquet, Python, XGBoost, 三重屏障法, 代码示例, 压力测试, 回测系统, 外汇交易, 宏观情绪分析, 市场状态识别, 技术指标, 投资策略开发, 支持向量机, 数据分析, 数据清洗, 数据管道, 数据连接器, 无后门, 时间序列分析, 机器学习, 测试用例, 深度学习, 特征工程, 生产级, 算法交易, 自动交易系统, 自定义请求头, 软件工程, 逆向工具, 量化交易, 量化研究, 金融科技, 随机森林, 隐马尔可夫模型, 风控模型, 高性能计算