technical-patterns-lab/docs/对称三角形识别-代码讲解PPT.md
褚宏光 543572667b Add initial implementation of converging triangle detection algorithm and related documentation
- Created README.md and USAGE.md for project overview and usage instructions.
- Added core algorithm in src/converging_triangle.py for batch processing of stock data.
- Introduced data files (open.pkl, high.pkl, low.pkl, close.pkl, volume.pkl) for OHLCV data.
- Developed output documentation for results and breakout strength calculations.
- Implemented scripts for running the detection and generating reports.
- Added SVG visualizations and markdown documentation for algorithm details and usage examples.
2026-01-21 18:02:58 +08:00

76 lines
2.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 对称三角形识别 - 代码讲解一页PPT
## 1. 算法总体流程5步
输入数据 → 枢轴点检测 → 边界线拟合 → 几何约束验证 → 突破判定 → 输出结果
---
## 2. 核心模块与函数
**(1) 枢轴点检测**
函数:`pivots_fractal(high, low, k)`
作用:从高低价序列中提取明显峰谷
关键参数:`pivot_k`(越大越严格)
**(2) 边界线拟合**
函数:`fit_boundary_line(x, y, mode, n_segments)`
作用:按时间分段取极值点,拟合贴边趋势线
关键参数:`boundary_n_segments`(越小越贴边)
**(3) 形态验证**
函数:`detect_sym_triangle(...)`
包含:斜率约束、收敛判断、触碰次数、突破确认
---
## 3. 几何约束(对称三角形判定)
- 上沿下降:`a_u <= upper_slope_max`
- 下沿上升:`a_l > 0`
- 收敛比例:`width_end / width_start <= shrink_ratio`
- 触碰次数:上下沿均 ≥ 2 次
---
## 4. 突破与确认逻辑
- 向上突破:`close[end] > upper_end * (1 + break_tol)`
- 向下突破:`close[end] < lower_end * (1 - break_tol)`
- 成交量确认(可选):`volume[end] > MA(volume) * vol_k`
- 假突破过滤:突破后 `m` 根内回到线内
---
## 5. 关键参数(调参入口)
| 参数 | 含义 | 建议范围 |
|------|------|---------|
| `WINDOW` | 最近窗口长度 | 200~500 |
| `PIVOT_K` | 枢轴检测窗口 | 5~30 |
| `BOUNDARY_N_SEGMENTS` | 分段数 | 2~5 |
| `UPPER_SLOPE_MAX` | 上沿斜率上限 | -0.01~0.10 |
| `SHRINK_RATIO` | 收敛比例 | 0.3~0.9 |
| `TOUCH_TOL` | 触碰容差 | 0.03~0.15 |
---
## 6. 结果输出结构
`SymTriangleResult` 包含:
- 识别区间:`start, end`
- 趋势线:`upper_coef, lower_coef`
- 收敛程度:`width_ratio`
- 触碰次数:`touches_upper, touches_lower`
- 突破信息:`breakout, volume_confirmed, false_breakout`
---
## 7. 文件组织
```
code/
├── sym_triangle.py # 核心算法(检测+拟合+判定)
├── run_sym_triangle_json.py # 测试脚本(参数配置+可视化)
└── data.json # 输入数据labels/values
```