@@ -202,6 +202,32 @@ def open_coin_option_buy_full(
|
|||||||
tick_sz=tick_sz,
|
tick_sz=tick_sz,
|
||||||
ord_type="ioc",
|
ord_type="ioc",
|
||||||
)
|
)
|
||||||
|
# 51008 时自动减半张数再试一次(买币已到位,避免整笔回滚)
|
||||||
|
if (not order.get("ok")) and sheets > 1:
|
||||||
|
msg_l = str(order.get("msg") or "").lower()
|
||||||
|
if "51008" in str(order.get("raw") or "").lower() or "不足" in str(order.get("msg") or ""):
|
||||||
|
sheets2 = max(1, sheets // 2)
|
||||||
|
if sheets2 < sheets:
|
||||||
|
order2 = cfg["place_option_limit_order"](
|
||||||
|
ex,
|
||||||
|
inst_id=inst_id,
|
||||||
|
side="buy",
|
||||||
|
sheets=sheets2,
|
||||||
|
price=float(ask),
|
||||||
|
td_mode=td_mode_for_option_buy(cfg.get("td_mode")),
|
||||||
|
tick_sz=tick_sz,
|
||||||
|
ord_type="ioc",
|
||||||
|
)
|
||||||
|
if order2.get("ok"):
|
||||||
|
order = order2
|
||||||
|
sheets = sheets2
|
||||||
|
sizing = {
|
||||||
|
"ok": True,
|
||||||
|
"sheets": sheets,
|
||||||
|
"eth_amount": round(sheets * ct_mult, 8),
|
||||||
|
"coin_premium": round(sheets * float(ask) * ct_mult, 8),
|
||||||
|
"retried_half": True,
|
||||||
|
}
|
||||||
if not order.get("ok"):
|
if not order.get("ok"):
|
||||||
rb = rollback_bought_coin_to_usdt(
|
rb = rollback_bought_coin_to_usdt(
|
||||||
conn, ex, bridge_id=bridge_id, underlying=underlying, reason=order.get("msg") or "下单失败"
|
conn, ex, bridge_id=bridge_id, underlying=underlying, reason=order.get("msg") or "下单失败"
|
||||||
|
|||||||
Reference in New Issue
Block a user