修改移动止损
This commit is contained in:
+33
-10
@@ -4817,15 +4817,36 @@ def check_order_monitors():
|
||||
direction == "long" and new_sl > float(stop_loss)
|
||||
)
|
||||
if should_move:
|
||||
new_sl = round_price_to_exchange(resolve_monitor_exchange_symbol(r), new_sl)
|
||||
conn.execute(
|
||||
"UPDATE order_monitors SET stop_loss=?, breakeven_armed=1, breakeven_price=? WHERE id=?",
|
||||
(new_sl, new_sl, pid),
|
||||
)
|
||||
stop_loss = new_sl
|
||||
arm_txt = "保本止盈" if not breakeven_armed else "移动止盈"
|
||||
send_wechat_msg(
|
||||
build_wechat_breakeven_message(
|
||||
ex_sym = resolve_monitor_exchange_symbol(r)
|
||||
new_sl = round_price_to_exchange(ex_sym, new_sl)
|
||||
tp_ex = float(take_profit or 0)
|
||||
ok_live, _live_reason = ensure_exchange_live_ready()
|
||||
synced_ex = not ok_live
|
||||
if ok_live and tp_ex > 0:
|
||||
try:
|
||||
replace_active_monitor_tpsl_on_exchange(r, new_sl, tp_ex)
|
||||
synced_ex = True
|
||||
except Exception as e:
|
||||
print(
|
||||
f"[breakeven] exchange tpsl replace failed order={pid} {sym}: {e}",
|
||||
flush=True,
|
||||
)
|
||||
send_wechat_msg(
|
||||
f"⚠️ {sym} 移动保本止损未同步交易所:{friendly_exchange_error(e)}"
|
||||
)
|
||||
elif ok_live:
|
||||
print(
|
||||
f"[breakeven] skip exchange order={pid} {sym}: invalid take_profit",
|
||||
flush=True,
|
||||
)
|
||||
if synced_ex:
|
||||
conn.execute(
|
||||
"UPDATE order_monitors SET stop_loss=?, breakeven_armed=1, breakeven_price=? WHERE id=?",
|
||||
(new_sl, new_sl, pid),
|
||||
)
|
||||
stop_loss = new_sl
|
||||
arm_txt = "保本止盈" if not breakeven_armed else "移动止盈"
|
||||
be_msg = build_wechat_breakeven_message(
|
||||
sym,
|
||||
direction,
|
||||
arm_txt,
|
||||
@@ -4833,7 +4854,9 @@ def check_order_monitors():
|
||||
locked_r,
|
||||
new_sl,
|
||||
)
|
||||
)
|
||||
if ok_live:
|
||||
be_msg += "\n- 交易所:已先撤后挂止盈止损"
|
||||
send_wechat_msg(be_msg)
|
||||
|
||||
res = None
|
||||
# 做多
|
||||
|
||||
Reference in New Issue
Block a user