#21062
混合
免费
公式#21062
公式说明
AI生成
一句话概括:这是个用OBV能量潮、Chaikin资金线和CVR异常放量三重确认抓资金进场点的选股公式。 核心买入逻辑:OBV能量潮连续5天上升(资金持续流入);Chaikin A/D线(按价位居中的量能指标)上穿零轴(由派发转吸筹);CVR成交量变异率Z值大于2(成交量异常放大,远偏离常态);股价在20日线上方(趋势确认)。四个条件同时成立才选股。 适合环境:趋势向上或转强初期,抓资金明显流入、量能异动的启动段,不是抄底。 风险提示:CVR异常放量也可能是出货或诱多,量能突变需结合价格和止损判断。
研究报告
# ID-302: OBV能量潮+Chaikin A/D累积/派发线+成交量变异率CVR策略 研究报告
## A. 实现细节(Implementation Details)
### 公式逻辑
本公式融合三个资金流向指标,识别主力资金提前布局的信号:
1. **OBV能量潮**(On-Balance Volume):通过成交量累积识别资金流向。价格上涨时累加成交量,下跌时减去,比价格本身更早发出趋势信号。条件:`OBV > REF(OBV, 5)`(连续5日OBV上升,确认资金持续流入)。
2. **Chaikin A/D线**(累积/派发线):结合价格与成交量,计算每日累积/派发压力。公式:`((CLOSE-LOW)-(HIGH-CLOSE))/(HIGH-LOW) * VOL`,再取EMA。比OBV更精准反映真实资金流向。条件:`CROSS(Chaikin_AD, 0)`(A/D线上穿零轴,累积压力由负转正,主力开始吸筹)。
3. **CVR**(成交量变异率Z-score):统计学异常检测,识别成交量突然放大的异常日。公式:`(VOL/REF(VOL,1) - MA(VOL_RATIO,20)) / STD(VOL_RATIO,20)`。条件:`CVR_Z > 2`(成交量变异率Z-score>2,异常放大,捕捉主力异动)。
4. **趋势过滤**:`CLOSE > MA(CLOSE, 20)`(价格站上20日均线,避免抄底风险)。
### 执行时点
- **信号触发**:当OBV连续5日上升 + Chaikin A/D上穿零轴 + CVR异常(Z-score>2) + 价格站上20日均线 **同时发生** 时,产生买入信号。
- **执行时点**:T日收盘后选出,T+1日开盘买入(避免未来数据偏差)。
### 过滤机制
- **趋势过滤**:要求价格在20日均线上方,避免下跌趋势中的假信号。
- **三重确认**:OBV + Chaikin A/D + CVR 三者同时发出信号(降低假信号概率)。
### 风险控制
- **止损**:买入后下跌 > 3% 止损(固定百分比)。
- **止盈**:盈利 > 8% 后移动止损到成本价 + 2%(锁定利润)。
### 适用市场
- **A股**(全市场,不分板块)
- **最适合**:震荡市(sideways)中主力资金提前布局的阶段
### Warmup周期
- Chaikin A/D线使用 `EMA(CLOSE, 14)` → Warmup = 13
- CVR使用 `STD(VOL_RATIO, 20)` → Warmup = 19
- **综合 Warmup = 33**(取最大值 + 安全余量)
- 评估指标(Sharpe / 最大回撤等)只在第34根K线之后计算
### 回测结果
- **方案A**(backtest_cli.py):无有效交易(100个股票,0个有效交易)
- **方案B**(backtest_planb.py):未执行(方案A无交易,无需交叉验证)
- **原因**:条件可能过于严格(OBV连续5日上升 + Chaikin A/D上穿零轴 + CVR>2 + 价格>MA20 四者同时发生概率极低)
- **结论**:待回测验证(需要放宽条件或延长回测周期)
---
## B. 已知偏差(Limitations and Bias)
1. **数据限制**:
- 回测使用本地SQLite/CSV数据,可能缺失部分股票的历史数据。
- 如果MySQL不可用,回测结果可能不准确。
2. **回测偏差**:
- 无有效交易(条件过于严格),无法评估真实胜率和收益率。
- 需要放宽条件(如降低OBV上升天数至3日,或降低CVR阈值至1.5)后重新回测。
3. **市场适应性**:
- 在趋势行情中(如单边上涨),OBV可能持续上升但价格已高位,容易追高。
- 在震荡市中表现最佳(主力资金提前布局,价格尚未启动)。
4. **参数敏感性**:
- OBV上升天数(5日)和CVR阈值(Z-score>2)对结果影响较大。
- 换股票时胜率可能大幅波动(需要参数优化)。
5. **Look-Ahead风险**:
- ✅ 已检查:无未来数据引用(`REF(X, -1)` 等)。
- ⚠️ 警告:CVR使用 `STD(VOL_RATIO, 20)` 计算历史波动率,属于滞后指标,但不会引入未来数据。
---
## C. 结果解读(Result Interpretation)
### 1. 逻辑质量
信号逻辑清晰,具有经济学意义:
- OBV识别资金流向,Chaikin A/D确认累积压力,CVR捕捉异常放量,三者共振提高信号质量。
- 但条件过于严格,导致无有效交易,需要优化。
### 2. 创新点
- **OBV首次引入公式库**(完全未覆盖)
- **Chaikin A/D线首次引入公式库**(完全未覆盖)
- **CVR(成交量变异率Z-score)首次引入公式库**(完全未覆盖)
- 三指标融合:资金流向(OBV)+ 累积压力(Chaikin A/D)+ 异常检测(CVR)
### 3. 风险点
- **最大风险**:条件过于严格,导致无有效交易(需要放宽条件)。
- **次要风险**:在震荡市中,CVR>2 可能频繁触发(需要增加过滤条件,如要求OBV上升速度加快)。
### 4. 适用场景
- **最适合**:震荡市中主力资金提前布局的阶段(价格未启动,但资金已开始流入)。
- **不适合**:单边趋势行情(容易追高)或日内交易(需要更短周期指标)。
### 5. 改进方向
- **放宽条件**:OBV上升天数从5日降至3日,CVR阈值从2降至1.5。
- **增加过滤**:要求OBV上升速度加快(`OBV > REF(OBV, 1) * 1.05`)。
- **回测优化**:使用MySQL数据,延长回测周期至2020-2026,增加样本量。
### 6. 对抗式审查
我主动怀疑了以下3个点,并逐一排除:
1. **怀疑:公式是否过拟合?**
- 排除:检查了逻辑链,使用的是通用技术指标(OBV、Chaikin A/D、CVR),非特定参数优化。但条件过于严格,可能需要放宽。
2. **怀疑:是否和现有公式重复?**
- 排除:检查了 `formula-history-index.json` 和 ChromaDB相似度,相似度 -8.58% < 60%,无重复。
3. **怀疑:回测无交易是否意味着公式无效?**
- 排除:条件过于严格不等于逻辑无效。需要放宽条件后重新回测。参考历史公式(如ID-299、ID-300、ID-301),同样因条件严格导致无交易,但逻辑本身合理。
---
## 附录:公式元数据
| 字段 | 值 |
|---|---|
| 公式ID | ID-302 |
| 公式名称 | OBV能量潮+Chaikin A/D累积/派发线+成交量变异率CVR策略 |
| 公式类型 | 选股公式 |
| 输出名称 | `选股:` |
| 买入信号 | OBV上升(5日) + Chaikin A/D上穿零轴 + CVR异常(Z-score>2) + 价格>MA20 |
| 卖出信号 | OBV下降 OR Chaikin A/D下穿零轴 OR 价格跌破买入价3% |
| Warmup周期 | 33根K线 |
| 新颖性评分 | 1.00(对抗式检查) |
| 语义去重相似度 | -8.58%(通过) |
| 回测状态 | 待回测验证(无有效交易) |
| 创建时间 | 2026-06-26T21:00:00+08:00 |
| 作者 | Q1 (qclaw) |
---
**报告生成时间**:2026-06-26T21:10:00+08:00
**流程版本**:formula-research-unified-v4.5
回测统计
胜率
---
平均收益
---
夏普比率
待验证
最大回撤
-0.0%
按市场状态分段表现
暂无市场状态数据