方法 2 (百分比波动率) + 方法 3 (关键价位) 混合算法 feat(intraday-regime-detector): 新 skill - 日内市场状态判别 来源: DeepSeek chat share 26iikphv8h94feze9q 核心: R² + ADF + 历史波动率, 识别趋势市 / 震荡市 / 混乱 推荐: 趋势跟踪 / 网格交易 / 布林带回归 / NO_TRADE
4.8 KiB
4.8 KiB
决策树详细说明
来源: DeepSeek chat share 26iikphv8h94feze9q
一、核心判别算法
1. 趋势效率 R² (线性回归)
目的: 衡量趋势的"纯粹度", 比单纯看均线方向更科学。
计算:
- 取过去 N 根 K 线 (默认 20 根 5min K) 的收盘价序列
- 以时间 (1,2,3...20) 为自变量 X, 收盘价为因变量 Y
- 做一元线性回归
- 计算 R²
判断:
| R² | 状态 | 含义 |
|---|---|---|
| > 0.75 | 趋势市 | 价格运动有明确方向, 噪声小 |
| < 0.30 | 震荡市 | 价格运动无方向, 充满噪声 |
| 0.30-0.75 | 过渡 | 方向不明, 等待 |
2. ADF 平稳检验 (Augmented Dickey-Fuller)
目的: 判断价格序列是否倾向于均值回归。
计算:
- 对过去价格序列执行 ADF 检验
- 返回 p 值
判断:
| p 值 | 含义 | 策略匹配 |
|---|---|---|
| < 0.05 | 拒绝非平稳假设, 统计上平稳 | 均值回归, 适合震荡做T |
| > 0.05 | 不能拒绝非平稳, 可能是随机游走或趋势 | 不做均值回归 |
⚠️ 简化实现: 本 skill 用一阶差分自相关近似, 生产建议替换为 statsmodels.tsa.stattools.adfuller (代码已 fallback).
3. 历史波动率 (年化)
计算: log returns 标准差 × √252
判断:
| 波动率 | 含义 |
|---|---|
| > 30% | 高波动, 适合宽间距逆势 (布林带) |
| ≤ 30% | 低波动, 适合网格 |
4. 开盘缺口
计算: (open - prev_close) / prev_close × 100%
判断:
| 缺口 | 含义 |
|---|---|
| > +0.5% | 高开强势, 优先做正T |
| < -0.5% | 低开弱势, 优先做倒T |
| 平开/微小 | 默认震荡模式 |
二、策略参数说明
1. 趋势跟踪做T (TREND_FOLLOWING)
适用: 强趋势市 (R² > 0.75)
参数 (5min K):
direction: long_only / short_onlyentry_trigger: 价格回踩 EMA5 不破 (上涨) / 价格反弹至 EMA5 受阻 (下跌)stop_loss: EMA5 × 0.995 (long) / EMA5 × 1.005 (short)take_profit: 现价 × 1.02 / × 0.98
2. 网格交易做T (GRID_TRADING)
适用: 低波动震荡 (R² < 0.30 + ADF 平稳 + 低波动)
参数:
grid_spacing: 近期平均振幅 × 0.8, 至少 0.5%grid_levels: 3 (默认)base_price: 当前价reverse_at_boundary: True (在边界反向开仓)
3. 布林带回归做T (BOLLINGER_REVERSION)
适用: 高波动震荡 (R² < 0.30 + ADF 平稳 + 高波动)
参数 (20 期 ±2σ):
upper_band: MA20 + 2σlower_band: MA20 - 2σsell_at_upper: Truebuy_at_lower: Truestop_if_break: True (破带止损)
4. NO_TRADE (暂停)
适用: 混乱或过渡状态
参数: reason: 市场状态不清晰, 等待趋势或明确震荡信号
三、决策流程图
┌─────────────────────┐
│ 输入 20 根 5min K │
│ + 开盘缺口 │
└──────────┬──────────┘
↓
┌─────────────────────┐
│ 计算 R² │
└──────────┬──────────┘
↓
┌─────────────────┼─────────────────┐
↓ ↓ ↓
R² > 0.75 0.30-0.75 R² < 0.30
强趋势 过渡 震荡
↓ ↓ ↓
TREND UNKNOWN 计算 ADF
FOLLOWING NO_TRADE ↓
┌─────┴─────┐
↓ ↓
ADF<0.05 ADF≥0.05
平稳 不平稳
↓ ↓
计算波动率 CHAOTIC
↓ NO_TRADE
┌───┴───┐
↓ ↓
vol>30% vol≤30%
↓ ↓
BOLLINGER GRID
REVERSION TRADING
四、与本 skill 的对应关系
| 步骤 | 函数 | 文件 |
|---|---|---|
| 输入校验 | diagnose() |
intraday_regime.py |
| 计算 R² | _calculate_r_squared() |
intraday_regime.py |
| 计算 vol | _calculate_historical_volatility() |
intraday_regime.py |
| 计算 ADF | _adf_test() |
intraday_regime.py |
| 趋势判断 | _classify_regime() |
intraday_regime.py |
| 策略匹配 | _match_strategy() |
intraday_regime.py |
| 拉 K 线 + 整合 | regime_scan.py |
regime_scan.py |