Files
my_wiki/raw/量化/abuquant/abuquant-框架架构摘编.md

13 KiB
Raw Permalink Blame History

title, source, source_commit, source_version, license, last_updated, type, tags, raw_sources
title source source_commit source_version license last_updated type tags raw_sources
阿布量化(ABuQuant)框架架构摘编 https://github.com/bbfamily/abu d602d847677e4c2b77b0a122df30816ea68b5710 (2026-01-24) 0.4.0 GPL 2026-08-07 source-derivative
量化
开源框架
Python
path hash
raw/量化/abuquant/_meta/源码哈希清单.tsv sha256:e07923e8607d1ce333d692f6acc8db3b5f68f1c9e9679d5629705e359e2f0e1f

阿布量化(ABuQuant)框架架构摘编

本文是对 GitHub 仓库 bbfamily/abu(阿布量化,ABuQuant)的架构知识摘编。源码本体 73MB 不整包入库,仅保留本摘编与源码哈希清单(_meta/源码哈希清单.tsv,381 个文件)。原始源码本地存放于 raw/量化/abuquant-src/(已被 .gitignore 排除),可通过上方 commit 与 GitHub 重新获取验证。本项目 GPL 许可,教学文档版权归作者"阿布"(微信号 abu_quant)所有。

1. 项目定位

阿布量化是一个开源的 Python 量化交易系统,目标:分离基础策略与策略优化监督模块,提高灵活度和适配性。支持市场:美股、A股、港股、期货、期权、比特币、莱特币。版本 0.4.0,作者阿布,配套教材《量化交易之路》(示例代码在仓库 ipython/python/ 目录)与《机器学习之路》(独立仓库 maxmon/abu_ml)。

架构哲学(README 中"道生一、一生二、二生三、三生万物"系列):以因子为最小单位(一),因子组合成策略(二),策略接入回测与决策体系(三),全市场多策略并行演化(万物)。

2. 顶层目录结构

