6.8 KiB
6.8 KiB
title, last_updated, source, created, updated, type, tags, confidence, contested, raw_sources
| title | last_updated | source | created | updated | type | tags | confidence | contested | raw_sources | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 阿布量化(ABuQuant)框架架构 | 2026-08-07 | https://github.com/bbfamily/abu (commit d602d847677e4c2b77b0a122df30816ea68b5710) | 2026-08-07 | 2026-08-07 | concept |
|
medium | false |
|
阿布量化(ABuQuant)框架架构
页面定位
本页是阿布量化(ABuQuant)开源量化框架的架构概念页,回答"这个框架由哪些模块组成、因子/回测/裁判/度量如何衔接"。它不讲解具体策略开发步骤(见阿布量化策略开发与回测),不展开期货专项方法(见期货量化回测与位移路程比),也不替代任何品种研究框架。源码本体未整包入库,证据为摘编与哈希清单(raw/量化/abuquant/)。
一、定义与定位
阿布量化是一个开源的 Python 量化交易系统,核心设计目标是分离基础策略与策略优化监督模块。支持美股、A股、港股、期货、期权、比特币、莱特币。版本 0.4.0(2026-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、位移路程比、择时因子