Fix breakeven badge still showing after roll lowers stop loss.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
dekun
2026-07-10 16:52:29 +08:00
parent edfe935fb4
commit 02472f19cb
10 changed files with 161 additions and 17 deletions
+7
View File
@@ -235,6 +235,7 @@ from lib.trade.order_monitor_display_lib import (
apply_order_price_display_fields,
enrich_order_display_fields,
order_monitor_tpsl_needs_sync,
stale_breakeven_armed,
)
from lib.common.wechat_notify_lib import build_wechat_rs_level_message, send_wechat_webhook
from lib.hub.hub_auth import request_allowed as hub_request_allowed
@@ -6163,6 +6164,12 @@ def check_order_monitors():
# 到达设定 R 倍后,按阶梯持续上移止损(本地风控层)
risk_amount = float(r["risk_amount"] or 0)
breakeven_armed = int(r["breakeven_armed"] or 0)
if stale_breakeven_armed(direction, trigger_price, stop_loss, breakeven_armed):
conn.execute(
"UPDATE order_monitors SET breakeven_armed=0, breakeven_price=NULL WHERE id=?",
(pid,),
)
breakeven_armed = 0
trigger_rr = float(r["breakeven_rr_trigger"] or BREAKEVEN_RR_TRIGGER)
step_r = float(r["breakeven_step_r"] or BREAKEVEN_STEP_R or 1.0)
step_r = 1.0 if step_r <= 0 else step_r