fix: 新笔确认即查BSP(反向二类分型触发),首轮也查confirmed[-1]
笔被反向二类分型确认时is_sure=True,不需要等下一笔。 - 跟踪confirmed[-1]变化→查新确认那笔自身的BSP - 首轮也查confirmed[-1],避免漏掉监控启动前刚确认的BSP Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.7
parent
07f079067f
commit
63787b173a
+14
-16
@@ -112,40 +112,38 @@ class BSPMonitor:
|
|||||||
if current_bi_id is None:
|
if current_bi_id is None:
|
||||||
return
|
return
|
||||||
|
|
||||||
# 5. 首轮:记录状态,不推送
|
# 5. 首轮:记录状态,检查最后一笔的 BSP(可能刚被分型确认)
|
||||||
if st.first_run:
|
if st.first_run:
|
||||||
st.first_run = False
|
st.first_run = False
|
||||||
st.last_bi_id = current_bi_id
|
st.last_bi_id = current_bi_id
|
||||||
st.pivot_monitor.update(engine.bi_zs_list)
|
st.pivot_monitor.update(engine.bi_zs_list)
|
||||||
|
|
||||||
|
bsp = engine.get_bsp_for_bi(last_confirmed)
|
||||||
|
if bsp:
|
||||||
|
key = f"{symbol}_{bsp.type}_{bsp.klc.end_time}"
|
||||||
|
msg = engine.format_bsp_detail(bsp, symbol)
|
||||||
|
msg = _escape_html(msg)
|
||||||
|
if send_bsp_alert(msg, bsp_key=key):
|
||||||
|
logger.info(f"[{name}] ✅ BSP: {key}")
|
||||||
|
|
||||||
logger.info(
|
logger.info(
|
||||||
f"[{name}] 首次完成 — {len(confirmed)} 笔, "
|
f"[{name}] 首次完成 — {len(confirmed)} 笔, "
|
||||||
f"{len(engine.bsp_list)} BSP (不推送)"
|
f"{len(engine.bsp_list)} BSP"
|
||||||
)
|
)
|
||||||
return
|
return
|
||||||
|
|
||||||
# 6. 检测新笔确认
|
# 6. 检测新笔确认(反向二类分型触发 is_sure=True)
|
||||||
if current_bi_id == st.last_bi_id:
|
if current_bi_id == st.last_bi_id:
|
||||||
return
|
return
|
||||||
|
|
||||||
prev_bi_id = st.last_bi_id
|
|
||||||
st.last_bi_id = current_bi_id
|
st.last_bi_id = current_bi_id
|
||||||
|
|
||||||
bi_dir = "⬆️" if last_confirmed.dir == Chan_BI_DIR.UP else "⬇️"
|
bi_dir = "⬆️" if last_confirmed.dir == Chan_BI_DIR.UP else "⬇️"
|
||||||
logger.info(f"[{name}] 新笔确认 — #{len(confirmed)} "
|
logger.info(f"[{name}] 新笔确认 — #{len(confirmed)} "
|
||||||
f"{bi_dir} 高度: ${last_confirmed.height:.2f}")
|
f"{bi_dir} 高度: ${last_confirmed.height:.2f}")
|
||||||
|
|
||||||
# 7. 找到刚被终结的那笔(上一轮的 confirmed[-1]),检查其终点是否为 BSP
|
# 7. 检查刚被分型确认这笔的终点是否为 BSP
|
||||||
prev_bi = None
|
bsp = engine.get_bsp_for_bi(last_confirmed)
|
||||||
for b in engine.bi_list:
|
|
||||||
if b.is_sure and _bi_id(b) == prev_bi_id:
|
|
||||||
prev_bi = b
|
|
||||||
break
|
|
||||||
|
|
||||||
if prev_bi:
|
|
||||||
bsp = engine.get_bsp_for_bi(prev_bi)
|
|
||||||
else:
|
|
||||||
bsp = None
|
|
||||||
|
|
||||||
if bsp:
|
if bsp:
|
||||||
key = f"{symbol}_{bsp.type}_{bsp.klc.end_time}"
|
key = f"{symbol}_{bsp.type}_{bsp.klc.end_time}"
|
||||||
msg = engine.format_bsp_detail(bsp, symbol)
|
msg = engine.format_bsp_detail(bsp, symbol)
|
||||||
|
|||||||
Reference in New Issue
Block a user