这页回答:这段数据现在处在哪个阶段、接下来会怎样?
怎么看这个判断:引擎看的是「动量」,不是「水平」。
同样是 6 分,刚从 2 分爬上来的和从 9 分掉下来的,结论完全不同 —— 引擎取最后 3 个点算近期斜率
(当前值 − 倒数第 3 个值)÷ 2,再拿它减去全程斜率得到加速度;
「剩余空间」= 10 − 当前值,算的是离 ±10 刻度顶还有多远,不是「还剩几个时间点」。
阶段分档只看两个量:当前值落在哪一段(−8 / −4 / 0 / 5 / 8 五条线),以及近期斜率在这个段里是正是负、够不够陡。
analyze_single_trend(单序列阶段判断)全部 15 个阶段档、五条分档线 −8/−4/0/5/8、
各档内 0.5 / 1 / −0.5 / −1 的斜率再分档、remaining_space 与 score 公式、斜率取后 3 点的口径。compute_main_line(要 7 条子线加权)、
cross_validate(要两两相关/领先滞后)、predict_trend 的整体结论 ——
它们都需要「7 条链 × 多点」的输入,本页只有一条序列。v*2−10 在本页照抄;
数据库里的 status_label/status_color(强势爆发/低位徘徊…)本页没有数据来源,不显示 ——
它和引擎的 stage 本来就是两套口径。round() 是五取偶,已用 pyRound() 对齐;参见构建目录里的对比报告。/opt/curve_engine/app_v4.2.py 第 387-472 行 analyze_single_trend()(只读,本次未改);量纲映射 v*2-10 = 第 205 行。阈值行号见契约卡 /opt/contracts/curve_engine.md「硬编码阈值/权重」表:五条分档线 −8/−4/0/5/8 = 398/402/411/420/433;档内斜率 0.5/1/−0.5/−1 = 412/421/438/447;remaining = 10 - current = 460;score=(current+10)/20*100 = 471;斜率取后 3 点 = 394-395。2.1,2.8,3.5,4.1,4.9,5.6,6.4,7.2,7.9 跑一遍 → 当前值 7.9 落 [5,8)、后 3 点斜率 (7.9−6.4)/2 = +0.75 > 0 → 应得「接近顶峰」;示例「持续下降」9.2,8.6,7.8,7.1,6.3,5.4,4.6,3.7,2.9 → 当前值 2.9 落 [0,5)、斜率 (2.9−4.6)/2 = −0.85 < 0 → 应得「增长放缓」。同一组数代进 app_v4.2.py 387-472 的 if/else,结论应逐字一致。
曲线诊断的 15 个阶段档,各自的判定条件和展望原文
把 0~10 分和引擎的 −10~+10 刻度互相换算
/opt/slices_build/build.py 从规格 /_shared/slices/curve-diagnose.json 生成 —— 要改这页,改规格再跑生成器,别手改 HTML。