93 lines
5.0 KiB
Markdown
93 lines
5.0 KiB
Markdown
---
|
||
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)
|
||
|
||
| 类型 | 代表因子 | 作用 |
|
||
|---|---|---|
|
||
| 基本止盈止损 | AbuFactorAtrNStop(n 倍 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 提炼,未复现任何回测;沙盒示例收益数字不具代表性(数据量小、依赖旧数据文件)。
|
||
- 教学流程可用作学习/原型参考;实盘部署需自行解决数据、滑点、手续费与合规。
|
||
|
||
## 十一、相关页面
|
||
|
||
- [[阿布量化框架架构|阿布量化框架架构]] - 模块分层与核心机制
|
||
- [[期货量化回测与位移路程比|期货量化回测与位移路程比]] - 期货双向策略与品种筛选
|
||
- [[技术分析形态与突破确认|技术分析形态与突破确认]] - 技术信号的确认与失效条件
|
||
- [[股票交易纪律与资金管理|股票交易纪律与资金管理]] - 资金管理与止损的独立实践
|