Files
my_wiki/wiki/practices/阿布量化策略开发与回测.md
T

93 lines
5.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: "阿布量化策略开发与回测"
source: "https://github.com/bbfamily/abu (commit d602d847677e4c2b77b0a122df30816ea68b5710)"
created: 2026-08-07
updated: 2026-08-07
type: practice
tags:
- "量化"
- "策略开发"
- "回测"
- "因子"
confidence: medium
contested: false
raw_sources:
- path: "raw/量化/abuquant/abuquant-策略开发与回测实践摘编.md"
hash: "sha256:fc63e6c7799ee5af9f084f45982ec45469428e68f4070f8b38067ed1d760482a"
- path: "raw/量化/abuquant/abuquant-框架架构摘编.md"
hash: "sha256:1d40144383bd5f8e0f5d6049da545abb2933a83328693dc2d7852af9e70291d6"
---
# 阿布量化策略开发与回测
## 页面定位
本页是阿布量化框架**策略开发与回测的实践页**,记录可执行流程:择时因子编写、止盈止损、滑点手续费、仓位管理、选股因子、度量、参数寻优、机器学习集成与数据源接入。它不解释框架架构(见[[阿布量化框架架构|阿布量化框架架构]]),不展开期货专项(见[[期货量化回测与位移路程比|期货量化回测与位移路程比]])。所有 API 名称以源码为准,未执行回测复现。
## 一、择时策略开发(notebook 1)
1. **编写买入择时因子**:继承 `AbuFactorBuyBase` + 混入方向类(BuyCallMixin/BuyPutMixin),实现 `fit_day(today, orders)` 调用 `self.buy_tomorrow(order)` 生成次日订单。
2. **分解模式逐步回测**:先只挂买入因子观察买入点,再叠加卖出因子。
3. **编写卖出因子**:继承 `AbuFactorSellBase``fit_day``self.sell_tomorrow(order)`
关键约定:`buy_tomorrow/sell_tomorrow` 次日成交(避免未来函数);`_init_self(**kwargs)` 读取自定义参数。
## 二、止盈止损与风险控制(notebook 2)
| 类型 | 代表因子 | 作用 |
|---|---|---|
| 基本止盈止损 | AbuFactorAtrNStopn 倍 ATR | 保护利润、控制风险 |
| 风险控制止损 | AbuFactorPreAtrNStop(单日最大跌幅 n 倍 ATR) | 单边风险控制 |
| 利润保护止盈 | AbuFactorCloseAtrNStop(利润回撤) | 只做单边止盈 |
ATR 定义:`TR = max(|最高-最低|, |最高-昨收|, |昨收-最低|)`ATR 为 TR 的均值。
## 三、滑点与手续费(notebook 3)
- 默认均价买入/卖出(AbuSlippageBuyMean/SellMean):简单高效,交易数量足够时接近实盘;**不考虑大资金冲击成本**,实盘迁移需日内分钟 K 线择时。
- `AbuCommission` 计算手续费,`order.commission` 记录。
## 四、多股票与仓位管理(notebook 4)
- 多股票可用同一因子组合,也可分别指定因子。
- 仓位管理默认 `AbuAtrPosition`,示例还有 Kelly、价格位置仓位;可通过全局默认或 kwargs 指定。
- 并行:`AbuPickTimeMaster` 多进程调度(Windows 注意 ProcessPoolExecutor 实现)。
## 五、选股策略(notebook 5
- 选股因子继承 `AbuPickStockBase`,实现 `fit_first_choice` 等方法;示例:价格、拟合角度、相似度、位移路程比选股。
- 多因子并行;择时周期内每月/每周动态重新选股。
## 六、度量、参数寻优与评分(notebook 6-7
- `AbuMetricsBase` 度量收益/回撤/胜率等,可自定义度量类;期货用 `AbuMetricsFutures`
- `AbuGridSearch` 网格搜索因子参数(如"均线看多少天"),`AbuScoreTuple`/`AbuBaseScorer` 评分(支持权重与自定义),`AbuCrossVal` 交叉验证。
## 七、机器学习集成(notebook 12
- `AbuMLFeature` 定义特征(支持扩展)→ `AbuML` 中间层 → `AbuMLCreater` 封装学习器 → `AbuMLPd` 业务封装。
- 测试集验证与非均衡技术;应用场景:UMP 裁判训练、策略有效性验证(notebook 32)。
## 八、数据源接入(notebook 19
数据模式/存储/数据源三层均可切换;`ABuDataCache` merge 更新;外部数据源可接股票/期货/数字货币;所有取数统一走 `ABuSymbolPd`
## 九、开发注意事项
- 卖出因子用于期货需 `support_direction()` 声明支持 put`fit_day``order.expect_direction` 正负区分(call:暴跌止损;put:暴涨止损)。
- 买入因子方向唯一(一个因子不能同看涨又看跌)。
- 数据访问统一走 `ABuSymbolPd`
- 选股因子可用 `lock_factor` 封锁本源买入因子。
## 十、证据边界
- 本页基于教学 notebook 与源码 docstring 提炼,未复现任何回测;沙盒示例收益数字不具代表性(数据量小、依赖旧数据文件)。
- 教学流程可用作学习/原型参考;实盘部署需自行解决数据、滑点、手续费与合规。
## 十一、相关页面
- [[阿布量化框架架构|阿布量化框架架构]] - 模块分层与核心机制
- [[期货量化回测与位移路程比|期货量化回测与位移路程比]] - 期货双向策略与品种筛选
- [[技术分析形态与突破确认|技术分析形态与突破确认]] - 技术信号的确认与失效条件
- [[股票交易纪律与资金管理|股票交易纪律与资金管理]] - 资金管理与止损的独立实践