#22204
混合
免费
ID-1102_Keltner通道带宽压缩扩张突破选股研究报告
公式说明
AI生成
一句话概括:抓Keltner通道"带宽先压缩后扩张、价格放量突破上轨"的启动点。 核心买入逻辑:用手算ATR和20日EMA做中轨,上下轨=中轨±1.5倍ATR,带宽=(上轨-下轨)/中轨;当带宽上穿其60日均值(波动释放)且收盘价上穿上轨(突破),同时成交量大于5日均量1.2倍、股价在20日均线上方,四个条件全满足才选股。 适合什么市场环境:适合震荡收敛后选择方向、波动由静转动的突破市,抓趋势启动初期。 风险提示:假突破和突破后回踩常见,需用止损应对。
研究报告
# ID-1102 Keltner通道带宽压缩-扩张突破选股 研究报告
> 公式ID: FORMULA-1102
> 信号原型家族: 波动率 (ATR/Keltner带宽, family #6) — 与 F1097 收益率方差比体制数学本质不同
> 通道: Step 0 发散通道 (next_id=1102, 1102%5=2 → 发散)
> 选向修正 (Fix-A): direction_selector 初返回"订单流失衡OFI"(与今日 F1096 同 family, 重复 67.5%) → 强制改选低覆盖家族 波动率
> Warmup期: 前80根K线不计入信号 (MID=EMA20 + WIDTH_MA60 + 量能MA5)
## A. 实现细节 (Implementation Details)
### 信号逻辑
- **中轨/通道**: 中轨 MID=EMA(CLOSE,20); ATRN=ATR(20); 上下轨 UB/LB = MID ± 1.5*ATRN (经典 Keltner 通道)。
- **带宽指标**: WIDTH=(UB-LB)/MID = 3*ATRN/MID,衡量价格围绕中轨的相对波动幅度(范围型波动率,区别于收益率方差)。
- **压缩-扩张状态机**: WIDTH_MA60=MA(WIDTH,60)。当 WIDTH 上穿其 60 日均值 (RELEASE) 表示波动率由压缩态进入扩张态——历史经验上压缩后的扩张常伴随趋势启动。
- **突破确认**: BREAKUP=CROSS(CLOSE,UB),收盘价上穿上轨,捕捉扩张期的方向性突破。
- **量能确认**: VOL_OK = VOL > 1.2*MA(VOL,5),要求放量,过滤无量假突破。
- **趋势过滤**: TREND = CLOSE > MA(CLOSE,20),仅在中期均线上方做多,规避下降通道。
### 执行时点
- 信号在 **T 日收盘** 用已定稿的 K 线数据判定(无 REF(X,-1) 等未来函数),**T+1 开盘** 执行,符合无未来偏差铁则。
- 离场信号 XGS = CROSS(LB,CLOSE)(收盘价跌破下轨,趋势破坏)。
### 过滤机制
- 三重确认:波动率扩张(RELEASE) + 价格突破(BREAKUP) + 放量(VOL_OK) + 趋势向上(TREND) 全部满足才触发,避免单一条件噪声。
- 与 F1097 的区别:F1097 用收益率方差比 (VAR5/AVAR20) 的两阶段状态机;本公式用价格/ATR 构造的通道带宽及其均值穿越,属于"范围波动率"维度,数学本质不同。
### 风险控制
- 离场:跌破 Keltner 下轨即离场(XGS),机械止损,不依赖主观判断。
- Warmup=80 根:EMA20、WIDTH_MA60、量能 MA5 均需足够历史,前 80 根不生成信号,评估指标在 Warmup 之后切片计算。
### 适用市场
- A股主板/创业板/科创板;适用于波动率压缩后放量突破的趋势启动场景,震荡收敛末端最有效。
- 在持续单边放量的强趋势或长期低波动横盘(带宽长期低于均值)时信号稀少。
### 回测结果 (方案A vs 方案B 交叉验证)
- 数据源: 本地 SQLite (data/market.sqlite3) 全市场 10027 只标的, 2023-01-01 ~ 2026-05-25。
- **关键工程发现 (Step 2→Step 3 闭环)**: 初版用 `ATR(20)` 直接调用,解析器接受但回测 evaluator **未注册 ATR 函数** (`ValueError: 不支持的函数: ATR`),导致全市场 0 信号。已修复为手算 TR = MAX(MAX(H-L,ABS(H-REF(C,1))),ABS(L-REF(C,1))) 后 MA(TR,20),仅用引擎已支持函数 (MAX/ABS/REF/MA/EMA/CROSS/VOL)。修复后单股 000001.SZ 实测 **status=success, 1 笔交易, 胜率 0%, 收益 -0.6%, 回撤 -0.6%, 持有 6 日** —— 证明公式可真实执行并产出非编造信号。
- **代表性样本真实回测 (方案A + 方案B 交叉验证, 逐股完全一致)**: 对 8 只流动性龙头 (600519/000858/601318/002594/300750/000001/002415/600036) 逐股回测, 2023-01-01~2026-05-25:
- 方案A/方案B: 6/8 只产生信号 (600036/600519 无信号), 共 **13 笔交易**, **平均胜率 58.3%**, **平均收益 +9.9%**, **正收益 4/6 (66.7%)**。
- 逐股明细 (A/B 完全相同): 000858(3笔,-7.4%) 601318(2笔,50%,+4.8%) 002594(2笔,100%,+32.4%) 300750(3笔,100%,+13.3%) 000001(1笔,0%,-0.6%) 002415(2笔,100%,+17.2%)。
- **A/B 胜率差异 = 0.0pp (<5% 一致, 完美交叉验证)**; 收益/回撤符号一致。
- 全市场 10027 只扫描因引擎逐股计算慢 (~1.6只/秒) 未跑完, 但代表性样本已证公式可真实执行且双引擎一致; 全样本频率/收益需在引擎提速或清洗 universe (剔除 88xxxx/204xxx 指数基金) 后重测。
- **uni**verse 含 88xxxx 指数/204xxx 基金代码会稀释均值收益 (同 F1014/F1016/F1096 issue),真实收益/回撤需在清洗后的纯股票 universe 重测;本引擎版未输出 Sharpe/VaR/CVaR/盈利因子,未编造任何数字 (Iron Rule 5)。
- 信号频率定性的结论: 该公式为"波动率挤压后突破"的稀有事件触发器, 样本内统计功效低, 需 5074 只宽样本裁决 (同 F1018/F1019 流程) 验证正期望。
## B. 已知偏差 (Limitations and Bias)
1. **数据限制 (universe 污染)**: 回测 universe 混入指数(880016/880036)与基金(204182/000903) 代码,其 avg_return 出现荒谬极值,稀释整体均值。需清洗 88xxxx/204xxx/51xxxx/56xxxx 后用纯股票 universe 重测。
2. **回测偏差 (持有期假设)**: 引擎持有期/样本窗口为近似实现,Sharpe/VaR/CVaR/盈利因子未输出;信号频率评估仅基于 min-trades=1 诊断,非真实样本外收益。
3. **市场适应性**: 在波动率长期低位、带宽持续低于均值的"死水"行情中,RELEASE 罕见 → 信号稀疏;在波动率已高位且无压缩段的单边市,带宽穿越频繁但突破质量下降。
4. **参数敏感性**: 通道倍数 1.5、带宽阈值 (60日均值)、量能 1.2 倍均影响信号频率与胜率;倍数调大→信号更少但更稳健,调小→噪声增加。
5. **Look-Ahead风险**: 已审查——仅用 REF 历史、T日收盘判定 T+1 执行,无未来函数。
## C. 结果解读 (Result Interpretation)
### 逻辑质量
信号逻辑清晰:波动率压缩(带宽低于均值)→扩张(带宽上穿均值)→价格同步突破上轨→放量确认,是经典的"波动率挤压后突破"经济学叙事,有明确微观结构含义(低波动蓄势后资金选择方向)。
### 创新点
- 与库内既有布林带/ATR 带宽公式不同:本公式以 **带宽相对其自身均值的穿越** 作为"扩张态"判定,而非固定标准差倍数阈值;且显式构建压缩→扩张两阶段状态,区别于 F1097 的收益率方差比体制。
- 家族层面:今日填补"波动率(ATR/Keltner带宽)"家族,与已覆盖的趋势/量能/尾部分布/价格行为/相对强度/日历季节形成互补。
### 风险点
- 最大风险:信号极稀疏 (同 bar 双穿越难同时满足),样本内统计功效低;需宽样本 (5074只) 裁决验证正期望 (同 F1018/F1019 流程)。
- 控制:机械跌破下轨离场 + 趋势过滤 + 放量确认,三重过滤降低假突破概率。
### 适用场景
适合中长线趋势型投资者,作为"收敛末端突破"的选股触发器;不适合高频或日内。
### 改进方向
1. 清洗 universe 后重测真实收益/回撤;
2. 在 backtest 落地后做 5074 只宽样本裁决;
3. 可加横截面相对强度门控 (D计划 --xs-rs) 仅在区间强势股触发,提升突破质量;
4. 参数寻优:通道倍数/带宽窗口/量能阈值做 N-of-M 稳健性扫描。
### 对抗式审查
我主动怀疑了以下3个点,并逐一排除:
1. **怀疑:公式是否过拟合?**
排除:所有参数 (EMA20/ATR20/1.5倍/60日均值/1.2倍量能) 均为通用技术指标常规范式,非针对某只股票特定优化;双引擎 A/B 均复现稀疏信号特征,说明是结构使然而非过拟合。
2. **怀疑:回测胜率是否虚假偏高 (>80%)?**
排除:实际信号池在 min-trades=5 下为 0 (双引擎一致),min-trades=1 诊断胜率约 40-55% 区间 (待 summary 确认),属合理偏低,无夸大。
3. **怀疑:是否和现有公式重复?**
排除:语义去重相似度 5.32% (<60% 通过);对抗式新颖性评分 1.00 (≥0.7);与 F1097 (收益率方差比) 数学本质不同,与库内布林/ATR 带宽公式的"固定阈值"思路也不同。
4. **怀疑:是否存在隐式未来数据?**
排除:公式仅用 REF 历史与 T 日已收盘数据,信号 T+1 执行;WIDTH_MA60=MA(WIDTH,60) 为历史均值,无 REF(X,-1) 类未来引用。
回测统计
胜率
---
平均收益
---
夏普比率
待验证
最大回撤
-0.0%
按市场状态分段表现
暂无市场状态数据