- 文集信息
- 目录大纲
- 最新文档
- 知识宇宙
文集详情
文集导读
ABU 量化交易系统 · 中文源码精读教程
系统解剖:沿着一次回测的数据流,逐器官拆解阿布量化框架
这本教程讲什么
这是一份带读源码的 ABU(阿布量化)交易系统精读教程。
ABU 是国内开发者"阿布"构建的开源 Python 量化框架(GPL 协议,版本 0.4.0),覆盖 A 股、美股、港股、期货、期权、比特币/莱特币六大市场。它的定位是"策略开发 + 回测 + 机器学习优化"一体化平台,自研业务代码约 4.6 万行,分 24 个 *Bu 子模块("Bu"取"部"之意)。
ABU 有两个鲜明特色让它在国产量化框架里独树一帜:
💡 第一个特色:UMP 拦截裁判系统(UmpBu,约 3958 行)。UMP 全称 Un-Monty-Python(反蒙提帕森,意指"反赌博陷阱"),它把机器学习当作"交易裁判"——从历史交易里学出"哪些特征组合大概率亏钱",在你下单前当裁判拦截冲动交易。主裁用 GMM 高斯混合聚类找出"高失败率簇",边裁用 KNN 相似度投票(还处处用 0.236/0.618/0.91 黄金分割做非均衡判决)。这是 ABU 区别于 zipline/backtrader 等通用回测框架的灵魂。
💡 第二个特色:全栈可插拔 + 装饰器封装。买入/卖出因子靠抽象基类 + 方向 Mixin 实现"声明式组合"(用
{'class': X, **params}字典描述因子);数据解析、滑点、ML 度量都用类装饰器统一流程;模块全局开关(g_前缀)不重启即可切换算法。这是一套高度自洽的工程美学。
本教程的定位是系统解剖——不沿用项目自带的 32 节 lecture(那是使用教程),而是沿着一次回测的完整数据流,逐器官拆解源码。从 run_loop_back 这个唯一入口出发,依次解剖行情数据层、买入因子层、卖出与滑点仓位层、交易执行引擎、回测度量层、UMP 裁判层、机器学习层、技术分析层、并行调度层。读完这本教程,你理解了 ABU 这套"系统"的每一个器官怎么协作。
一次回测的解剖主线
本教程以一次回测从入口到度量的完整数据流为解剖主线。想象你调用了 abu.run_loop_back(...),这行代码会流经以下器官:
这张图就是全教程的索引。每个器官对应一章,数据流的方向就是章节的顺序。
十章解剖路径
第 1 章 ABU 全貌与一次回测的旅程 ── 项目定位 + run_loop_back 入口解剖 第 2 章 行情数据层 ── 数据源切换 + 缓存 + 解析装饰器 + 雪球爬虫 第 3 章 买入因子体系 ── 方向 Mixin + dict 协议 + 突破/趋势/均线策略 第 4 章 卖出因子与滑点仓位 ── ATR 止损三层组合 + 涨跌停装饰器 + ATR/Kelly 仓位 第 5 章 交易执行引擎 ── 资金账户 + 手续费上下文管理器 + 回测执行器 第 6 章 回测度量与评分 ── empyrical 指标 + Win/Return/Sharpe/MDD 评分 + 相关度交叉验证 第 7 章 UMP 拦截裁判系统 ★ ── 主裁 GMM 聚类 + 边裁 KNN 投票 + 黄金分割非均衡(灵魂) 第 8 章 机器学习优化 ── sklearn 封装 + 概率阈值搜索 + 比特币大波动分类案例 第 9 章 技术分析与趋势线 ── 阻力支撑/跳空/金叉/波浪 + 弃用 talib 自实现指标 第 10 章 并行调度与 GUI ── Master-Worker-Execute 三层 + 进程 env 同步 + ipywidgets
第 7 章 UMP(★)是全书高潮——它是 ABU 的灵魂,也是这本教程最值得精读的部分。
章节目录
第 1 章 ABU 全貌与一次回测的旅程
ABU 是什么、24 个 *Bu 模块总览;run_loop_back 的 9 个参数与 7 步流程(基准+资金→选股→KL预取→择时→资金融合);ABuEnv 全局配置面板;多进程基础设施(Windows 不 fork 的 env 同步难题)。
第 2 章 行情数据层(MarketBu+CrawlBu)
数据源抽象(BaseMarket/StockBaseMarket/TCBaseMarket);7 个数据源(百度/腾讯/网易/新浪/火币);HDF5/CSV 双模式缓存的 4 种 merge 场景;AbuDataParseWrap 装饰器统一解析流程;Symbol 多市场统一路由;雪球爬虫(selenium 多进程)。
第 3 章 买入因子体系(FactorBuyBu)
方向 Mixin(BuyCall/BuyPut)+ 抽象基类 + 三层子类(Base/TD/XD);dict 协议 {'class':X, **kw} 声明式组合;突破/趋势/动态双均线策略;AbuLeastPolyWrap 装饰器给策略加大盘震荡过滤器;专属选股/卖出因子挂载。
第 4 章 卖出因子与滑点仓位(FactorSellBu/SlippageBu/BetaBu)
卖出因子方向过滤(support_direction);ATR 止损三层组合(AtrNStop 主止盈止损 + PreAtrNStop 风控 + CloseAtrNStop 利润保护);slippage_limit_up 涨跌停装饰器(二项分布+加权抽价);ATR/Kelly/Pt 三种仓位管理。
第 5 章 交易执行引擎(TradeBu)
AbuCapital 资金账户(capital_pd 时序 + buy_stock/sell_stock 有限资金判定);AbuCommission 上下文管理器算手续费(6 市场);AbuOrder __slots__ 降内存;apply_action_to_capital 回测执行器总驱动;AbuKLManager 双字典缓存。
第 6 章 回测度量与评分(MetricsBu)
AbuMetricsBase 4 步度量(empyrical 年化/夏普/alpha/beta + 胜率/盈亏比 + 资金分布);WrsmScorer 多项 rank 加权评分;AbuCrossVal 按 symbol 相关度切分做交叉验证(abu 特色);AbuGridSearch 策略参数并行网格搜索。
第 7 章 UMP 拦截裁判系统 ★(UmpBu,全书高潮)
UMP 寄生在因子内部的下单钩子;主裁 AbuUmpMainBase(GMM 聚类找高失败率簇 + scipy 暴力搜索全局最优阈值 + need_hit_cnt 多裁判合议);边裁 AbuUmpEdgeBase(KNN 欧氏距离 + 皮尔逊相关投票 + 0.236/0.618/0.91 黄金分割非均衡);11 个维度子类(角度/价格/跳空/波浪/全特征);AbuUmpManager 调度中枢 + append_user_ump 自定义接入。
第 8 章 机器学习优化(MLBu)
AbuML 三层架构(业务层→中间层→学习器工厂);entry_wrapper 装饰器 + E_FIT_AUTO 自动判断分类/回归;cross_val_prob_accuracy_score 概率阈值搜索(准确率 vs 生效率权衡,UMP 拦截的核心);predict_proba_threshold 高放行低拦截;BtcBigWaveClf 比特币大波动分类(三倍数据增强 + 3天→1条特征)。
第 9 章 技术分析与趋势线(TLineBu+IndicatorBu)
AbuTLine 技术线对象(阻力支撑聚类/跳空/金叉/波浪/VWAP/相似度匹配);IndicatorBu 弃用 talib 全自实现(ATR/MA/布林/MACD/RSI 双引擎保留切换能力);为什么 abu 选择不用 talib。
第 10 章 并行调度与 GUI(CoreBu+AlphaBu+WidgetBu)
AlphaBu Master-Worker-Execute 三层并行调度;选股一票否决+首选制;择时 kl_pd.apply(_task_loop) 时间驱动 + 自然周月识别;AbuPickTimeWorker 日任务执行顺序(先卖后买);ipywidgets GUI 无编程量化。
适合读者
本教程适合对量化框架设计、机器学习在交易中的应用、可插拔架构感兴趣的开发者:
- 想深入理解 ABU 内部实现的量化开发者
- 对"用 ML 当交易裁判"这个创新思路感兴趣的研究者
- 想学习抽象基类+Mixin+装饰器+全局开关这套 Python 工程美学的开发者
- 对 GMM 聚类、KNN 投票、黄金分割非均衡这些 ML 技巧在金融场景应用感兴趣的学习者
前置知识:
- Python 进阶(抽象基类、Mixin、装饰器、
__slots__、上下文管理器能读懂) - pandas DataFrame 操作(apply、groupby、shift)
- 量化基本概念(回测/因子/止损/仓位)
- 机器学习基础(svm/knn/gmm/网格搜索,第 7-8 章会用)
⚠️ 重要说明:ABU 项目主体开发活跃期约 2017-2019 年,目前基本停止维护(代码兼容 Python 2、内嵌 six/funcsigs、用过 Caffe)。本教程定位为源码精读与架构学习,不构成投资建议。环境部署需注意老依赖(见第 1 章)。项目自带的
abupy_lecture/32 节 ipynb 是优秀的使用教程,本教程与之互补——它讲"怎么用",本教程讲"内部怎么实现"。
关于源码版本
本教程对照的源码来自 abu-master(GPL 协议,作者 阿布 / abu_quant),版本 0.4.0。核心代码位于 abupy/ 包(约 4.6 万行业务代码 / 225 个 Python 文件),自带教程位于 abupy_lecture/(32 个 ipynb),配套书籍代码位于 ipython/ 和 python/。
目录大纲
最新文档
知识宇宙
正在加载知识图谱...