From cf6bf1b7b5d1c367da9754a4d3e20a9b3cd46a61 Mon Sep 17 00:00:00 2001 From: Matthias Date: Mon, 15 Dec 2025 06:56:26 +0100 Subject: [PATCH] refactor: reduce code duplication for cancel_stop_orders --- freqtrade/exchange/binance.py | 6 ------ freqtrade/exchange/bitget.py | 3 --- freqtrade/exchange/exchange.py | 3 +++ freqtrade/exchange/gate.py | 3 --- freqtrade/exchange/okx.py | 3 --- 5 files changed, 3 insertions(+), 15 deletions(-) diff --git a/freqtrade/exchange/binance.py b/freqtrade/exchange/binance.py index 258afc631..1486e5665 100644 --- a/freqtrade/exchange/binance.py +++ b/freqtrade/exchange/binance.py @@ -168,12 +168,6 @@ class Binance(Exchange): return order - def cancel_stoploss_order(self, order_id: str, pair: str, params: dict | None = None) -> dict: - if self.trading_mode == TradingMode.FUTURES: - params = params or {} - params.update({"stop": True}) - return self.cancel_order(order_id=order_id, pair=pair, params=params) - def get_historic_ohlcv( self, pair: str, diff --git a/freqtrade/exchange/bitget.py b/freqtrade/exchange/bitget.py index 7fef482d2..7c791a5a5 100644 --- a/freqtrade/exchange/bitget.py +++ b/freqtrade/exchange/bitget.py @@ -129,9 +129,6 @@ class Bitget(Exchange): return self._fetch_stop_order_fallback(order_id, pair) - def cancel_stoploss_order(self, order_id: str, pair: str, params: dict | None = None) -> dict: - return self.cancel_order(order_id=order_id, pair=pair, params={"stop": True}) - @retrier def additional_exchange_init(self) -> None: """ diff --git a/freqtrade/exchange/exchange.py b/freqtrade/exchange/exchange.py index 120b027e6..18390d895 100644 --- a/freqtrade/exchange/exchange.py +++ b/freqtrade/exchange/exchange.py @@ -1742,6 +1742,9 @@ class Exchange: raise OperationalException(e) from e def cancel_stoploss_order(self, order_id: str, pair: str, params: dict | None = None) -> dict: + if self.get_option("stoploss_fetch_requires_stop_param"): + params = params or {} + params["stop"] = True return self.cancel_order(order_id, pair, params) def is_cancel_order_result_suitable(self, corder) -> TypeGuard[CcxtOrder]: diff --git a/freqtrade/exchange/gate.py b/freqtrade/exchange/gate.py index 01be9d9cd..689959768 100644 --- a/freqtrade/exchange/gate.py +++ b/freqtrade/exchange/gate.py @@ -152,6 +152,3 @@ class Gate(Exchange): return order1 return order - - def cancel_stoploss_order(self, order_id: str, pair: str, params: dict | None = None) -> dict: - return self.cancel_order(order_id=order_id, pair=pair, params={"stop": True}) diff --git a/freqtrade/exchange/okx.py b/freqtrade/exchange/okx.py index 43924d706..d1777006d 100644 --- a/freqtrade/exchange/okx.py +++ b/freqtrade/exchange/okx.py @@ -264,9 +264,6 @@ class Okx(Exchange): return safe_value_fallback2(order, order, "id_stop", "id") return order["id"] - def cancel_stoploss_order(self, order_id: str, pair: str, params: dict | None = None) -> dict: - return self.cancel_order(order_id=order_id, pair=pair, params={"stop": True}) - def _fetch_orders_emulate(self, pair: str, since_ms: int) -> list[CcxtOrder]: orders = []