修改okx挂单
This commit is contained in:
@@ -514,12 +514,35 @@ def _okx_place_tp_sl(
|
||||
amt = float(ex.amount_to_precision(symbol, float(amount)))
|
||||
if amt <= 0:
|
||||
raise RuntimeError("止盈止损:可平数量经精度舍入后为 0")
|
||||
params = _okx_order_params(direction, reduce_only=True, pos_mode=pos_mode, td_mode=td_mode)
|
||||
sl_s = ex.price_to_precision(symbol, float(stop_loss))
|
||||
tp_s = ex.price_to_precision(symbol, float(take_profit))
|
||||
params["stopLoss"] = {"triggerPrice": sl_s, "type": "market"}
|
||||
params["takeProfit"] = {"triggerPrice": tp_s, "type": "market"}
|
||||
ex.create_order(symbol, "market", close_side, amt, None, params)
|
||||
base = _okx_order_params(direction, reduce_only=True, pos_mode=pos_mode, td_mode=td_mode)
|
||||
sl_px = float(stop_loss)
|
||||
tp_px = float(take_profit)
|
||||
last_err: Exception | None = None
|
||||
for attempt in range(6):
|
||||
try:
|
||||
ex.create_order(
|
||||
symbol,
|
||||
"market",
|
||||
close_side,
|
||||
amt,
|
||||
None,
|
||||
{**base, "stopLossPrice": sl_px},
|
||||
)
|
||||
time.sleep(0.05)
|
||||
ex.create_order(
|
||||
symbol,
|
||||
"market",
|
||||
close_side,
|
||||
amt,
|
||||
None,
|
||||
{**base, "takeProfitPrice": tp_px},
|
||||
)
|
||||
return
|
||||
except Exception as e:
|
||||
last_err = e
|
||||
cancel_orders_for_symbol(ex, "okx", symbol, scope="conditional")
|
||||
time.sleep(0.2 * (attempt + 1))
|
||||
raise RuntimeError(f"OKX 未接受止盈/止损条件单:{last_err}")
|
||||
|
||||
|
||||
def _gate_tpsl_env() -> tuple[bool, int, int, str]:
|
||||
|
||||
Reference in New Issue
Block a user