#21021
混合
免费
N: 布林带周期; P: 标准差倍数; RSI_N: RSI周期; VOL_RATIO: 缩量比率
公式说明
AI生成
1.一句话概括:这个公式在股价跌到布林带下轨附近、RSI超卖且缩量时找买点,涨到上轨附近、RSI超买且放量时找卖点。 2.核心买入逻辑:用布林带下轨(20日线±2倍标准差)判断股价是否到低位,要求最低价触及下轨或收盘贴近下轨;RSI6低于30为超卖且当天拐头向上;成交量小于5日均量0.7倍为缩量;再加上当天收阳线,五条件同时满足才买入。另有上市20天后的过滤。 3.适合环境:典型的横盘震荡市做高抛低吸,或超跌反弹初期,不适合单边上涨(易过早卖)或单边下跌(下轨会不断下移)。 4.风险提示:跌破下轨后可能继续下跌,缩量超卖不代表立刻反转,需防假信号并设置止损。
研究报告
# 研究报告:布林带RSI震荡市均值回归策略(ID-259)
## A. 实现细节(Implementation Details)
### 公式逻辑
本公式基于**震荡市均值回归**理念,结合布林带(Bollinger Bands)的动态通道、RSI(相对强弱指标)的超买超卖信号,以及成交量确认,构建低吸高抛的震荡市交易系统。
**信号类型**:选股公式(买入信号 + 卖出信号)
**指标与参数**:
- 布林带:`N=20`(中轨周期),`P=2`(标准差倍数)
- RSI:`RSI_N=6`(6日RSI,敏感捕捉短期超买超卖)
- 成交量:`VOL_RATIO=0.7`(缩量阈值,5日均量的0.7倍以下视为抛压枯竭)
**为什么这样设计?**
1. **布林带**:在震荡市中,价格围绕均线上下波动,布林带自动适应波动率变化——波动率收缩时通道收窄,扩张时通道放宽。下轨代表潜在超卖支撑,上轨代表潜在超买阻力。
2. **RSI(6)**:相比传统的RSI(14),RSI(6)更敏感,能更快捕捉短期超买超卖反转机会,适合震荡市快速轮动。
3. **成交量缩量**:价格触及下轨时,如果成交量萎缩至5日均量0.7倍以下,说明抛压枯竭,空头力量衰减,反弹概率增大。
### 执行时点
- **买入信号触发时点**:当前K线收盘后,满足所有条件(触及下轨 + RSI<30 + 缩量 + RSI拐头 + 阳线)
- **执行时点**:下一交易日开盘(避免Look-Ahead偏差)
- **卖出信号触发时点**:当前K线收盘后,满足所有条件(触及上轨 + RSI>70 + 放量)
- **执行时点**:下一交易日开盘
### 过滤机制
1. **Warmup过滤**:前20根K线不生成信号(布林带MA20需要足够历史数据计算)
2. **RSI拐头确认**:RSI6 > REF(RSI6,1)(动量确实反转,非单纯超卖)
3. **阳线确认**:CLOSE > OPEN(多头动能确认,过滤假突破)
### 风险控制
1. **止损**:买入后下跌 > 3% 止损(以买入价计算)
2. **止盈**:参考布林上轨,或盈利 > 10% 后移动止损到成本价
3. **最大回撤控制**:单次交易最大回撤不超过3%
### 适用市场
- **市场类型**:A股、港股、美股均适用
- **市场状态**:震荡市(sideways)效果最佳;趋势市中需谨慎(可能频繁止损)
- **适用板块**:所有板块(无行业偏向)
### Warmup周期
- **Warmup = 20根K线**(布林带中轨使用MA(CLOSE,20),需要前19根K线计算第一个MA值)
- **信号生成起始点**:从第21根K线开始
### 回测结果
> **待回测验证**(backtest_cli.py 无有效交易数据,backtest_planb.py 语法错误,需修复脚本后补充)
---
## B. 已知偏差(Limitations and Bias)
### 1. 数据限制
- **数据源**:回测依赖本地SQLite/CSV数据,当前存在数据格式问题(CSV日期含时间戳,不符合YYYY-MM-DD标准),导致回测脚本无法读取。
- **样本外数据**:公式在样本内(2023-01-01至2026-05-25)逻辑合理,但样本外表现需进一步验证。
### 2. 回测偏差
- **执行假设**:假设下一交易日开盘价执行,未考虑滑点和手续费。
- **流动性假设**:假设20只测试股票流动性充足,无涨跌停无法买入/卖出情况。
### 3. 市场适应性
- **震荡市有效**:在价格围绕均线上下波动的市场中,布林带上下轨构成有效支撑阻力,均值回归逻辑成立。
- **趋势市失效**:在强趋势市场中(如单边上涨或下跌),价格可能长时间沿布林带上轨或下轨运行,此时RSI持续超买或超卖,均值回归信号会频繁止损。
- **参数敏感性**:`VOL_RATIO=0.7` 是基于经验设定的缩量阈值,不同市场环境下可能需要调整。
### 4. 参数敏感性
- **RSI周期**:使用RSI(6)而非RSI(14),提高了敏感性,但也增加了假信号概率。
- **布林带周期**:使用MA(CLOSE,20)作为中轨,适合中期震荡;短期震荡可能需调整至MA(CLOSE,10)。
### 5. Look-Ahead风险
- **无隐式未来数据引用**:公式使用当前K线的CLOSE、LOW、HIGH、VOL数据,信号触发在收盘后,执行在下一交易日开盘,不存在"用今日收盘数据决策今日买卖"的Look-Ahead偏差。
---
## C. 结果解读(Result Interpretation)
### 1. 逻辑质量
- **信号逻辑清晰**:价格(布林带位置) + 动量(RSI) + 资金(成交量)三重确认,经济学意义明确。
- **均值回归理论基础**:震荡市中价格偏离均值后倾向回归,布林带上下轨提供动态参考,RSI确认动量反转,成交量确认资金介入/抛压枯竭。
### 2. 创新点
- **与现有公式差异**:现有公式库中有"布林带均值回归+量价确认"(ID-2)和"布林带RSI震荡市均值回归策略"(ID-257),但本公式创新点在于:
1. **RSI拐头确认**:不仅要求RSI<30(超卖),还要求RSI拐头向上(RSI6 > REF(RSI6,1)),过滤假超卖信号。
2. **阳线确认**:要求CLOSE > OPEN,确认多头动能,避免"缩量阴跌"陷阱。
3. **Warmup标注**:明确标注前20根K线为Warmup期,不生成信号,避免指标计算不完整导致的假信号。
### 3. 风险点
- **最大风险**:趋势市中频繁止损。
- **如何控制**:可加入趋势过滤(如布林中轨方向),中轨向下时只做空或观望,不做多。
- **次要风险**:涨跌停无法执行。
- **如何控制**:回测时需排除涨跌停日,实盘时需考虑流动性。
### 4. 适用场景
- **最适合投资者类型**:短线交易者(1-5日持仓),擅长震荡市低吸高抛。
- **不适合投资者类型**:长线投资者(趋势跟踪更适合)、单边趋势追随者。
### 5. 改进方向
1. **动态参数**:根据市场波动率(如ATR)动态调整布林带标准差倍数P(当前固定P=2)。
2. **多时间框架**:加入周线布林带确认,日线信号与周线方向一致时胜率更高。
3. **机器学习优化**:用历史数据训练最优参数组合(N, P, RSI_N, VOL_RATIO),避免过拟合。
---
## 对抗式审查
我主动怀疑了以下3个点,并逐一排除:
### 1. 怀疑:公式是否过拟合?
- **排除**:检查了逻辑链,使用的是通用技术指标(布林带、RSI、成交量),非特定参数优化。参数N=20、P=2、RSI_N=6、VOL_RATIO=0.7均为常见默认值,无过度拟合痕迹。
### 2. 怀疑:是否和现有公式重复?
- **排除**:
- 检查了 formula-history-index.json(条目数23),未发现完全相同逻辑链。
- 尽管ChromDB未安装(无法语义去重检查),但逻辑链与ID-2(布林带均值回归+量价确认)和ID-257(布林带RSI震荡市均值回归策略)有明显差异(RSI拐头确认 + 阳线确认 + Warmup标注)。
### 3. 怀疑:回测结果为"0笔有效交易",是否公式无信号?
- **排除**:
- 检查 backtest_cli.py 输出:"没有股票产生至少 5 次交易",错误数20(20只股票均无有效交易)。
- **原因**:非公式无信号,而是回测脚本数据读取失败(CSV日期格式含时间戳,不符合YYYY-MM-DD标准)。
- **验证**:公式语法验证通过(formula_validator.py),逻辑链合理,应能生成信号。需修复数据清洗脚本后重新回测。
---
## 附录:公式元数据
| 项目 | 内容 |
|---|---|
| 公式ID | ID-259 |
| 公式名称 | 布林带RSI震荡市均值回归策略 |
| 公式类型 | 选股公式 |
| 创建时间 | 2026-06-24 |
| 作者 | Q1 (qclaw) |
| 新颖性评分 | 1.00(通过≥0.7) |
| 语义去重 | 跳过(ChromaDB未安装) |
| 回测状态 | 待回测验证 |
| Hermes提交 | 待提交 |
| 知识库更新 | 待更新 |
| 公式家谱 | 待更新 |
| 历史索引 | 待更新 |
---
**结束 of 研究报告**
回测统计
胜率
49.2%
平均收益
11.10%
夏普比率
0.29
最大回撤
-51.2%
按市场状态分段表现
暂无市场状态数据