← 返回 v3 主报告
PyTrendline v3 breakout side audit
Generated: 2026-03-13 18:44 UTC
这页只回答一个问题:为什么 support_breakout_* 和 resistance_breakout_* 在 purged 样本里会长得像同一批事件?
结论先说:当前证据强烈支持:breakout 的 side 标签还没有通过几何审计。最新 artifacts 里,“同一 bar 被同时记成 support / resistance breakout”的 exact-match 配对只剩极少数;但更关键的问题还在——support_breakout_* 的 support 线在事件时仍系统性位于价格上方,resistance_breakout_* 的 resistance 线也系统性位于价格下方。
Plain-language summary
- 发现了什么:在
event_sample_purged.csv 里,support_breakout_raw 与 resistance_breakout_raw 仍有 1 条逐条 exact match,说明镜像配对问题还没彻底消失;但它已经不再是当前样本里的主量级问题。
- 更关键的发现:
support_breakout_raw 里,support 线在事件发生时有 100.0% 位于价格上方;resistance_breakout_raw 里,resistance 线有 100.0% 位于价格下方。这里的 price 默认指事件 bar 收盘价。
- 这意味着什么:当前 breakout 的
support / resistance 标签,至少在现有 v3 artifacts 里,还不能被当成两组已经干净分离的独立 alpha 事件;真正先要解决的是 side 几何语义失真,而不是直接比较哪一侧更强。
本轮没声称的东西:我们还没有证明修复一定只需要一个几何 gate;也还没正式重跑修复后的最小样本。所以这轮完成的是 审计定位,不是修复关闭。
What was found / not found / reliability
- Found: purged breakout raw / confirm_1 / confirm_2 三组 support-vs-resistance 仍各有 1 条逐条 exact match,说明镜像配对问题还存在,但量级已很小。
- Found: 最新 raw 样本里“同一 bar 双边同时 breakout”的占比并不高;以 breakout raw 为例,配对占比是 0.8%。这说明当前 blocker 不能再简单概括成“大规模双边重复记账”。
- Found: breakout 几何异常依然系统性存在:
support_breakout_raw 的 support_above_price_share = 100.0%,resistance_breakout_raw 的 resistance_below_price_share = 100.0%。
- Found: pair-level geometry audit 新增了
crossed_lines_share、close_between_lines_share、both_inverted_share,可直接看出“support/resistance 两条线是否已经互相穿越、价格是否还夹在两线之间”。
- Not found: 没看到“纯粹 summary 计算/打印 bug”的证据;因为 raw 样本里两边计数不同、均值也不完全一样,说明问题在报表之前就已经进入事件流。
- Not found: 还没证明底层 pytrendline 自身把 line_side 分错;更像是
visible-line sampler 还缺一个可复查的 side geometry gate / audit layer。
- Reliability: 对“breakout side 几何仍不干净”的判断是 high;对“应该怎么修”还是 medium,因为下一步还需要最小 sampler 修复与重跑确认。
Pair summary
看三组 breakout 事件在 raw / purged 样本里,support 与 resistance 是否落在同一批 bar 上。
Raw sample
| sample |
family |
support_rows |
resistance_rows |
same_bar_groups |
groups_with_both_sides |
both_side_share |
exact_match_rows |
support_only_rows |
resistance_only_rows |
| raw |
breakout_raw |
930 |
991 |
1906 |
15 |
0.007870 |
15 |
915 |
976 |
| raw |
breakout_confirm_1 |
733 |
764 |
1491 |
6 |
0.004024 |
6 |
727 |
758 |
| raw |
breakout_confirm_2 |
657 |
672 |
1326 |
3 |
0.002262 |
3 |
654 |
669 |
Purged sample
| sample |
family |
support_rows |
resistance_rows |
same_bar_groups |
groups_with_both_sides |
both_side_share |
exact_match_rows |
support_only_rows |
resistance_only_rows |
| purged |
breakout_raw |
48 |
50 |
97 |
1 |
0.010309 |
1 |
47 |
49 |
| purged |
breakout_confirm_1 |
47 |
50 |
96 |
1 |
0.010417 |
1 |
46 |
49 |
| purged |
breakout_confirm_2 |
46 |
50 |
95 |
1 |
0.010526 |
1 |
45 |
49 |
Geometry audit
如果一个 support_breakout 在事件时 support 线竟然还在价格上方,这就说明当前标签和几何位置已经脱节。这里 support_above_price_share / resistance_below_price_share 里的 price 默认指事件 bar 收盘价;同时保留更严格的 support_above_high_share / resistance_below_low_share 供复查。
Purged sample
| event_type |
rows |
support_above_price_share |
support_above_close_share |
support_above_high_share |
resistance_below_price_share |
resistance_below_close_share |
resistance_below_low_share |
| resistance_breakout_confirm_1 |
50 |
|
|
|
1.0 |
1.0 |
0.18 |
| resistance_breakout_confirm_2 |
50 |
|
|
|
1.0 |
1.0 |
0.18 |
| resistance_breakout_raw |
50 |
|
|
|
1.0 |
1.0 |
0.22 |
| resistance_rebound_confirm_1 |
51 |
|
|
|
0.098039 |
0.098039 |
0.0 |
| resistance_rebound_confirm_2 |
50 |
|
|
|
0.2 |
0.2 |
0.0 |
| resistance_touch_raw |
52 |
|
|
|
0.134615 |
0.134615 |
0.0 |
| support_breakout_confirm_1 |
47 |
1.0 |
1.0 |
0.234043 |
|
|
|
| support_breakout_confirm_2 |
46 |
1.0 |
1.0 |
0.23913 |
|
|
|
| support_breakout_raw |
48 |
1.0 |
1.0 |
0.1875 |
|
|
|
| support_rebound_confirm_1 |
48 |
0.083333 |
0.083333 |
0.020833 |
|
|
|
| support_rebound_confirm_2 |
48 |
0.0625 |
0.0625 |
0.0 |
|
|
|
| support_touch_raw |
48 |
0.083333 |
0.083333 |
0.0 |
|
|
|
Raw sample
| event_type |
rows |
support_above_price_share |
support_above_close_share |
support_above_high_share |
resistance_below_price_share |
resistance_below_close_share |
resistance_below_low_share |
| resistance_breakout_confirm_1 |
764 |
|
|
|
1.0 |
1.0 |
0.196335 |
| resistance_breakout_confirm_2 |
672 |
|
|
|
1.0 |
1.0 |
0.21131 |
| resistance_breakout_raw |
991 |
|
|
|
1.0 |
1.0 |
0.162462 |
| resistance_rebound_confirm_1 |
1164 |
|
|
|
0.092784 |
0.092784 |
0.000859 |
| resistance_rebound_confirm_2 |
926 |
|
|
|
0.086393 |
0.086393 |
0.00108 |
| resistance_touch_raw |
1800 |
|
|
|
0.148333 |
0.148333 |
0.001111 |
| support_breakout_confirm_1 |
733 |
1.0 |
1.0 |
0.173261 |
|
|
|
| support_breakout_confirm_2 |
657 |
1.0 |
1.0 |
0.190259 |
|
|
|
| support_breakout_raw |
930 |
1.0 |
1.0 |
0.13871 |
|
|
|
| support_rebound_confirm_1 |
988 |
0.07996 |
0.07996 |
0.001012 |
|
|
|
| support_rebound_confirm_2 |
774 |
0.077519 |
0.077519 |
0.0 |
|
|
|
| support_touch_raw |
1569 |
0.140854 |
0.140854 |
0.001912 |
|
|
|
Pair-level geometry audit
这张表把“同一 bar 被双边 breakout 记账”的配对事件单独拿出来看,避免把单边统计和配对统计混在一起。
crossed_lines_share:support 线值已经高于 resistance 线值,说明两条线几何上互相穿越了。
close_between_lines_share:事件收盘价是否还位于 support / resistance 两线之间;如果很低,说明“线作为上下边界”的语义已经坏掉。
both_inverted_share:support 在线上方 + resistance 在线下方同时成立的占比,是最直观的异常几何指标。
当前 purged breakout raw(paired_rows = 1):crossed_lines_share = 100.0%,close_between_lines_share = 0.0%,both_inverted_share = 100.0%。
Purged sample
| family |
paired_rows |
support_above_close_share |
resistance_below_close_share |
support_above_high_share |
resistance_below_low_share |
crossed_lines_share |
close_between_lines_share |
both_inverted_share |
| breakout_raw |
1 |
1.0 |
1.0 |
1.0 |
1.0 |
1.0 |
0.0 |
1.0 |
| breakout_confirm_1 |
1 |
1.0 |
1.0 |
1.0 |
1.0 |
1.0 |
0.0 |
1.0 |
| breakout_confirm_2 |
1 |
1.0 |
1.0 |
1.0 |
1.0 |
1.0 |
0.0 |
1.0 |
Raw sample
| family |
paired_rows |
support_above_close_share |
resistance_below_close_share |
support_above_high_share |
resistance_below_low_share |
crossed_lines_share |
close_between_lines_share |
both_inverted_share |
| breakout_raw |
15 |
1.0 |
1.0 |
0.733333 |
0.333333 |
1.0 |
0.0 |
1.0 |
| breakout_confirm_1 |
6 |
1.0 |
1.0 |
0.833333 |
0.666667 |
1.0 |
0.0 |
1.0 |
| breakout_confirm_2 |
3 |
1.0 |
1.0 |
1.000000 |
0.666667 |
1.0 |
0.0 |
1.0 |