#21082
混合
免费
公式#21082
公式说明
AI生成
1. 一句话概括:这是个用"线性回归斜率+布林带扩口+ADX趋势强度+放量"综合判断上升趋势加速的选股公式,带ATR止损。 2. 核心买入逻辑:六个条件同时成立——线性回归斜率为正且连续两期变大(趋势向上且加速)、布林带宽大于20日均值(波动放大)、收盘价在中轨上方、成交量大于20日均量1.2倍、ADX大于25(趋势够强)。卖出看斜率转负或跌破中轨减2倍ATR。 3. 适合环境:中长线上升趋势、波动刚放大、趋势明确的行情;震荡市ADX低易失效。 4. 风险提示:指标滞后,加速段追入可能买在高点,需结合止损执行。
研究报告
# ID-322 基于线性回归斜率与波动率收缩的趋势强化系统研究报告
## A. 实现细节(Implementation Details)
### 公式逻辑
本公式结合了线性回归斜率(LR_Slope)和布林带宽度(BB_Width)两个核心指标,构建趋势强化交易系统。
**信号生成逻辑**:
1. **LR_Slope > 0**:线性回归斜率为正,表明上升趋势
2. **BB_Width > BB_Width_Mean**:当前布林带宽度大于20日均值,表明波动率正在扩张
3. **CLOSE > MID**:价格位于布林带中轨上方,确认趋势方向
4. **VOL_COND**:成交量放大 > 1.2倍20日均量,资金确认
5. **ADX_COND**:ADX > 25,趋势强度足够
6. **LR_Slope_INC**:LR_Slope连续2日递增,趋势加速
**参数设置**:
- N = 20:线性回归周期
- M = 20:布林带周期
- ATR_LEN = 14:ATR周期
### 执行时点
- **信号触发**:T日收盘后计算信号,T+1日开盘执行
- **Look-Ahead偏差检查**:✅ 无未来数据引用(使用T-1日数据计算,T日开盘执行)
### 过滤机制
1. **ADX > 25**:过滤弱趋势(趋势强度不足时不交易)
2. **LR_Slope连续递增**:过滤趋势假突破(要求趋势加速)
3. **成交量放大**:过滤无量上涨(资金未确认)
### 风险控制
1. **止损**:收盘价 < 布林带中轨 - 2倍ATR
2. **止盈**:风险收益比1:2(止损2倍ATR,止盈4倍ATR)
3. **Warmup周期**:前60根K线不生成信号(指标计算需要足够历史数据)
### 适用市场
- **A股**:适用(基于价格、成交量、波动率)
- **港股**:适用
- **美股**:适用
- **适用板块**:趋势明确的板块(如新能源、科技股),震荡市效果较差
### Warmup周期
- **Warmup = 60根K线**
- 线性回归需要20根K线
- 布林带需要20根K线
- ADX需要14根K线
- 确认机制需要前20根K线
- 取最大值:60根K线
### 回测结果
- **方案A(backtest_cli.py)**:⚠️ 0次交易(数据源不可用)
- **方案B(backtest_planb.py)**:⚠️ 0次交易(同上)
- **交叉验证结论**:无有效信号(数据源不可用),回测状态标记为"待验证"
---
## B. 已知偏差(Limitations and Bias)
### 1. 数据限制
- **数据源不可用**:本地回测系统(MySQL/SQLite/CSV)无数据,无法验证实际交易信号
- **简化版LR_Slope**:使用FOR循环计算线性回归斜率,与通达信内置SLOPE函数可能存在差异
- **布林带宽度计算**:使用标准布林带公式,未考虑自定义参数
### 2. 回测偏差
- **无回测数据**:无法计算胜率、收益率、最大回撤等关键指标
- **执行假设**:假设T日收盘后计算信号,T+1日开盘执行,实际执行可能存在滑点
- **交易成本未考虑**:回测未考虑佣金、印花税、滑点等交易成本
### 3. 市场适应性
- **趋势市有效**:在趋势明确的市场中效果较好
- **震荡市失效**:在震荡市中,LR_Slope可能频繁切换方向,导致虚假信号
- **单边市风险**:在单边下跌市场中,LR_Slope < 0,不会生成买入信号,但已持有仓位可能持续亏损
### 4. 参数敏感性
- **N(线性回归周期)**:N过大导致信号滞后,N过小导致噪声过大
- **M(布林带周期)**:M影响布林带宽度计算,不同市场可能需要调整
- **ADX阈值**:ADX > 25是常用阈值,但不同市场可能需要调整(如25-30)
### 5. Look-Ahead风险
- **无隐式未来数据引用**:公式中所有指标均使用历史数据计算,无未来函数
- **Warmup标注**:已标注前60根K线为Warmup期,不生成信号
---
## C. 结果解读(Result Interpretation)
### 1. 逻辑质量
- **信号逻辑清晰**:LR_Slope测量趋势方向,BB_Width测量波动率扩张,两者结合可在趋势强化时捕捉入场点
- **经济学意义明确**:趋势强化通常伴随着波动率扩张(投资者情绪高涨),此时入场可获得趋势延续的收益
- **多指标确认**:使用LR_Slope + BB_Width + ADX + 成交量,多维度确认信号,降低假信号概率
### 2. 创新点
- **首次引入LR_Slope**:现有公式库(ID-1~321)未使用线性回归斜率作为趋势过滤器
- **首次引入BB_Width**:现有公式库主要使用布林带突破(价格突破上轨/下轨),本公式使用布林带宽度(波动率扩张)作为信号
- **组合创新**:LR_Slope(趋势方向) + BB_Width(波动率扩张) + ADX(趋势强度) + 成交量(资金确认),四位一体
### 3. 风险点
- **最大风险**:数据源不可用,无法验证实际交易信号
- **次要风险**:参数敏感性(N、M、ADX阈值需要根据市场调整)
- **风险控制**:已设置动态止损(2倍ATR),控制单次亏损
### 4. 适用场景
- **最适合投资者**:趋势跟踪者(Swing Trader / Trend Follower)
- **最适合市场环境**:趋势明确的市场(如牛市中期、单边上涨)
- **最不适合市场环境**:震荡市(如牛市顶部、熊市反弹)
### 5. 改进方向
- **改进1**:补充本地CSV数据或连接MySQL数据库,实现真实回测
- **改进2**:使用通达信内置SLOPE函数替换FOR循环计算,提高准确性
- **改进3**:增加参数优化模块(使用遗传算法或网格搜索优化N、M、ADX阈值)
- **改进4**:增加退出机制(如LR_Slope < 0 或 BB_Width收缩时退出)
### 6. 对抗式审查
我主动怀疑了以下3个点,并逐一排除:
1. **怀疑:公式是否过拟合?**
排除:检查了逻辑链,使用的是通用技术指标(LR_Slope、BB_Width、ADX、成交量),非特定参数优化。参数为常用值(N=20, M=20, ADX阈值=25),未针对特定股票优化。
2. **怀疑:为何回测0交易?**
排除:检查了回测系统,发现数据源不可用(MySQL未连接,CSV数据缺失)。公式逻辑正确,但无数据验证。标记为"待回测验证",不编造数据。
3. **怀疑:是否和现有公式重复?**
排除:检查了formula-history-index.json和ChromaDB相似度,相似度 -3.02%(远低于60%阈值)。本公式是首个结合LR_Slope和BB_Width的公式,无重复。
---
## 附录:公式元数据
| 项目 | 内容 |
|---|---|
| 公式ID | ID-322 |
| 策略名称 | 基于线性回归斜率与波动率收缩的趋势强化系统 |
| 生成时间 | 2026-06-27T22:00:00+08:00 |
| 公式文件 | `tongdaxin/formula_ID_322.tn` |
| Warmup周期 | 60根K线 |
| 对抗式新颖性评分 | 1.00(满分) |
| 语义去重相似度 | -3.02%(通过) |
| 多样性得分 | 4分(3个不同类型指标融合) |
| 回测状态 | 待验证(数据源不可用) |
| 提交状态 | 待提交 |
---
*本报告由 Formula-22-00 定时任务自动生成*
回测统计
胜率
---
平均收益
---
夏普比率
待验证
最大回撤
-0.0%
按市场状态分段表现
暂无市场状态数据