- Add scripts/scoring/ module with normalizer, sensitivity analysis, and config - Enhance stock_viewer.html with standardized scoring display - Add integration tests and normalization verification scripts - Add documentation for standardization implementation and usage guides - Add data distribution analysis reports for strength scoring dimensions - Update discussion documents with algorithm optimization plans
224 lines
5.8 KiB
Markdown
224 lines
5.8 KiB
Markdown
# Pipeline与HTML集成标准化 - 实施完成报告
|
||
|
||
## 执行摘要
|
||
|
||
成功将标准化模块集成到pipeline流水线中,并在HTML查看器中增加了丰富的交互功能。
|
||
|
||
## 完成清单
|
||
|
||
### ✅ P0: 集成标准化模块
|
||
|
||
**修改文件**: `scripts/generate_stock_viewer.py`
|
||
|
||
**主要改动**:
|
||
1. 导入scoring模块(normalize_all, calculate_strength, 4种预设配置)
|
||
2. 在`load_stock_data()`函数中执行标准化处理
|
||
3. 计算4种预设模式的强度分(等权/激进/保守/放量)
|
||
4. 为每只股票添加13个新字段:
|
||
- 6个标准化维度:`priceUpNorm`, `priceDownNorm`, `convergenceNorm`, `volumeNorm`, `geometryNorm`, `activityNorm`, `tiltNorm`
|
||
- 4种强度分:`strengthEqual`, `strengthAggressive`, `strengthConservative`, `strengthVolume`
|
||
- 以及对应的up/down分值
|
||
|
||
**测试结果**: 58/58只股票成功包含标准化字段
|
||
|
||
### ✅ P1: 预设模式切换
|
||
|
||
**功能**: 在控制面板顶部添加4个预设模式按钮
|
||
|
||
```
|
||
[等权模式] [激进模式] [保守模式] [放量模式]
|
||
```
|
||
|
||
**交互效果**:
|
||
- 点击切换当前模式
|
||
- 自动更新卡片显示的强度分
|
||
- 自动更新平均强度统计
|
||
- 自动切换排序为对应模式的强度分
|
||
|
||
### ✅ P2: 6维度标准化得分展示
|
||
|
||
**功能**: 每个股票卡片增加"标准化维度"面板
|
||
|
||
展示内容:
|
||
- 突破幅度(0-1,进度条)
|
||
- 收敛度(0-1,进度条)
|
||
- 成交量(0-1,进度条)
|
||
- 形态规则(0-1,进度条)
|
||
- 活跃度(0-1,进度条)
|
||
- 倾斜度(0-1,进度条)
|
||
|
||
**视觉效果**:
|
||
- 进度条宽度表示得分
|
||
- 突破方向高亮显示(绿色)
|
||
- 其他维度使用紫色
|
||
|
||
### ✅ P3: 排序选项扩展
|
||
|
||
**原有排序**: 强度分、宽度比、触碰次数
|
||
|
||
**新增排序**:
|
||
- 等权强度分
|
||
- 激进强度分
|
||
- 保守强度分
|
||
- 放量强度分
|
||
- 收敛度(标准化)
|
||
- 成交量(标准化)
|
||
- 形态规则度(标准化)
|
||
|
||
**总计**: 10种排序方式
|
||
|
||
### ✅ P4: 迷你雷达图展示
|
||
|
||
**功能**: 在"标准化维度"面板右上角添加80x80px的Canvas雷达图
|
||
|
||
**展示维度** (顺时针排列):
|
||
1. 突破幅度 (12点方向)
|
||
2. 收敛度 (2点方向)
|
||
3. 成交量 (4点方向)
|
||
4. 形态规则 (6点方向)
|
||
5. 活跃度 (8点方向)
|
||
6. 倾斜度 (10点方向)
|
||
|
||
**视觉效果**:
|
||
- 背景网格(3层)
|
||
- 半透明填充区域
|
||
- 绿色边框和数据点
|
||
- 实时渲染(每张卡片独立Canvas)
|
||
|
||
### ✅ P5: 高级多维度筛选面板
|
||
|
||
**功能**: 可折叠的高级筛选面板,包含6个维度的滑块
|
||
|
||
**筛选维度**:
|
||
- 突破幅度 ≥ (0-1, 步长0.05)
|
||
- 收敛度 ≥ (0-1, 步长0.05)
|
||
- 成交量 ≥ (0-1, 步长0.05)
|
||
- 形态规则度 ≥ (0-1, 步长0.05)
|
||
- 活跃度 ≥ (0-1, 步长0.05)
|
||
- 倾斜度 ≥ (0-1, 步长0.05)
|
||
|
||
**交互效果**:
|
||
- 点击标题展开/折叠
|
||
- 实时筛选(移动滑块立即更新结果)
|
||
- 与其他筛选条件叠加(AND逻辑)
|
||
|
||
## 使用方法
|
||
|
||
### 方法1: 完整流水线(推荐)
|
||
|
||
```bash
|
||
python scripts/pipeline_converging_triangle.py --clean --all-stocks
|
||
```
|
||
|
||
这将自动执行:
|
||
1. 批量检测
|
||
2. 生成报告
|
||
3. 绘制图表
|
||
4. **生成HTML查看器**(包含标准化和所有交互功能)
|
||
|
||
### 方法2: 仅重新生成HTML
|
||
|
||
```bash
|
||
python scripts/generate_stock_viewer.py --date 20260120
|
||
```
|
||
|
||
如果已有检测数据,只需重新生成HTML。
|
||
|
||
## 新增数据字段
|
||
|
||
每只股票的JSON数据现包含以下新字段:
|
||
|
||
```javascript
|
||
{
|
||
// 原有字段
|
||
"code": "SH603379",
|
||
"name": "三美股份",
|
||
"strength": 0.2655,
|
||
|
||
// 6个标准化维度 (范围0-1)
|
||
"priceUpNorm": 0.9000,
|
||
"priceDownNorm": 0.5000,
|
||
"convergenceNorm": 0.7931,
|
||
"volumeNorm": 0.8793,
|
||
"geometryNorm": 0.3966,
|
||
"activityNorm": 0.8103,
|
||
"tiltNorm": 1.0000,
|
||
|
||
// 4种预设模式强度分 (范围0-1)
|
||
"strengthEqual": 0.7966, // 等权模式
|
||
"strengthAggressive": 0.8245, // 激进模式
|
||
"strengthConservative": 0.7729, // 保守模式
|
||
"strengthVolume": 0.8224 // 放量模式
|
||
}
|
||
```
|
||
|
||
## 技术亮点
|
||
|
||
1. **无缝集成**: 不破坏现有流程,scoring模块可选
|
||
2. **优雅降级**: 如果scoring模块不可用,自动回退到原始强度分
|
||
3. **高性能**: Canvas雷达图在客户端渲染,无服务器负担
|
||
4. **响应式交互**: 所有筛选和排序实时响应
|
||
5. **数据完整性**: 58/58只股票全部成功标准化
|
||
|
||
## 验证结果
|
||
|
||
### 测试数据
|
||
- 样本数量: 58只股票
|
||
- 数据日期: 20260120
|
||
- 标准化成功率: 100%
|
||
|
||
### 示例股票(三美股份 SH603379)
|
||
```
|
||
原始强度分: 0.2655
|
||
等权强度分: 0.7966 (+200%)
|
||
激进强度分: 0.8245 (+210%)
|
||
保守强度分: 0.7729 (+191%)
|
||
放量强度分: 0.8224 (+209%)
|
||
```
|
||
|
||
**标准化维度**:
|
||
- 突破幅度: 0.90 (优秀)
|
||
- 收敛度: 0.79 (良好)
|
||
- 成交量: 0.88 (优秀)
|
||
- 形态规则: 0.40 (一般)
|
||
- 活跃度: 0.81 (良好)
|
||
- 倾斜度: 1.00 (完美)
|
||
|
||
## 文件清单
|
||
|
||
### 修改的文件
|
||
- ✅ `scripts/generate_stock_viewer.py` (集成标准化,+200行)
|
||
|
||
### 新增的测试文件
|
||
- ✅ `test_integration.py` (集成测试脚本)
|
||
|
||
### 输出文件
|
||
- ✅ `outputs/converging_triangles/stock_viewer.html` (增强的HTML查看器)
|
||
|
||
## 后续优化建议
|
||
|
||
1. **性能优化**: 对于大量股票(>200),考虑虚拟滚动
|
||
2. **雷达图增强**: 点击雷达图弹出大图,显示维度标签
|
||
3. **导出功能**: 支持导出筛选后的股票列表为CSV
|
||
4. **对比模式**: 支持选择2-3只股票并排对比
|
||
5. **历史趋势**: 显示同一只股票的历史强度分变化
|
||
|
||
## 总结
|
||
|
||
所有计划任务(P0-P5)已**100%完成**,集成测试通过,HTML查看器功能正常。
|
||
|
||
用户现在可以:
|
||
1. 一键运行pipeline,自动生成包含标准化的HTML
|
||
2. 通过4种预设模式快速切换视角
|
||
3. 查看每只股票的6维度雷达图
|
||
4. 使用高级筛选精确定位目标股票
|
||
5. 按10种不同指标排序
|
||
|
||
系统已可投入实际使用。🎉
|
||
|
||
---
|
||
|
||
**实施日期**: 2026-01-29
|
||
**执行人**: AI Assistant
|
||
**版本**: v1.0
|