1
This commit is contained in:
parent
d4fa954682
commit
be1349c1fc
|
|
@ -1173,6 +1173,27 @@ class RiskManager:
|
|||
final_stop_loss_amount = (final_stop_loss - entry_price) * quantity
|
||||
final_stop_loss_pct_margin = (final_stop_loss_amount / margin * 100) if margin > 0 else 0
|
||||
|
||||
# ⚠️ 最终安全检查:确保止损价不等于入场价,且方向正确
|
||||
# 如果计算出的止损价无效(例如配置为0导致等于入场价),强制使用最小安全距离
|
||||
default_min_dist = 0.005 # 默认0.5%
|
||||
|
||||
if side == 'BUY':
|
||||
if final_stop_loss >= entry_price:
|
||||
safe_sl = entry_price * (1 - default_min_dist)
|
||||
logger.warning(
|
||||
f"⚠️ 计算的止损价({final_stop_loss:.4f}) >= 入场价({entry_price:.4f}) 无效 (BUY),"
|
||||
f"强制调整为安全止损价: {safe_sl:.4f} (-0.5%)"
|
||||
)
|
||||
final_stop_loss = safe_sl
|
||||
else: # SELL
|
||||
if final_stop_loss <= entry_price:
|
||||
safe_sl = entry_price * (1 + default_min_dist)
|
||||
logger.warning(
|
||||
f"⚠️ 计算的止损价({final_stop_loss:.4f}) <= 入场价({entry_price:.4f}) 无效 (SELL),"
|
||||
f"强制调整为安全止损价: {safe_sl:.4f} (+0.5%)"
|
||||
)
|
||||
final_stop_loss = safe_sl
|
||||
|
||||
logger.info(
|
||||
f"最终止损 ({side}): {final_stop_loss:.4f} (使用{selected_method}), "
|
||||
+ (f"ATR={stop_loss_price_atr:.4f}, " if stop_loss_price_atr else "")
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user