a
This commit is contained in:
parent
df634a8f02
commit
e43ee63de3
|
|
@ -256,16 +256,26 @@ class RiskManager:
|
||||||
min_notional = 5.0 # 币安合约最小名义价值
|
min_notional = 5.0 # 币安合约最小名义价值
|
||||||
if position_value < min_notional:
|
if position_value < min_notional:
|
||||||
logger.warning(f" ⚠ 仓位价值 {position_value:.2f} USDT < 最小名义价值 {min_notional:.2f} USDT")
|
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
|
position_value = min_notional
|
||||||
logger.info(f" ✓ 调整仓位价值到最小名义价值: {position_value:.2f} USDT")
|
logger.info(f" ✓ 调整仓位比例到 {position_percent*100:.2f}% 以满足最小名义价值: {position_value:.2f} USDT")
|
||||||
else:
|
else:
|
||||||
|
# 即使使用最大仓位比例也无法满足最小名义价值
|
||||||
|
max_allowed_value = available_balance * max_position_percent
|
||||||
logger.warning(
|
logger.warning(
|
||||||
f" ❌ 无法满足最小名义价值要求: "
|
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
|
return None
|
||||||
|
|
||||||
# 计算数量(考虑合约的最小数量精度)
|
# 计算数量(考虑合约的最小数量精度)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user