核心改进: - 新增 converging_triangle_optimized.py,使用Numba JIT编译优化7个核心函数 - 在 converging_triangle.py 末尾自动导入优化版本,无需手动配置 - 全量检测耗时从30秒降至<1秒(首次需3-5秒编译) 性能提升明细: - pivots_fractal: 460x 加速 - pivots_fractal_hybrid: 511x 加速 - fit_boundary_anchor: 138x 加速 - calc_boundary_utilization: 195x 加速 - calc_fitting_adherence: 7x 加速 - calc_breakout_strength: 3x 加速 绘图功能增强: - 添加 --plot-boundary-source 参数,支持选择高低价或收盘价拟合边界线 - 默认改为使用收盘价拟合(更平滑、更符合实际交易) - 添加 --show-high-low 参数,可选显示日内高低价范围 技术特性: - 自动检测并启用Numba加速,无numba时自动降级 - 结果与原版100%一致(误差<1e-6) - 完整的性能测试和对比验证 - 零侵入性,原版函数作为备用 新增文件: - src/converging_triangle_optimized.py - Numba优化版核心函数 - docs/README_性能优化.md - 性能优化文档索引 - docs/性能优化执行总结.md - 快速参考 - docs/性能优化完整报告.md - 完整技术报告 - docs/性能优化方案.md - 详细技术方案 - scripts/test_performance.py - 性能基线测试 - scripts/test_optimization_comparison.py - 优化对比测试 - scripts/test_full_pipeline.py - 完整流水线测试 - scripts/README_performance_tests.md - 测试脚本使用说明 修改文件: - README.md - 添加性能优化说明和依赖 - src/converging_triangle.py - 集成优化版本导入 - scripts/pipeline_converging_triangle.py - 默认使用收盘价拟合 - scripts/plot_converging_triangles.py - 默认使用收盘价拟合
3.5 KiB
3.5 KiB
上/下沿线,有些点没有碰到线的边缘
问题
视觉上看图时,上沿/下沿线与收盘价曲线偏离明显,部分连接枢轴点看起来距离真实收盘价点较远。
原因
- 枢轴点与边界拟合使用的是 High/Low(高低价),而主图只绘制了收盘价曲线;出现长上影/下影时会放大偏离感。
- 采用“锚点+覆盖率”的边界拟合法,目标是包络多数枢轴点而非贴合收盘价,因此线会更保守、更远离收盘价。
解决方案
- 显示日内高低价范围,让边界线与高低价的关系更直观:
--show-high-low - 绘图时将边界线拟合源切换为收盘价以改善视觉贴合:
--plot-boundary-source close
示例:
python scripts/plot_converging_triangles.py --show-high-lowpython scripts/plot_converging_triangles.py --plot-boundary-source close
后续发现的问题(已修复)
问题1:拟合贴合度显示为0
现象:使用 --plot-boundary-source close 时,图表标题中的拟合贴合度显示为 0.000
原因:
- 检测算法始终使用高低价计算拟合贴合度
- 绘图时使用收盘价拟合边界线
- 两者数据源不一致,导致显示的贴合度与实际的拟合线不匹配
修复:
- 在绘图脚本中,当使用收盘价拟合时,重新基于收盘价和实际拟合线计算贴合度
- 在标题中明确标注使用的是"拟合贴合度(收盘价)"还是"拟合贴合度(高低价)"
问题2:枢轴点显示位置不匹配
现象:使用 --plot-boundary-source close 时,详细模式下的枢轴点标记仍然显示在高低价位置,而不是收盘价位置
原因:
- 枢轴点标记的Y坐标始终使用
high_win[ph_idx]和low_win[pl_idx] - 即使拟合线使用收盘价,标记位置仍基于高低价
修复:
- 根据
plot_boundary_source参数选择枢轴点标记的Y坐标 - 使用收盘价拟合时,枢轴点标记也显示在收盘价位置
问题3:流水线脚本缺少参数支持
现象:pipeline_converging_triangle.py 无法传递 --plot-boundary-source 参数给绘图脚本
修复:
- 在
pipeline_converging_triangle.py中添加--plot-boundary-source参数 - 将参数传递给
plot_converging_triangles.py - 在流水线开始时显示当前使用的边界线拟合数据源
使用说明
单独绘图
# 使用收盘价拟合边界线
python scripts/plot_converging_triangles.py --plot-boundary-source close
# 显示高低价范围
python scripts/plot_converging_triangles.py --show-high-low
# 组合使用
python scripts/plot_converging_triangles.py --plot-boundary-source close --show-high-low
流水线处理
# 使用收盘价拟合边界线处理所有股票
python scripts/pipeline_converging_triangle.py --clean --all-stocks --plot-boundary-source close
注意事项
--plot-boundary-source参数仅影响绘图展示,不改变检测算法的结果- 检测算法始终使用高低价进行枢轴点检测和边界拟合
- 使用收盘价拟合时,显示的拟合贴合度会重新计算,以匹配实际显示的拟合线
- 强度分中的其他部分(价格、收敛、成交量、边界利用率)仍基于检测算法的结果



