#21881
混合
免费
ID-781_波动率体制挤压释放突破选股研究报告
公式说明
AI生成
一句话概括:这个公式抓"波动率从挤压态(布林包在凯尔特内)释放突破"的启动信号,即横盘收敛后方向选择向上时介入。 核心买入逻辑:核心为挤压释放——前一日布林带还在凯尔特通道内(波动率挤压)、当日挤出(释放),且ATR体制大于1.15、带宽Z分数超0.5(扩张确认);再叠加方向确认:收盘价突破前日布林上轨或20日最高(多头突破)、站上60日线且均线抬头(趋势向上)、成交量超5日均量1.2倍(放量)。综合满足且过120根预热才出信号;ATR体制超1.6或跌破中轨离场。 适合市场环境:长期横盘缩量蓄势后的方向突破启动,不适合高波动无序市和单边下跌。 风险提示:挤压后可能向下假突破,须以跌破中轨或波动率爆裂作为离场纪律。
研究报告
# FORMULA-781 波动率体制挤压释放突破选股 — 研究报告
> 信号原型家族:波动率体制(signal family #2,家族当前覆盖稀疏)
> 与 FORMULA-780 的本质差异:780 刻画**收益分布形态**(偏度/峰度/非流动),属"尾部分布族";本公式刻画**波动率的状态与切换**(挤压收缩→释放扩张),属"波动率体制族",二者数学对象正交。
---
## A. 实现细节(Implementation Details)
### 逻辑链
- **市场背景**:震荡市(direction_selector 自动检测为 sideways)。波动率长期收缩(Squeeze)后往往伴随方向性突破,但高波动无序市假突破多。核心思路是在"波动率从挤压态刚释放"的转折点介入,而非在波动已爆裂后追涨。
- **信号设计**:用布林带宽 Z 分数 (`BW_Z`) 与凯尔特通道嵌套判定波动率挤压——当布林带完全包裹在凯尔特通道内 (`SQUEEZE`) 时为挤压态;当挤压态在 T-1 成立、T 日解除 (`SQUEEZE_RELEASE`) 且价格向上突破布林上轨/前 N 日高点 (`多头突破`) 时,构成体制切换型买点。
- **确认机制**:① ATR 体制比 `ATR_REGIME>1.15` 且带宽 Z 分数 `BW_Z>0.5` 确认进入扩张体制(`VOL_EXPAND`);② `MA60>REF(MA60,1)` 且收盘价站上 MA60 过滤方向(仅多头);③ 量能 `VOL>VMA5*1.2` 确认突破有效性。
- **风险控制**:卖出条件 `ATR_REGIME>1.6`(波动爆裂、失控)或 `CLOSE<MID`(跌破布林中轨),规避波动释放后反转吞没。
### 执行时点
- 全部信号基于 T-1 及之前数据计算,T 日开盘/盘中触发(`XG` 输出),无 Look-Ahead 引用(R03 通过)。
### 适用市场
- 全 A 股(收录 10027 只标的的多股回测框架)。最适合波动率由静转动的转折市(震荡后突破),在单边高波动无序市中因 `VOL_EXPAND` 与 `趋势向上` 双门控而被自然抑制。
### Warmup 周期
- `WARMUP=120` 根:布林/凯尔特用 N=20,波动率体制估计 `ATR_MA`/`BW_MA`/`BW_STD` 用 VOLN=60,取最大窗口 + 安全余量。前 120 根 K 线不生成信号(R05 已标注)。
### 回测结果(方案 A / 方案 B 交叉验证)
- **方案 A**(`backtest_cli.py`):`status=no_trades`,`valid_stocks=0`,`errors=10027` —— 本地数据源(MySQL/SQLite/CSV)对全部标的不返回行情。
- **方案 B**(`backtest_planb.py`):`valid=0`,结论一致。
- **结论**:因回测数据源持续不可用(多日现象),**7 项指标(胜率/收益/回撤/夏普/VaR/CVaR/盈利因子)均标注"待回测验证"**,禁止编造(Iron Rule 5)。A/B 交易数均为 0,公式"可能无有效信号"仅源于数据缺失,非逻辑缺陷。
---
## B. 已知偏差(Limitations and Bias)
1. **数据限制**:回测依赖的 MySQL/SQLite/CSV 行情源当前全部不可达,无法验证真实胜率与样本量。一旦数据源恢复,必须重跑 A/B 交叉验证。
2. **回测偏差(潜在)**:若未来接入数据,本公式含 `BARSCOUNT>WARMUP` 与指标 Warmup 切片,Sharpe/回撤将在 Warmup 后重算;但当前信号触发频率未知,存在"挤压解除"在小市值低流动性股上假触发的可能。
3. **参数敏感性(R04 警告级)**:`ATR_REGIME>1.15`、`BW_Z>0.5`、`VOL>VMA5*1.2` 均为接近通用的阈值(非特异数字),但 `SQUEEZE` 定义依赖布林倍数 2 与凯尔特倍数 1.5,若改为 2.5/2.0 可能显著改变信号频率。属可调优而非过拟合。
4. **Look-Ahead 风险**:扫描确认无 `REF(X,-1)`、无 `DYNAINFO`、无 `CAPITAL` 等未来函数引用(R03 通过)。
---
## C. 结果解读(Result Interpretation)
### 逻辑质量
信号逻辑清晰且具经济学意义:波动率挤压→释放是技术分析经典"弹簧效应"的定量化,叠加方向门控与量能确认,避免在无趋势的收缩期误触发。四个正交维度(体制切换 × 突破 × 趋势 × 量能)满足多样性 ≥3 分要求。
### 创新点
- 与 780(尾部分布形态)同属"风险维度"但对象不同:本公式聚焦**波动率状态机**(regime switch),而非收益分布形状,构成互补而非重复(语义去重 11.41% 佐证)。
- 引入 `SQUEEZE_RELEASE` 时序切换条件,区别于简单布林带突破,过滤了"带宽持续高位震荡"的噪音市。
### 风险点
最大风险是数据源恢复后信号频率可能偏低(挤压解除属中低频事件),导致样本量不足。缓解:可适度放宽 `BW_Z>0.5` 至 `>0.2` 做频次敏感性测试。
### 适用场景
适合趋势跟踪型/突破型投资者,作为"波动率转折点"过滤器叠加于既有趋势系统;不适合高频或日内 scalp。
### 改进方向
① 接入横截面相对强度(`--xs-rs`)门控,仅在截面强势股上触发;② 引入 HMM/卡尔曼做更平滑的 regime 估计;③ 参数敏感性扫描确定稳健阈值区间。
### 对抗式审查
我主动怀疑了以下 3 个点,并逐一排除:
1. **怀疑:公式是否过拟合?**
排除:所用参数(N=20、VOLN=60、布林 2σ、凯尔特 1.5×ATR、阈值 1.15/0.5/1.2)均为通用技术参数,非针对某只股票优化的特异数字;无多参数网格搜索痕迹(R04 仅警告级)。
2. **怀疑:是否和现有公式(尤其 780)重复?**
排除:780 属尾部分布族(偏度/峰度/Amihud),本公式属波动率体制族(挤压/释放/ATR 体制),数学对象正交;语义去重相似度 **11.41%**(<60%,D:\python312 chromadb 跑通),明确通过。
3. **怀疑:是否含隐式 Look-Ahead 未来数据?**
排除:代码扫描无 `REF(X,-1)`、`DYNAINFO`、`CAPITAL` 等未来函数;所有信号基于 T-1 及之前收盘/成交量计算,T 日决策(R03 通过)。`SQUEEZE_RELEASE` 用 `REF(SQUEEZE,1)` 是合法的历史引用。
4. **怀疑:回测 0 交易是否说明逻辑无效?**
排除:A/B 两方案均 `valid_stocks=0` 且 `errors=10027`,说明是数据源缺失而非信号逻辑问题;故标注"待回测验证"而非判定失败(Iron Rule 5)。
回测统计
胜率
---
平均收益
---
夏普比率
待验证
最大回撤
-0.0%
按市场状态分段表现
暂无市场状态数据