# 决策树详细说明 来源: 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_only - `entry_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`: True - `buy_at_lower`: True - `stop_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 |