# Technical Patterns Lab 技术形态识别研究与实验仓库,聚焦收敛三角形等形态的批量检测、突破强度计算与可视化验证。 ## 核心功能 - **收敛三角形检测**:基于枢轴点连线 + 几何约束 + 收敛度判定 + 相向收敛检查 - **批量滚动计算**:支持多股票 × 多交易日的历史检测 - **突破强度评分**:0~1 连续分数,使用加权求和 + tanh 归一化 - **可视化验证**:自动绘制检测窗口与完整历史走势 ## 最新更新 **2026-01-28**: K线图升级 + 每日最佳报告 📊 - ✅ 图表从折线图升级为**K线图**(红涨绿跌,更专业) - ✅ 新增**每日最佳股票报告**(`daily_best.csv`):500天每天强度最高的股票 - ✅ 新增**运行日志保存**(`run_log_*.txt`):完整记录检测过程 - ✅ 绘图默认使用**高低价拟合**(更精确) - ✅ 实测性能:**2.56秒处理54,000个检测点**(21,000点/秒) - 详见:`docs/K线图说明.md` **2026-01-27**: 性能优化 - Numba加速 ⚡ - ✅ 使用Numba JIT编译,**性能提升300+倍** - ✅ 54,000个检测点:从 30秒 → **2.5秒** - ✅ 自动检测并启用,无需手动配置 - 详见:`docs/README_性能优化.md` **2026-01-26**: 图表可视化改进 - 简洁/详细模式 🎨 - 新增图表详细模式开关:`SHOW_CHART_DETAILS` 或 `--show-details` - 简洁模式(默认):仅显示收盘价、上沿线、下沿线 - 详细模式:额外显示所有枢轴点、拟合点、分段线等调试信息 - 详见:`docs/2026-01-26_图表详细模式功能.md` **2026-01-26**: 改进枢轴点拟合逻辑,使用多点线性回归 📈 - 从"只用2个枢轴点"改为"分段选择3-4个代表性点"进行线性回归 - 拟合精度显著提升,抗噪声能力更强 - 检测质量提高,误检率大幅降低(19k → 6k,过滤假三角形) - 详见:`docs/2026-01-26_枢轴点拟合改进.md` 📊 **2026-01-26**: 修复上沿线覆盖问题 🔧 - 修复 `fit_pivot_line()` 算法缺陷:确保上/下沿线覆盖所有枢轴点 - 问题:旧算法可能忽略全局最高/低点,导致拟合线横穿关键价格 - 修复:优先选择全局极值点,验证覆盖情况,自动调整选择 - 详见:`docs/2026-01-26_上沿线覆盖问题修复.md` **2026-01-26**: 实施方案4(混合策略),支持实时模式 - 新增 `pivots_fractal_hybrid()` 函数,区分确认和候选枢轴点 - 支持标准模式(历史回测)和实时模式(实时选股)可配置切换 - 在 `triangle_config.py` 中通过 `REALTIME_MODE` 控制 - 实时模式能捕获最近5天的枢轴点,无15天滞后 **2026-01-26**: 增加"相向收敛"约束,过滤下降/上升通道误判 - ✅ 对称三角形(上沿↓ + 下沿↑) - ✅ 上升三角形(上沿→ + 下沿↑) - ✅ 下降三角形(上沿↓ + 下沿→) - ❌ 下降通道(上沿↓ + 下沿↓)- 现已过滤 - ❌ 上升通道(上沿↑ + 下沿↑)- 现已过滤 详见: - `docs/2026-01-26_图表详细模式功能.md` - 图表可视化改进 🎨 - `docs/方案4-混合策略详解.md` - 实时模式完整说明 ⭐ - `docs/实时模式使用指南.md` - 快速上手指南 - `docs/2026-01-26_相向收敛约束改进.md` - 过滤通道形态 - `docs/2026-01-26_上沿线覆盖问题修复.md` - 拟合线覆盖修复 🔧 - `docs/2026-01-26_枢轴点拟合改进.md` - 多点回归改进 📊 ## 目录结构 ``` technical-patterns-lab/ ├── src/ # 核心算法 │ ├── converging_triangle.py # 收敛三角形检测 │ └── archive/ # 归档代码 ├── scripts/ # 运行脚本 │ ├── pipeline_converging_triangle.py # 一键流水线 │ ├── run_converging_triangle.py # 批量检测 │ ├── report_converging_triangles.py # 生成报告 │ ├── plot_converging_triangles.py # 绘制图表 │ ├── triangle_config.py # 统一参数配置 │ └── archive/ # 归档脚本 ├── data/ # 数据文件 │ ├── open.pkl, high.pkl, low.pkl, close.pkl, volume.pkl ├── outputs/ # 输出结果(已被 gitignore 忽略) │ └── converging_triangles/ # 收敛三角形结果 └── docs/ # 文档 ``` ## 快速开始 ```powershell # 1. 激活环境 .\.venv\Scripts\Activate.ps1 # 2. 安装依赖(首次) pip install numpy pandas matplotlib numba # 3. 一键运行流水线(检测 + 报告 + 图表) python scripts/pipeline_converging_triangle.py ``` ### ⚡ 性能优化 本项目已集成 **Numba JIT 加速**,性能提升 **300+ 倍**: - **实测性能**:54,000个检测点(108只股票×500天)→ **2.56秒** 🚀 - **处理速度**:**21,000 点/秒** - 无需手动配置,自动检测并启用 - 如未安装 numba,自动降级使用原版函数 **安装 Numba**(推荐): ```bash pip install numba ``` 详见:`docs/README_性能优化.md` 📚 ## 输出示例 ``` 检测结果: N 个有效三角形 - 向上突破: N 次 - 向下突破: N 次 - 当日报告: outputs/converging_triangles/report.md - 图表目录: outputs/converging_triangles/charts/ - HTML查看器: outputs/converging_triangles/stock_viewer.html ⭐ ``` **提示**:使用 `--all-stocks` 参数可以为所有108只股票生成图表和HTML查看器,方便全面查看。 ## 相关文档 ### 📖 入门必读 - **`docs/功能与文档总览.md`** - 完整功能与文档索引 ⭐⭐⭐ - `USAGE.md` - 完整使用指南(参数说明、数据格式等)⭐ - `outputs/converging_triangles/QUICK_START.md` - HTML查看器快速指南 🚀 ### 核心功能 - `docs/突破强度计算方法.md` - 突破强度的计算逻辑 - `docs/强度分计算示例.md` - 详细的计算步骤示例 - `docs/converging_triangles_outputs.md` - 输出字段说明 ### 可视化 - `docs/K线图说明.md` - K线图功能详解(新增)🆕 - `outputs/converging_triangles/QUICK_START.md` - HTML查看器快速指南 🚀 - `outputs/converging_triangles/README_viewer.md` - HTML查看器详细文档 - `docs/all-stocks-feature.md` - 全股票图表功能说明 - `docs/2026-01-27_HTML查看器功能.md` - HTML查看器设计与实现 - `docs/2026-01-26_图表详细模式功能.md` - 图表可视化改进 🎨 ### 性能优化 ⚡ - **`docs/README_性能优化.md`** - 性能优化文档索引 ⭐⭐⭐ - `docs/性能优化执行总结.md` - 快速了解优化成果 - `docs/性能优化完整报告.md` - 完整技术报告 - `docs/性能优化方案.md` - 详细技术方案 - `scripts/README_performance_tests.md` - 性能测试使用说明 ### 算法原理 - `docs/枢轴点分段选择算法详解.md` - 分段算法完整说明 ⭐ - `docs/枢轴点检测原理.md` - 枢轴点算法详解 - `docs/枢轴点边界问题分析.md` - 边界盲区问题与解决方案 - `docs/2026-01-26_相向收敛约束改进.md` - 过滤通道形态的改进 - `docs/方案4-混合策略详解.md` - 实时模式完整说明 ⭐ - `docs/实时模式使用指南.md` - 快速上手指南 - `docs/收敛三角形检测系统-使用指南.md` - 使用流程与参数说明