--- title: "阿布量化(ABuQuant)框架架构" last_updated: 2026-08-07 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.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、位移路程比、择时因子