# 突破强度计算方法 ## 概述 突破强度是一个 **0~1** 的连续分数,用于衡量收敛三角形突破的有效性。 分数越高,表示突破越强势、越可信。 --- ## 计算公式 ```python strength = price_score × 5 × (1 + convergence_bonus × 0.5) × (1 + vol_bonus × 0.5) ``` 最终结果限制在 `[0, 1]` 范围内。 --- ## 三个影响因素 ### 1. 价格突破幅度 (price_score) 衡量收盘价突破趋势线的程度。 ```python # 向上突破 price_up = max(0, (close - upper_line) / upper_line) # 向下突破 price_down = max(0, (lower_line - close) / lower_line) ``` | 突破幅度 | price_score | |----------|-------------| | 未突破 | 0 | | 突破 1% | 0.01 | | 突破 5% | 0.05 | | 突破 10% | 0.10 | --- ### 2. 收敛加成 (convergence_bonus) 三角形收敛程度越高,突破越有效。 ```python convergence_bonus = max(0, 1 - width_ratio) ``` | width_ratio | 收敛程度 | convergence_bonus | |-------------|----------|-------------------| | 0.8 | 较弱 | 0.2 | | 0.5 | 中等 | 0.5 | | 0.2 | 很强 | 0.8 | | 0.1 | 极强 | 0.9 | **width_ratio** = 三角形末端宽度 / 起始宽度 --- ### 3. 成交量加成 (vol_bonus) 放量突破更可信。 ```python vol_bonus = min(1, max(0, volume_ratio - 1)) ``` | volume_ratio | 成交量状态 | vol_bonus | |--------------|------------|-----------| | 0.8 | 缩量 | 0 | | 1.0 | 平量 | 0 | | 1.5 | 放量 50% | 0.5 | | 2.0 | 放量 100% | 1.0 (满分) | | 3.0 | 放量 200% | 1.0 (上限) | **volume_ratio** = 当日成交量 / 近 N 日均量 --- ## 加权系数说明 ```python strength = price_score × 5 × (1 + convergence_bonus × 0.5) × (1 + vol_bonus × 0.5) ``` | 系数 | 作用 | |------|------| | `× 5` | 放大价格突破分数,使 2% 突破 = 0.1 基础分 | | `× (1 + convergence_bonus × 0.5)` | 收敛加成最多增加 50% | | `× (1 + vol_bonus × 0.5)` | 成交量加成最多增加 50% | --- ## 计算示例 ### 示例 1:强势突破 ``` 输入: close = 10.5, upper_line = 10.0 (突破 5%) width_ratio = 0.2 (收敛很强) volume_ratio = 1.8 (放量 80%) 计算: price_up = (10.5 - 10.0) / 10.0 = 0.05 convergence_bonus = 1 - 0.2 = 0.8 vol_bonus = min(1, 1.8 - 1) = 0.8 strength_up = 0.05 × 5 × (1 + 0.8 × 0.5) × (1 + 0.8 × 0.5) = 0.25 × 1.4 × 1.4 = 0.49 结果: 向上突破强度 = 0.49 (中度突破) ``` ### 示例 2:弱势突破 ``` 输入: close = 10.1, upper_line = 10.0 (突破 1%) width_ratio = 0.7 (收敛较弱) volume_ratio = 0.9 (缩量) 计算: price_up = 0.01 convergence_bonus = 0.3 vol_bonus = 0 strength_up = 0.01 × 5 × (1 + 0.3 × 0.5) × (1 + 0) = 0.05 × 1.15 × 1.0 = 0.0575 结果: 向上突破强度 = 0.06 (微弱突破) ``` ### 示例 3:极强突破 ``` 输入: close = 11.0, upper_line = 10.0 (突破 10%) width_ratio = 0.15 (极度收敛) volume_ratio = 2.5 (放量 150%) 计算: price_up = 0.10 convergence_bonus = 0.85 vol_bonus = 1.0 strength_up = 0.10 × 5 × (1 + 0.85 × 0.5) × (1 + 1.0 × 0.5) = 0.50 × 1.425 × 1.5 = 1.07 → 截断为 1.0 结果: 向上突破强度 = 1.0 (满分) ``` --- ## 强度等级参考 | 强度范围 | 等级 | 含义 | |----------|------|------| | 0 ~ 0.1 | 无/微弱 | 未突破或假突破风险高 | | 0.1 ~ 0.3 | 轻度 | 有突破迹象,需观察确认 | | 0.3 ~ 0.6 | 中度 | 有效突破,可作为参考信号 | | 0.6 ~ 1.0 | 强势 | 高置信度突破,值得关注 | --- ## 代码位置 ``` src/converging_triangle.py ├── calc_breakout_strength() # 突破强度计算函数 └── detect_converging_triangle() # 调用位置 ``` --- ## 相关参数 | 参数 | 默认值 | 说明 | |------|--------|------| | `vol_window` | 20 | 计算成交量均值的窗口大小 | | `vol_k` | 1.3 | 成交量确认阈值(volume_confirmed 判断用) | | `break_tol` | 0.001 | 突破判定容差 |