ingest | 阿布量化(bbfamily/abu)开源项目知识融入:3 摘编 + 3 wiki 页面 + 导航/登记更新
This commit is contained in:
@@ -0,0 +1,90 @@
|
||||
---
|
||||
title: "期货量化回测与位移路程比"
|
||||
source: "https://github.com/bbfamily/abu (commit d602d847677e4c2b77b0a122df30816ea68b5710)"
|
||||
created: 2026-08-07
|
||||
updated: 2026-08-07
|
||||
type: practice
|
||||
tags:
|
||||
- "量化"
|
||||
- "期货"
|
||||
- "回测"
|
||||
- "趋势跟踪"
|
||||
- "品种筛选"
|
||||
confidence: medium
|
||||
contested: true
|
||||
raw_sources:
|
||||
- path: "raw/量化/abuquant/abuquant-期货回测与位移路程比摘编.md"
|
||||
hash: "sha256:8a5d4fdf3e8ce52e78531a919bf008d1ea6f3eb7013415370e22a54183a62cf3"
|
||||
- path: "raw/量化/abuquant/abuquant-框架架构摘编.md"
|
||||
hash: "sha256:1d40144383bd5f8e0f5d6049da545abb2933a83328693dc2d7852af9e70291d6"
|
||||
---
|
||||
|
||||
# 期货量化回测与位移路程比
|
||||
|
||||
## 页面定位
|
||||
|
||||
本页提炼阿布量化对**期货市场**的量化处理方法:连续合约数据、保证金与强平机制、看涨/看跌双向策略、位移路程比(shift/distance)品种筛选、内外盘低频统计套利思路。它属于方法论实践页,与具体品种研究([[焦煤期货研究框架|焦煤期货研究框架]]、[[玻璃期货研究框架|玻璃期货研究框架]])互补:本页讲量化回测技术,品种页讲基本面。教学示例数字仅用于说明机制,不代表真实回测结论。
|
||||
|
||||
## 一、期货数据与合约要素
|
||||
|
||||
- 量化用**连续合约**(如 JM0 焦煤、I0 铁矿石、RB0 螺纹钢、FG0 玻璃),而非具体月份合约(如 JD1709)。
|
||||
- 合约要素(AbuFuturesCn):`min_uni` 每手数量(鸡蛋 5 吨/手、胶合板 500 张/手)、`commission` 每手手续费、`min_deposit` 最低保证金比例(0.08=8%)。
|
||||
- 内置沙盒 46 个品种:覆盖大商所(J0/JM0/I0/M0/Y0/A0/B0 等)、郑商所(TA0/FG0/ZC0/MA0/SR0/CF0 等)、上期所(CU0/AL0/RB0/HC0/AG0/AU0/NI0 等)。
|
||||
|
||||
## 二、保证金、强平与交割(教学机制)
|
||||
|
||||
- 保证金杠杆:以鸡蛋为例,4014 元/吨 × 5 吨/手 × 20 手 ≈ 40 万货值,8% 保证金约 3 万+ 即可开仓;收益与风险同比例放大。
|
||||
- 价格反向时账户净值不足新保证金要求 → 期货公司先要求追加,否则**强行平仓**。
|
||||
- 看跌(put)机制:可理解为"借入商品卖出、低价买回归还",赚取差价。
|
||||
- 交割限制:个人投机账户无实物交割资格,持有到交割日由交易所强平;"保值"账户仅限有资格企业。
|
||||
|
||||
## 三、双向策略实现
|
||||
|
||||
- 市场目标切换:`g_market_target = E_MARKET_TARGET_FUTURES_CN`。
|
||||
- 看涨:向上突破买入因子(如 AbuFactorBuyBreak);看跌:向下突破因子 AbuFactorBuyPutBreak(混入 BuyPutMixin,expect_direction=-1)。
|
||||
- 卖出因子需 `support_direction()` 声明双向支持,按 `order.expect_direction` 区分:call 方向"暴跌止损"、put 方向"暴涨止损"(示例 `(pre_close - close) * expect_direction > atr21 * pre_atr_n`)。
|
||||
- 周期选择需适配品种:期货有交割周期与季节性,突破参数宜从 42/60 调整为 21/42 天;比特币示例用重采样确定 10 天上下周期。
|
||||
|
||||
## 四、位移路程比(shift/distance)
|
||||
|
||||
### 定义
|
||||
|
||||
```text
|
||||
sd = shift / distance
|
||||
shift = 起终点直线距离(价格净变化,位移)
|
||||
distance = 路径实际走过的总距离(路程)
|
||||
```
|
||||
|
||||
- `sd` 接近 1:走势干净、趋势保持好;`sd` 显著大于 1:反复震荡、趋势快速回复。
|
||||
- 实现:`ABuTLExecute.shift_distance`,返回 (h_distance 底边, v_distance 垂直, distance 路程, shift 位移, sd);`show_shift_distance(how, step_x)` 可视化,`how` 可选 close(序列最后元素)/maxmin(趋势极限值)/sum_maxmin。
|
||||
|
||||
### 选股逻辑(趋势突破策略适用性)
|
||||
|
||||
| sd 特征 | 品种示例 | 结论 |
|
||||
|---|---|---|
|
||||
| 基本 <2,偶有 >2 段 | V0 PVC | 符合:能惯性保持趋势,涨跌都有机会 |
|
||||
| 多次 >2.0 | FB0 纤维板 | 过滤:短涨即反弹,趋势无法保持 |
|
||||
| 无 >2.0 | Y0 豆油 | 过滤:太平稳,无趋势 |
|
||||
|
||||
- 应用:38 个期货品种先全品种回测(收益一般),再用位移路程比选股缩小品种池 → 提升突破策略适配性。
|
||||
- 实现因子:`AbuPickStockShiftDistance`(PickStockBu)。
|
||||
|
||||
## 五、方法要点与引申
|
||||
|
||||
- **品种筛选优先于参数优化**:先用趋势持续性指标(位移路程比)筛品种,再优化参数。
|
||||
- 双向策略下,止损因子逻辑必须按方向区分。
|
||||
- 内外盘低频统计套利(notebook 25):同一/相关品种跨市场价差关系,教学示例,需结合具体市场规则核验。
|
||||
|
||||
## 六、证据与不确定性
|
||||
|
||||
- 教学示例中的价格/收益数字(2017 年鸡蛋等)仅用于说明机制,不构成真实历史回测结论。
|
||||
- 沙盒数据(2017 年前后内置)仅供学习;实盘需外部数据源并重新核验合约参数(保证金比例、手续费随交易所规则变化)。
|
||||
- 位移路程比是**趋势持续性**的度量工具,不预测方向;需配合止损、仓位与基本面。
|
||||
|
||||
## 七、相关页面
|
||||
|
||||
- [[阿布量化框架架构|阿布量化框架架构]] - 框架模块与 UMP 裁判机制
|
||||
- [[阿布量化策略开发与回测|阿布量化策略开发与回测]] - 因子开发、度量与参数寻优流程
|
||||
- [[焦煤期货研究框架|焦煤期货研究框架]] - 焦煤基本面与盘面研究框架
|
||||
- [[技术分析形态与突破确认|技术分析形态与突破确认]] - 突破信号确认与假突破
|
||||
- [[商品市场金融化与库存套利|商品市场金融化与库存套利]] - 期现、基差与库存的宏观背景
|
||||
@@ -0,0 +1,92 @@
|
||||
---
|
||||
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 提炼,未复现任何回测;沙盒示例收益数字不具代表性(数据量小、依赖旧数据文件)。
|
||||
- 教学流程可用作学习/原型参考;实盘部署需自行解决数据、滑点、手续费与合规。
|
||||
|
||||
## 十一、相关页面
|
||||
|
||||
- [[阿布量化框架架构|阿布量化框架架构]] - 模块分层与核心机制
|
||||
- [[期货量化回测与位移路程比|期货量化回测与位移路程比]] - 期货双向策略与品种筛选
|
||||
- [[技术分析形态与突破确认|技术分析形态与突破确认]] - 技术信号的确认与失效条件
|
||||
- [[股票交易纪律与资金管理|股票交易纪律与资金管理]] - 资金管理与止损的独立实践
|
||||
Reference in New Issue
Block a user