Skip to content

Commit 6a98c19

Browse files
committed
fix: improve binance stoploss "triggered" behavior
1 parent eb3e8b8 commit 6a98c19

File tree

1 file changed

+15
-1
lines changed

1 file changed

+15
-1
lines changed

freqtrade/exchange/binance.py

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,21 @@ def fetch_stoploss_order(
151151
if self.trading_mode == TradingMode.FUTURES:
152152
params = params or {}
153153
params.update({"stop": True})
154-
return self.fetch_order(order_id, pair, params)
154+
order = self.fetch_order(order_id, pair, params)
155+
if self.trading_mode == TradingMode.FUTURES and order.get("status", "open") == "closed":
156+
# Places a real order - which we need to fetch explicitly.
157+
158+
if new_orderid := order.get("info", {}).get("actualOrderId"):
159+
order1 = self.fetch_order(order_id=new_orderid, pair=pair, params={})
160+
order1["id_stop"] = order1["id"]
161+
order1["id"] = order_id
162+
order1["type"] = "stoploss"
163+
order1["stopPrice"] = order.get("stopPrice")
164+
order1["status_stop"] = "triggered"
165+
166+
return order1
167+
168+
return order
155169

156170
def cancel_stoploss_order(self, order_id: str, pair: str, params: dict | None = None) -> dict:
157171
if self.trading_mode == TradingMode.FUTURES:

0 commit comments

Comments
 (0)