Files
my_wiki/wiki/concepts/阿布量化框架架构.md
T

116 lines
6.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: "阿布量化(ABuQuant)框架架构"
source: "https://github.com/bbfamily/abu (commit d602d847677e4c2b77b0a122df30816ea68b5710)"
created: 2026-08-07
updated: 2026-08-07
type: concept
tags:
- "量化"
- "开源框架"
- "回测"
- "Python"
confidence: medium
contested: false
raw_sources:
- path: "raw/量化/abuquant/abuquant-框架架构摘编.md"
hash: "sha256:1d40144383bd5f8e0f5d6049da545abb2933a83328693dc2d7852af9e70291d6"
---
# 阿布量化(ABuQuant)框架架构
## 页面定位
本页是阿布量化(ABuQuant)开源量化框架的**架构概念页**,回答"这个框架由哪些模块组成、因子/回测/裁判/度量如何衔接"。它不讲解具体策略开发步骤(见[[阿布量化策略开发与回测|阿布量化策略开发与回测]]),不展开期货专项方法(见[[期货量化回测与位移路程比|期货量化回测与位移路程比]]),也不替代任何品种研究框架。源码本体未整包入库,证据为摘编与哈希清单(`raw/量化/abuquant/`)。
## 一、定义与定位
阿布量化是一个开源的 Python 量化交易系统,核心设计目标是**分离基础策略与策略优化监督模块**。支持美股、A股、港股、期货、期权、比特币、莱特币。版本 0.4.02026-01-24 commit d602d84),作者"阿布",配套教材《量化交易之路》《机器学习之路》。
设计哲学(README"道生一、一生二、二生三、三生万物"):因子是最小单位(一)→ 因子组合成策略(二)→ 策略接入回测与裁判决策(三)→ 全市场多策略并行演化(万物)。
## 二、模块分层
框架以 21 个 `*Bu` 模块组织(`abupy/` 目录),`__init__.py` 统一导入:
| 模块 | 职责 |
|---|---|
| CoreBu | 环境、基准、并行(Windows 用 ProcessPoolExecutor 规避 joblib 长任务弹窗)、pandas 兼容、存储 |
| MarketBu | 数据缓存/数据源/解析、股票与期货 symbol、行业分类、市场切割、可视化 |
| FactorBuyBu / FactorSellBu | 买入/卖出择时因子基类与示例 |
| PickStockBu | 选股因子基类与示例 |
| AlphaBu | 选股/择时 Master-Worker 并行调度 |
| BetaBu | 仓位管理示例(ATR、Kelly、价格位置) |
| TradeBu | 订单、资金、基准、ML 特征 |
| SlippageBu | 滑点基类与均价滑点示例 |
| UmpBu | 裁判决策(UMP):主裁 + 边裁共 17 文件 |
| MetricsBu | 回测度量、GridSearch 参数寻优 |
| TLineBu | 技术线:拟合、位移路程比、通道、骨架、支撑阻力、黄金分割、VWAP |
| IndicatorBu | ATR、BOLL、MA、MACD、RSI 等指标 |
| MLBu / DLBu | 机器学习封装 / caffe 深度学习工具 |
| SimilarBu | 相关系数与相似度 |
| CrawlBu / CheckBu / UtilBu / WidgetBu | 爬虫数据源 / 检查预处理 / 工具 / UI 组件 |
| ExtBu、joblib/ 等 | 内置第三方依赖(six、joblib、empyrical、futures |
## 三、核心机制
### 1. 因子体系
- 买入因子 `AbuFactorBuyBase` 必须且只能混入一个方向类:`BuyCallMixin`(看涨,expect_direction=1.0)或 `BuyPutMixin`(看跌,expect_direction=-1.0,用于期货/期权反向)。
- 卖出因子 `AbuFactorSellBase` 通过 `support_direction()` 声明支持的买卖方向,`fit_day()``order.expect_direction` 区分 call/put 处理。
- 选股因子 `AbuPickStockBase` 在择时周期内每月/每周动态重新选股。
- 因子可内嵌专属卖出因子与选股因子;`lock_factor` 可封锁本源买入因子。
### 2. 回测数据流
```
数据(MarketBu) → 基准(AbuBenchmark: 时间范围/对齐/市场限制)
→ 资金(AbuCapital) → 择时Worker(AbuPickTimeWorker)
└─ fit_day 驱动:买入因子生成订单 → 卖出因子止盈止损
→ UMP 裁判拦截 → 滑点定成交价 → 仓位管理定量
→ 订单 → 度量(AbuMetricsBase) → 存储/可视化
```
`kl_pd` 为择时时段,`combine_kl_pd` 合并前一年数据供 ML 特征构建。
### 3. UMP 裁判决策
UMP(Umpire,裁判)用机器学习训练"裁判"拦截策略生成的失败交易:
- **主裁(Main)**:对买入信号整体裁决;示例含角度、价格、波动、跳空、多混。
- **边裁(Edge)**:对交易特征专项裁决。
- `AbuUmpManager` 组织通信;外部用户 `append_user_ump()` 添加自定义裁判(需先训练生成 cache)。
- 训练流程:切分训练集回测 → 提取失败交易特征 → GMM 分类 + 最优分类簇筛选(`ump_main_clf_dump()` 一行完成)→ 保存分类器 → 测试集开启拦截对比。
- 价值:拦截低质量交易、节省佣金、降低交易数量本身即优化;提升方向为更多裁判/特征、复杂综合裁决、统计权重加权。
### 4. 度量与优化
- `AbuMetricsBase` 度量收益、回撤、胜率等;期货专用 `AbuMetricsFutures`
- `AbuGridSearch` 借鉴 sklearn,对因子做参数寻优;`AbuCrossVal` 交叉验证。
- `AbuTLine` 提供最优拟合次数、位移路程比、拟合通道、骨架通道、黄金分割等分析手段辅助参数选择。
### 5. 数据源
内置沙盒数据仅供学习;`ABuDataCache` 管理采集/存储/merge 更新;对外统一接口 `ABuSymbolPd`;外部数据源可接入股票/期货/数字货币。
## 四、证据与不确定性
- 摘编基于源码 docstring、README 与教学 notebook markdown,未逐行核验全部算法。
- 缠论、波浪、谐波、K 线形态、均线信号等"量化 2.0"能力是项目网站(abuquant.com)宣传内容,仓库源码中形态识别以 TLineBu/IndicatorBu/WidgetBu 为基础,**未提供完整形态库代码**,不应视为可复现能力。
- README 中"18496 种策略""上百种模型"等营销数字未作为事实收录。
- 版本较旧(0.4.0),新环境需处理 Python 2/3 兼容层与依赖版本问题。
## 五、失效条件与风险
- 沙盒数据回测结果不具代表性,实盘需外部数据源。
- 裁判(UMP)效果依赖训练集质量与数据量,沙盒小样本下"正确拦截比错误拦截多"但胜率/盈亏并不理想。
- 框架的滑点实现不考虑大资金冲击成本;迁移实盘需日内分钟 K 线择时。
## 六、相关页面
- [[阿布量化策略开发与回测|阿布量化策略开发与回测]] - 因子开发与回测流程
- [[期货量化回测与位移路程比|期货量化回测与位移路程比]] - 期货专项方法与位移路程比
- [[技术分析形态与突破确认|技术分析形态与突破确认]] - 形态/突破信号的独立验证边界(与 abu 形态宣传对照)
- [[股票交易系统与技术分析|股票交易系统与技术分析]] - 主观技术分析体系(对照量化因子思路)
- [[交易与交易所市场微观结构|交易与交易所:市场微观结构]] - 滑点、交易成本的微观结构基础
- 术语见 [[Glossary|术语表]]:UMP、位移路程比、择时因子