余额不足时算出能开几笔,并点明半仓风险:两条腿分别下单,第二条失败会静默改掉收益结构
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
+16
-3
@@ -286,10 +286,23 @@ class Exec:
|
||||
f"需约 {need:.0f}(名义 {NOTIONAL:.0f} / "
|
||||
f"{LEVERAGE}x)", flush=True)
|
||||
if av < need:
|
||||
print(f" ⚠ 不够。合约账户里要有 USDT 才能下单——"
|
||||
f"资金常在现货账户,需要先划转到 USDT 本位合约。"
|
||||
f"低于 {NOTIONAL / LEVERAGE:.0f} 连一笔都开不了",
|
||||
per = NOTIONAL / LEVERAGE
|
||||
fit = int(av // per) if per > 0 else 0
|
||||
print(f" ⚠ 保证金只够 {fit} 笔,而 MAX_OPEN="
|
||||
f"{MAX_OPEN}。", flush=True)
|
||||
# 这里不只是"少做几笔"。两条腿是分别下单的,第一条
|
||||
# 成了、第二条因保证金不足失败,就留下一个半仓——
|
||||
# 收益结构从「50% 在 3 ATR + 50% 在 8 ATR」变成只剩
|
||||
# 一条腿,而且是静默的。让闸按真实余额拦,比让交易所
|
||||
# 拒单干净
|
||||
print(f" 要么充钱到 {need:.0f}+ USDT,要么把 "
|
||||
f"LIVE_MAX_OPEN 降到 {max(fit, 1)}。不改的话"
|
||||
f"超出的信号会下单失败,且可能只成一条腿、"
|
||||
f"静默变成半仓(收益结构就不是设计的那个了)",
|
||||
flush=True)
|
||||
if fit == 0:
|
||||
print(f" 现在连一笔都开不了(每笔需 "
|
||||
f"{per:.0f} USDT)", flush=True)
|
||||
except Exception as e: # noqa: BLE001
|
||||
# 退出前要关会话。SystemExit 会绕过 run() 里的收尾,
|
||||
# 漏了就在日志尾部留一串 "Unclosed client session",
|
||||
|
||||
Reference in New Issue
Block a user