2.8 KiB
2.8 KiB
分型强度显示修复总结
问题描述
用户反映图表上没有显示分型强度信息。
问题诊断
- 后端数据传递问题: 虽然计算了分型强度,但在返回给前端的JSON数据中遗漏了强度相关字段
- JSON序列化问题: NumPy的
bool_类型无法被JSON序列化
修复内容
1. 后端数据修复 (web/app.py)
- 主周期分型信息: 在
klc_fx_info中添加了遗漏的强度字段 - 小周期分型信息: 在
element_klc_fx_info中添加了遗漏的强度字段
修复前:
'klc_fx_info': [{
'time': format_time_safely(point['time'], client_tz),
'price': point['price'],
'fx_type': point['fx_type'],
'is_bottom': point['is_bottom']
} for point in analysis_result['klc_fx_info']]
修复后:
'klc_fx_info': [{
'time': format_time_safely(point['time'], client_tz),
'price': float(point['price']),
'fx_type': point['fx_type'],
'is_bottom': bool(point['is_bottom']),
'fx_strength': float(point['fx_strength']), # 分型强度分数
'fx_strength_level': str(point['fx_strength_level']), # 分型强度等级
'is_strong_fx': bool(point['is_strong_fx']) # 是否为强分型
} for point in analysis_result['klc_fx_info']]
2. 数据类型转换
- 将
numpy.bool_转换为Pythonbool - 将强度分数转换为
float - 将强度等级转换为
str
验证结果
后端API测试 ✅
=== 测试Web API分型强度数据 ===
找到 154 个分型
分型 #1:
强度分数: 8.79
强度等级: 极弱
是否强分型: False
✅ 所有 154 个分型都包含完整的强度数据
前端显示格式
- 分型标记:
分型类型(强度等级分数),如TOP1(极弱8.79) - 视觉区分: 强分型使用亮色+方形+大尺寸,普通分型使用圆形
- Tooltip详情: 鼠标悬停显示完整强度信息
使用说明
-
启动服务:
cd user_data/Chan/web python app.py -
访问界面: http://localhost:8123
-
查看分型强度:
- 确保勾选"显示K线分型类型"选项
- 图表上会显示带强度信息的分型标记
- 鼠标悬停可查看详细强度信息
技术细节
强度评估维度 (总分100分)
- 价格差异强度: 40分
- 突破历史点位: 20分
- 成交量确认: 15分
- RSI背离确认: 15分
- MACD背离确认: 10分
强度等级划分
- 极强: 80-100分
- 强: 60-79分
- 中等: 40-59分
- 弱: 20-39分
- 极弱: 0-19分
显示特色
- 强分型阈值: ≥60分
- 颜色编码: 强分型使用更亮颜色
- 形状区分: 强分型用方形,普通分型用圆形
- 尺寸差异: 强分型显示更大
测试工具
test_web_data.py - 验证API返回的分型强度数据完整性