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

6.8 KiB
Raw Blame History

title, source, created, updated, type, tags, confidence, contested, raw_sources
title source created updated type tags confidence contested raw_sources
阿布量化(ABuQuant)框架架构 https://github.com/bbfamily/abu (commit d602d847677e4c2b77b0a122df30816ea68b5710) 2026-08-07 2026-08-07 concept
量化
开源框架
回测
Python
medium false
path hash
raw/量化/abuquant/abuquant-框架架构摘编.md 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 线择时。

六、相关页面