- 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
6.6 KiB
6.6 KiB
收敛三角形函数本身
总体思路:用户可调整"强度分"中的每个参数,最终筛选出符合预期的个股。
-
"拟合贴合度"与"边界利用率",是否可以合并为一个维度? ✅ 已完成
- 结论:不建议合并,两者测量的是不同维度
- 优化:重命名为"形态规则度"和"价格活跃度",更直观
- 详情:见
docs/命名优化_拟合贴合度_边界利用率_重命名.md
-
"强度分"中需要新增"角度"参数:即斜率、三角形的旋转角度。 ✅ 已完成
- 实现方式:新增"倾斜度分"作为第6个维度
- 权重分配:从突破幅度分中分配5%(50% → 45%)
- 详情:见
docs/强度分_增加角度参数_深度分析.md
-
"强度分"内所有参数需保持在 0-1 区间 目前所有 6 个强度分参数都已经在 0-1 区间内。以下是各分量的归一化方式总结:
| 分量 | 归一化方式 | 范围保证 |
|---|---|---|
突破幅度分 (price_score) |
np.tanh(pct * 15.0) |
tanh 输出 [0, 1](因为 pct ≥ 0) |
收敛度分 (convergence_score) |
max(0, min(1, 1 - width_ratio)) |
显式 clamp 到 [0, 1] |
成交量分 (volume_score) |
min(1, max(0, volume_ratio - 1)) |
显式 clamp 到 [0, 1] |
形态规则度 (geometry_score) |
exp(-error * 20) + clamp |
指数衰减 + 显式 clamp |
价格活跃度 (activity_score) |
逐日计算 1 - blank_ratio 的平均 + clamp |
每日 clamp + 最终 clamp |
倾斜度分 (tilt_score) |
(1 ± tilt) / 2 + clamp |
显式 clamp 到 [0, 1] |
形态规则度和价格活跃度的归一化详解
关于形态规则度 (geometry_score) 和价格活跃度 (activity_score) 这两个分量的详细归一化实现,请参阅:
详细文档:docs/强度分_形态规则度和价格活跃度_归一化详解.md
核心要点:
- 形态规则度:使用指数衰减映射
exp(-mean_rel_error * 20),测量枢轴点到拟合线的贴合程度 - 价格活跃度:使用线性反转
1 - blank_ratio+ 双重clamp,逐日计算通道空间利用率后取平均
两者都严格保证输出在 [0, 1] 区间,满足强度分系统的设计要求。
-
分析日志,评估各个维度的分布:均值、正态性、厚尾 ✅ 已完成
- 分析时间: 2026-01-29 16:28
- 样本量: 18,004个有效三角形 (108只股票 × 500天检测窗口)
- 分析对象: 强度分系统的6个核心维度 (7个字段: price_score_up/down分开统计)
- 核心发现:
- ❌ 所有7个字段均呈现非正态分布 (p≈0)
- ⚠️ 5/7字段显著厚尾 (超额峰度>0, 极端事件是正态分布的8-19倍)
- 📊 4/7字段右偏 (多数普通值+少数极端大值的长尾结构)
- 关键发现:
- 突破幅度分(向上): 中位数=0, 超额峰度13.38, 尾部15.7倍 → 大多数未突破,强突破稀缺但频繁
- 突破幅度分(向下): 中位数=0, 超额峰度45.72 → 向下突破最不可预测
- 成交量分: 中位数=0, 尾部19.1倍 → 放量突破极其稀缺(所有维度中尾部倍数最高)
- 倾斜度分: 超额峰度46.33, Q25=Q75=0.5 → 算法强烈偏好对称三角形(75%恰好=0.5)
- 收敛度分: 超额峰度-1.05 → 唯一薄尾维度,分布稳定可靠
- 实战建议:
- 禁止使用均值±3σ、t检验等基于正态的方法
- 推荐使用百分位数(P75/P90)、非参数检验、Bootstrap
- 突破幅度分阈值: P85-P90≈0.15 (而非均值0.056)
- 成交量分不作必要条件(中位数=0),仅作加分项
- 权重优化建议:
- 收敛度分: 20%→25% (最稳定可靠)
- 成交量分: 15%→10% (中位数=0导致区分度低)
- 形态规则度: 10%→5% (数值普遍过低)
- 价格活跃度: 5%→10% (近正态且稳定)
- 详细报告:
- 📄 主报告:
docs/收敛三角形_数据分布分析_20260129/强度分六维度_分析报告.md⭐ - 📑 索引:
docs/收敛三角形_数据分布分析_20260129/INDEX.md - 🖼️ 可视化:
distribution_plots_强度分六维度.png,qq_plots_强度分六维度.png,boxplots_强度分六维度.png - 📊 数据表:
distribution_analysis_强度分六维度.csv(7字段统计) - 💻 脚本:
analyze_distribution_强度分六维度.py(可重现)
- 📄 主报告:
-
强度分系统优化:等权设计+参数可调性+平滑性优化 ✅ 深度分析完成
- 分析时间: 2026-01-29 17:00
- 核心问题:
- 维度间不可比性:中位数差异巨大 (0 vs 0.8)
- 零膨胀分布:突破幅度分、成交量分50%为0
- 点质量分布:倾斜度分75%=0.5
- 等权相加会导致收敛度分和倾斜度分"吃掉"大部分强度分
- SOTA方法调研:
- 截面分位数标准化: 消除尺度差异,但对零膨胀效果差
- Power Sorting (2023): 专门处理厚尾,保留极端值信息
- 自适应分组标准化: 根据分布类型选择不同策略
- PID控制论: 自适应权重调整,基于实际反馈优化
- 端到端ML优化: 自动学习最优变换和权重
- 推荐方案:分层标准化:
- 零膨胀分布(突破幅度分/成交量分): 非零部分排名,零值设为0.5(中性)
- 点质量分布(倾斜度分): 偏离中心的值进行拉伸
- 正常分布(收敛度分/价格活跃度): 标准分位数标准化
- 低区分度(形态规则度): 对数变换扩大区分度
- 基金经理视角评估:
维度 量化意义 当前问题 建议 突破幅度分 信号强度/价格动能 中位数=0 标准化后使用P75+ 收敛度分 蓄势程度/多空博弈 ✅稳定 可提高权重 成交量分 资金确认 中位数=0 不作必要条件,作加分项 形态规则度 形态质量 普遍极低 对数变换扩大区分度 价格活跃度 真实博弈 ✅近正态 可提高权重 倾斜度分 趋势一致性 75%=0.5 重新标准化 - 系统评分:
- 当前综合评分: 2.8/5
- 优化后预期: 4.3/5
- 应用层设计:
- 等权基础 + 预设配置(激进/保守/放量模式)
- 多维度阈值筛选器
- 敏感性分析工具
- 详细报告:
docs/收敛三角形_数据分布分析_20260129/强度分优化方案_深度分析.md⭐