目录 内容
abupy/ 框架源码(21 个 Bu 模块 + 内置依赖)
abupy_lecture/ 官方使用文档:33 个 Jupyter notebook 教学
abupy_ui/ 非编程界面操作(notebook 形式的 UI 演示)
ipython/python/ 《量化交易之路》书示例代码
界面操作视频教程/img/ 视频与图片素材
gen/ 生成的临时数据(stock_day_change.npy

3. 源码模块分层(abupy/

框架按领域拆分为 21 个 Bu 模块,abupy/__init__.py 全部导入后对外统一命名空间:

模块 职责
CoreBu 核心基础设施:环境(ABuEnv)、基准(ABuBenchmark)、并行(ABuParallelWindows 用 ProcessPoolExecutor 规避 joblib 长时间任务系统弹窗)、pandas 兼容层(ABuPdHelper)、存储(ABuStore)、废弃警告(ABuDeprecated
MarketBu 市场与数据:数据缓存(ABuDataCache)、数据源示例(ABuDataFeed,内置沙盒仅供学习)、解析(ABuDataParser)、股票/期货 symbol 模块、行业分类、市场切割与选股操作、可视化
FactorBuyBu 买入择时因子:基类 AbuFactorBuyBase、示例因子(突破、双均线、趋势、日胜率等)
FactorSellBu 卖出择时因子:基类 AbuFactorSellBase、示例因子(ATR 止盈止损、N 日卖出、突破卖出、双均线)
PickStockBu 选股因子:基类 AbuPickStockBase、示例因子(价格、角度、相似度、位移路程比等)
AlphaBu 调度层:选股/择时的 Master-Worker 并行调度(ABuPickStockMaster/Worker、ABuPickTimeMaster/Worker),整合金融时间序列、因子与资金类
BetaBu 仓位管理示例:ATR 仓位(AbuAtrPosition)、Kelly 仓位(AbuKellyPosition)、价格位置仓位(AbuPtPosition
TradeBu 交易层:订单(AbuOrder)、资金(AbuCapital)、基准(AbuBenchmark)、机器学习特征定义(ABuMLFeature
SlippageBu 滑点:买入/卖出滑点基类与均价滑点示例(默认 AbuSlippageBuyMean/SellMean
UmpBu 裁判决策(UMP, Umpire):主裁(Main)与边裁(Edge)共 17 个文件,含基类与角度/价格/波动/跳空/多混等示例
MetricsBu 回测度量:AbuMetricsBase、期货度量(AbuMetricsFutures)、GridSearch 参数寻优
TLineBu 技术线:AbuTLine(拟合、位移路程比、通道、骨架、支撑阻力)、黄金分割、波浪、VWAP、相似度
IndicatorBu 技术指标:ATR、BOLL、MA、MACD、RSI 等
MLBu 机器学习:AbuML 中间层、学习器封装(ABuMLCreater)、GridSearch、MLPd 业务封装
DLBu 深度学习工具:caffe 图片标准化与训练集切割
SimilarBu 相关性与相似度:相关系数计算与可视化
CrawlBu 爬虫数据源(雪球常量等)
CheckBu 检查与预处理:函数对象/参数/返回值检查
UtilBu 工具:懒加载(LazyFunc)、委托、正则、文件等
WidgetBu UI 组件(24 个文件,供 abupy_ui 使用)
ExtBujoblib/empyrical/futures/ 内置第三方依赖(six、joblib 等),锁版本避免兼容问题

4. 核心类层次与数据流

4.1 因子体系(策略的最小单位)

  • AbuFactorBuyBaseFactorBuyBu):买入择时因子基类,必须混入且只能混入一个方向类——BuyCallMixin(看涨,expect_direction=1.0buy_type_str="call")或 BuyPutMixin(看跌,expect_direction=-1.0buy_type_str="put",用于期货/期权反向策略)。买入因子内部可容纳专属卖出因子与选股因子。
  • AbuFactorSellBaseFactorSellBu):卖出择时因子基类,通过 support_direction() 声明支持的买卖方向(如 ATR 止损因子支持 call+put 两个方向),fit_day() 中按 order.expect_direction 区分处理。
  • AbuPickStockBasePickStockBu):选股因子基类,在择时周期内每月/每周动态重新选股。
  • 因子统一继承 AbuParamBase,支持 kwargs 参数化。

4.2 回测数据流

数据(MarketBu: ABuSymbolPd) → 基准(TradeBu: AbuBenchmark,确定时间范围/对齐/市场限制)
→ 资金(TradeBu: AbuCapital) → 择时 Worker(AlphaBu: AbuPickTimeWorker)
   └─ 每日驱动 fit_day:买入因子(AbuFactorBuyBase) 生成订单(AbuOrder)
      → 卖出因子(AbuFactorSellBase) 止盈止损
      → UMP(AbuUmpManager) 主裁/边裁拦截决策
      → 滑点(SlippageBu) 决定成交价
      → 仓位管理(BetaBu: AbuPositionBase) 决定买入数量
→ 订单结果 → 度量(MetricsBu: AbuMetricsBase) → 结果存储/可视化
  • 金融时间序列 kl_pd 为择时时段,combine_kl_pd 合并之前一年数据(用于机器学习特征构建)。
  • 基准 AbuBenchmark 的作用:交易时间范围确定、时间序列对齐、抛弃异常序列、市场范围限制、与策略度量结果对比。

4.3 UMP 裁判决策体系(UmpBu

UMP(Umpire,裁判)是阿布量化的特色:用机器学习训练"裁判"拦截策略生成的失败交易。

  • 主裁(Main:对买入信号整体裁决,示例含角度(Deg)、价格(Price)、波动(Wave)、跳空(Jump)、多混(Mul)等,基类 AbuUmpMainBase
  • 边裁(Edge:对交易特征做专项裁决(角度、价格、波动、多混、全混),基类 AbuUmpEdgeBase
  • AbuUmpManager:买入/卖出因子与 UMP 的组织管理通信模块;外部用户可用 append_user_ump() 添加自定义裁判(需先训练并生成 cache 文件),开关 g_enable_user_ump
  • 训练流程(notebook 15-18):切分训练集回测 → 提取失败交易特征 → GMM 分类 + 最优分类簇筛选(ump_main_clf_dump() 一行完成)→ 本地保存分类器 → 测试集开启拦截对比。特征如:买入当天价格在特征周期内的 rank(price_rank60)、跳空间隔与能量、波动率 wave_score 等。
  • 主裁拦截的价值:拦截大量低质量交易,节省佣金、降低交易数量本身即优化;效果提升方向——更多裁判/更多特征、复杂综合裁决、按统计权重加权。

4.4 度量与优化(MetricsBu

  • AbuMetricsBase 度量回测结果(收益、回撤、胜率等),期货有专门 AbuMetricsFuturesAbuMetricsTC
  • AbuGridSearch 借鉴 sklearn GridSearch,对买入/卖出/选股因子做最优参数寻优;AbuCrossVal 交叉验证。
  • 技术线 AbuTLine 提供 show_best_poly(最优拟合次数)、show_shift_distance(位移路程比)、show_regress_trend_channel(拟合通道)、show_skeleton_channel(骨架通道)、show_percents(黄金分割/比例分割)等分析手段,可用于策略参数选择(如港股优化示例)。

4.5 数据源(MarketBu

  • 内置沙盒数据(ABuDataFeed)仅供学习与基本测试,覆盖美股/A股/港股/比特币/莱特币/期货连续合约。
  • ABuDataCache 实现采集存储、读取与 merge 更新策略。
  • 外部数据源可接入:股票、期货、数字货币;数据模式/存储/数据源均可切换(notebook 19)。
  • 数据对外统一接口 ABuSymbolPd,其它模块只应通过它取数。

5. 期货支持要点

  • 期货连续合约 symbol 如 JM0(焦煤)、J0(焦炭)、I0(铁矿石)等,请求的是连续数据而非具体合约(如 JD1709)。
  • AbuFuturesCn 记录每品种:min_uni(每手数量,如鸡蛋 5 吨/手、胶合板 500 张/手)、commission(每手手续费)、min_deposit(最低保证金比例)。
  • 期货因子通过混入 BuyPutMixin 支持看跌方向(向下突破作为买入信号的 put 策略)。
  • 详见摘编《阿布量化:期货回测与位移路程比》(同目录)。

6. 使用限制与注意事项

  • 版本 0.4.0 较旧(2018 年后主要更新集中在文档与 UI),依赖 Python 2/3 兼容层(six、funcsigs),新环境部署需处理依赖兼容(CoreBu/ABuFixes.py 负责统一不同依赖库版本)。
  • Windows 并行:长时间多任务用 ProcessPoolExecutorjoblib 在 Windows 上 10 小时以上任务可能触发系统弹窗错误)。
  • 内置数据仅供学习,实盘需自购数据源。
  • 缠论、波浪、谐波、K线形态、均线信号等"量化 2.0"功能在 README 中作为网站 abuquant.com 的 AI 分析能力宣传,仓库源码中形态识别实现以 TLineBu/IndicatorBu/WidgetBu 为基础,未在仓库内提供完整形态库代码;相关宣传内容属项目介绍,未在本摘编中作为可复现能力收录。

7. 教学资源索引(abupy_lecture33 个 notebook

编号 主题
0 量化环境部署
1 择时策略的开发(买入/卖出择时因子、分解模式回测)
2 择时策略的优化(基本止盈止损、风险控制止损、利润保护止盈)
3 滑点策略与交易手续费
4 多支股票择时回测与仓位管理(多因子、自定义仓位、并行)
5 选股策略的开发(选股因子、并行执行)
6 回测结果的度量(基本用法、可视化、自定义度量类)
7 寻找策略最优参数和评分(参数范围、Grid Search、评分、自定义评分类)
8 A股市场的回测(涨跌停特殊处理、多组交易分析)
9 港股市场的回测(策略类装饰器封装优化)
10 比特币、莱特币的回测(走势分析、可视化、回测)
11 期货市场的回测(期货特点、看涨/看跌合约、位移路程比优化)
12 机器学习与比特币示例(特征提取、内置 ML 模块、测试集验证、非均衡技术)
13 量化技术分析应用(阻力支撑自动绘制、跳空分析、传统指标)
14 量化相关性分析应用(相关相似度、距离度量、自然相关性)
15 量化交易和搜索引擎(切分训练集、主裁系统原理、角度主裁、最优分类簇筛选)
16 UMP 主裁交易决策(跳空/价格/波动主裁训练、开启拦截模式)
17 UMP 边裁交易决策
18 自定义裁判决策交易(append_user_ump
19 数据源(数据模式/存储/数据源切换、全市场更新、接入外部数据源)
20 A股全市场回测
21 A股 UMP 决策
22 美股全市场回测
23 美股 UMP 决策
24 比特币 vs 黄金、莱特币 vs 白银
25 期货市场内外盘低频统计套利
26 "星期几是这个股票的好日子"(星期效应分析)
27 狗股选股策略与择时策略的配合
28 真·动态自适应双均线策略
29 多因子策略并行执行配合
30 趋势跟踪与均值回复的长短线搭配
31 资金仓位管理与买入策略的搭配
32 策略有效性的验证

《量化交易之路》ipython 示例:第二章 Python、第三章 NumPy、第四章 pandas、第五章 可视化、第六章 数学、第七章 量化系统入门(三只小猪)、第八章 量化系统开发、第九章 度量与优化、第十章 机器学习·猪老三、第十一章 机器学习·ABU、附录 A-C(环境部署、相关性分析、统计分析与指标应用)。

8. 摘编边界

  • 本摘编基于源码 docstring、README 与教学 notebook 的 markdown 文本提炼,未逐行核验全部算法实现。
  • 源码哈希清单记录了 381 个文件的 SHA-256(不含 .git 元数据),可作为从 GitHub 重新获取源码后的一致性校验依据。
  • 项目营销性描述("18496 种策略""上百种模型"等)未作为可验证事实收录。