修改okx挂单

This commit is contained in:
dekun
2026-05-27 06:02:19 +08:00
parent 3ff17a4b60
commit 480e5b1d20
2 changed files with 90 additions and 20 deletions
+29 -6
View File
@@ -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]: