research: 低滞后+质量过滤组合失败,过滤器符号翻转,一类线关闭
把 step62 的 ext_run 质量过滤接到 step56 的低滞后版上——两者各解决一半约束, 是唯一同时处理滞后和识别精度的路径。 失败,且失败方式本身是判据:过滤器符号反了。5m 上延伸度分档在滞后版是 Q1 0.12 / Q4 0.46(越延伸越好),在低滞后版是 Q1 0.58 / Q4 0.33(越短越好)。 叠加后 PF 从 0.37 掉到 0.30~0.33,比不过滤更差。div 同样翻转。 同一批信号、同一个特征,换个入场时点最优方向就反过来,说明这些过滤效果是 入场时点的交互产物而非信号的稳定属性,继续挑阈值就是拟合噪声。 一类线六次独立进攻全部止步 1.0 以下:引擎原生 0.24、反手 0.92(因果回放后)、 实时重写 0.41、结构止损 0.36、用未来函数选样 0.83、质量过滤 0.54、 低滞后+过滤 0.33。第五项尤其说明问题——即使选样做到完美也只到 0.83。 判定关闭。病根是入场价已在结构底上方 2.9 ATR、实盘再晚 15 根,来自「等笔确认」 机制本身而非参数。识别可以优化(精度能翻倍),但识别从来不是瓶颈。 fast_bsp1 顺带补 ext_atr 字段,用 ATR 归一才与 step62 的 ext_run 同口径。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -134,6 +134,36 @@ def report(d: pd.DataFrame) -> None:
|
||||
print(" 15m B1 PF 0.21 t −18.9 | S1 PF 0.23 t −15.9")
|
||||
|
||||
f1 = x[x.kind == "fastB1"]
|
||||
if len(f1) >= 120 and "ext_atr" in f1.columns:
|
||||
y = f1.dropna(subset=["ext_atr"])
|
||||
print("\n延伸度分档(ext_atr,step62 在滞后版上实测的唯一单调特征:"
|
||||
"\n命中线段顶点的比例 12%→44%,PF 0.12→0.46):")
|
||||
q = pd.qcut(y["ext_atr"], 4,
|
||||
labels=["Q1最短", "Q2", "Q3", "Q4最延伸"],
|
||||
duplicates="drop")
|
||||
print(pd.DataFrame([{"档": k, **stats(v)}
|
||||
for k, v in y.groupby(q, observed=True)
|
||||
if len(v) >= 30]).to_string(index=False))
|
||||
|
||||
print("\n⭐ 组合:低滞后(本模块)+ 延伸过滤(step62)—— "
|
||||
"唯一同时处理两个约束的路径")
|
||||
p50, p75 = y["ext_atr"].quantile(.50), y["ext_atr"].quantile(.75)
|
||||
dm = y["div"].median()
|
||||
rows = [{"过滤器": "无", **stats(y)}]
|
||||
for nm, g in [
|
||||
(f"ext≥P50({p50:.1f})", y[y["ext_atr"] >= p50]),
|
||||
(f"ext≥P75({p75:.1f})", y[y["ext_atr"] >= p75]),
|
||||
(f"ext≥P75 且 div≥中位", y[(y["ext_atr"] >= p75)
|
||||
& (y["div"] >= dm)]),
|
||||
(f"ext≥P50 且 div≥中位", y[(y["ext_atr"] >= p50)
|
||||
& (y["div"] >= dm)]),
|
||||
]:
|
||||
if len(g) >= 30:
|
||||
rows.append({"过滤器": nm, **stats(g)})
|
||||
print(pd.DataFrame(rows).to_string(index=False))
|
||||
print("对照 · 同过滤器在滞后版(step62,5m):无 PF 0.22 → "
|
||||
"ext≥P75且div≥中位 PF 0.54")
|
||||
|
||||
if len(f1) >= 60:
|
||||
print("\n背驰强度分档(div = 离开段面积/进入段面积,越小背驰越强):")
|
||||
q = pd.qcut(f1["div"], 4, labels=["Q1最强", "Q2", "Q3", "Q4最弱"],
|
||||
|
||||
Reference in New Issue
Block a user