- Introduced an interactive HTML stock viewer for visualizing strength scores and filtering stocks based on user-defined thresholds. - Added `--all-stocks` parameter to generate charts for all 108 stocks, including those not meeting convergence criteria. - Implemented a new scoring system for breakout strength, incorporating fitting adherence to improve accuracy. - Updated multiple documentation files, including usage instructions and feature overviews, to reflect recent enhancements. - Improved error handling and file naming conventions to ensure compatibility across platforms.
4.5 KiB
4.5 KiB
问题1: 末端枢轴点未识别
现象: 图表最右边明显的低点/高点没有被标记为枢轴点
根因:
- 数据中有空值(NaN)导致比较失效
- 只检测窗口前235天的枢轴点,最后5天被忽略
- 绘图时丢弃了末端的"候选枢轴点"
解决:
- 用
nanmin/nanmax替代min/max,自动跳过空值 - 把"灵活区域"从5天扩大到15天,覆盖更多末端数据
- 对称短窗口:右边只有N天时,左边也只看N天(而不是固定15天)
- 绘图时把"确认枢轴点"和"候选枢轴点"合并显示
详见 枢轴点检测与可视化修复
问题2: 拟合点选择不合理
现象: 某些"弱"枢轴点(如5.8元的低高点)被用于拟合,拉偏趋势线
解决: 迭代离群点移除算法
- 先用所有点画一条拟合线
- 找出离拟合线太远的"异常点"
- 去掉最差的那个点,重新画线
- 重复2-3次,直到没有异常点
详见 枢轴点拟合算法详解
问题3: 非收敛形态误判
现象: "上升三角形"(上沿水平)被误判为"收敛三角形"
解决: 收紧斜率限制
- 上沿必须向下(或至少水平),不能向上
- 下沿必须向上(或至少水平),不能向下
- 这样就能过滤掉"上升三角形"和"下降通道"等非收敛形态
待办: 强度分评分系统(已完成)
| 分量 | 权重 | 说明 |
|---|---|---|
| 价格突破 | 50% | 突破幅度(未突破时为0) |
| 收敛程度 | 20% | 蓄势充分度 |
| 成交量 | 15% | 放量确认 |
| 拟合贴合度 | 15% | 枢轴点到拟合线的平均距离,反映形态纯度 |
强度分说明:
- 综合评估收敛三角形的质量,无论是否突破都计算得分
- 可用于评估"待突破"形态的潜在价值,或"已突破"形态的有效性
- 公式:
强度分 = 价格×50% + 收敛×20% + 成交量×15% + 拟合贴合度×15%
拟合贴合度计算:
- 计算选中的枢轴点到对应拟合线(上沿/下沿)的相对距离
- 距离越小,说明形态越标准、越"纯净"
- 距离大表示形态杂乱,枢轴点散乱分布
- 使用指数衰减函数
exp(-mean_rel_error * 20)归一化为 0~1 分数
实施状态: ✅ 已完成(2026-01-27)
- 代码实现:
src/converging_triangle.py - 详细文档:
docs/突破强度计算方法.md(v3.0) - 计算示例:强度分计算示例.md - 包含完整计算步骤与多场景对比 ⭐
- 图表显示:已集成到图表标题第三行
- 可视化查看器:
outputs/converging_triangles/stock_viewer.html- 交互式强度分筛选 ⭐
新增功能: HTML可视化查看器(2026-01-27)
功能亮点:
- 🎚️ 交互式滑块:实时调整强度分阈值(0.00 ~ 1.00)
- 📊 全股票模式:显示所有108只股票,无形态的强度分为0
- 📈 统计面板:总数、筛选数、平均强度分实时更新
- 🔍 图表放大:点击图表全屏查看细节
- 📱 响应式设计:自适应各种屏幕尺寸
- 💾 离线可用:数据内嵌在HTML中,无需服务器
使用方法:
# 一键生成(推荐)
python scripts/pipeline_converging_triangle.py --all-stocks
# 单独生成HTML
python scripts/generate_stock_viewer.py --all-stocks # 显示所有108只
python scripts/generate_stock_viewer.py # 仅显示满足条件的
# 打开查看器
start outputs/converging_triangles/stock_viewer.html
技术特性:
- 数据内嵌方案:解决浏览器CORS限制,可直接双击打开
- 紫色渐变主题:现代化视觉设计
- 实时过滤:无延迟的交互体验
- 颜色分级:绿色(≥0.5)/黄色(0.3~0.5)/灰色(<0.3)
相关文档:
- 快速指南:
outputs/converging_triangles/QUICK_START.md - 详细文档:
outputs/converging_triangles/README_viewer.md - 功能说明:
docs/2026-01-27_HTML查看器功能.md
附注
tanh函数:
- 双曲正切函数,输出范围 (-1, 1),用于归一化价格突破幅度
- 公式:
price_score = tanh(突破幅度% × 15) - 特点:小幅突破时敏感(分数增长快),大幅突破时饱和(分数增长慢)
- 示例:1%→0.15分,3%→0.42分,5%→0.64分,10%→0.91分




