a
This commit is contained in:
parent
df634a8f02
commit
e43ee63de3
|
|
@ -256,16 +256,26 @@ class RiskManager:
|
|||
min_notional = 5.0 # 币安合约最小名义价值
|
||||
if position_value < min_notional:
|
||||
logger.warning(f" ⚠ 仓位价值 {position_value:.2f} USDT < 最小名义价值 {min_notional:.2f} USDT")
|
||||
# 尝试增加仓位价值到最小名义价值,但不超过最大仓位限制
|
||||
max_allowed_value = available_balance * max_position_percent
|
||||
if min_notional <= max_allowed_value:
|
||||
|
||||
# 计算需要的最小仓位比例来满足最小名义价值
|
||||
required_position_percent = min_notional / available_balance
|
||||
logger.info(f" 需要的最小仓位比例: {required_position_percent*100:.2f}% (最小名义价值 {min_notional:.2f} USDT / 可用余额 {available_balance:.2f} USDT)")
|
||||
|
||||
# 检查是否可以使用更大的仓位比例(但不超过最大仓位限制)
|
||||
if required_position_percent <= max_position_percent:
|
||||
# 可以使用更大的仓位比例来满足最小名义价值
|
||||
position_percent = required_position_percent
|
||||
position_value = min_notional
|
||||
logger.info(f" ✓ 调整仓位价值到最小名义价值: {position_value:.2f} USDT")
|
||||
logger.info(f" ✓ 调整仓位比例到 {position_percent*100:.2f}% 以满足最小名义价值: {position_value:.2f} USDT")
|
||||
else:
|
||||
# 即使使用最大仓位比例也无法满足最小名义价值
|
||||
max_allowed_value = available_balance * max_position_percent
|
||||
logger.warning(
|
||||
f" ❌ 无法满足最小名义价值要求: "
|
||||
f"需要 {min_notional:.2f} USDT,但最大允许 {max_allowed_value:.2f} USDT"
|
||||
f"需要 {min_notional:.2f} USDT (仓位比例 {required_position_percent*100:.2f}%),"
|
||||
f"但最大允许 {max_allowed_value:.2f} USDT (仓位比例 {max_position_percent*100:.1f}%)"
|
||||
)
|
||||
logger.warning(f" 💡 建议: 增加账户余额到至少 {min_notional / max_position_percent:.2f} USDT 才能满足最小名义价值要求")
|
||||
return None
|
||||
|
||||
# 计算数量(考虑合约的最小数量精度)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user