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