Skip to content

Commit b7c89a7

Browse files
committed
feat: enhance orders_emulate to include canceled orders
1 parent 0a7fe73 commit b7c89a7

2 files changed

Lines changed: 12 additions & 3 deletions

File tree

freqtrade/exchange/exchange.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1896,9 +1896,12 @@ def _fetch_orders_emulate(self, pair: str, since_ms: int) -> list[CcxtOrder]:
18961896
orders = []
18971897
if self.exchange_has("fetchClosedOrders"):
18981898
orders = self._api.fetch_closed_orders(pair, since=since_ms)
1899-
if self.exchange_has("fetchOpenOrders"):
1900-
orders_open = self._api.fetch_open_orders(pair, since=since_ms)
1901-
orders.extend(orders_open)
1899+
if self.exchange_has("fetchCanceledOrders"):
1900+
orders_canceled = self._api.fetch_canceled_orders(pair, since=since_ms)
1901+
orders.extend(orders_canceled)
1902+
if self.exchange_has("fetchOpenOrders"):
1903+
orders_open = self._api.fetch_open_orders(pair, since=since_ms)
1904+
orders.extend(orders_open)
19021905
return orders
19031906

19041907
@retrier(retries=0)

tests/exchange/test_exchange.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1968,6 +1968,7 @@ def return_value(*args, **kwargs):
19681968

19691969
api_mock.fetch_orders = MagicMock(side_effect=return_value)
19701970
api_mock.fetch_open_orders = MagicMock(return_value=[limit_order["buy"]])
1971+
api_mock.fetch_canceled_orders = MagicMock(return_value=[])
19711972
api_mock.fetch_closed_orders = MagicMock(return_value=[limit_order["buy"]])
19721973

19731974
mocker.patch(f"{EXMS}.exchange_has", return_value=True)
@@ -2000,6 +2001,8 @@ def has_resp(_, endpoint):
20002001
return True
20012002
if endpoint == "fetchOpenOrders":
20022003
return True
2004+
if endpoint == "fetchCanceledOrders":
2005+
return True
20032006

20042007
if exchange_name == "okx":
20052008
# Special OKX case is tested separately
@@ -2012,6 +2015,7 @@ def has_resp(_, endpoint):
20122015
assert api_mock.fetch_orders.call_count == 0
20132016
assert api_mock.fetch_open_orders.call_count == expected
20142017
assert api_mock.fetch_closed_orders.call_count == expected
2018+
assert api_mock.fetch_canceled_orders.call_count == expected
20152019

20162020
mocker.patch(f"{EXMS}.exchange_has", return_value=True)
20172021

@@ -2031,12 +2035,14 @@ def has_resp(_, endpoint):
20312035
api_mock.fetch_orders = MagicMock(side_effect=ccxt.NotSupported())
20322036
api_mock.fetch_open_orders.reset_mock()
20332037
api_mock.fetch_closed_orders.reset_mock()
2038+
api_mock.fetch_canceled_orders.reset_mock()
20342039

20352040
exchange.fetch_orders("mocked", start_time)
20362041

20372042
assert api_mock.fetch_orders.call_count == expected
20382043
assert api_mock.fetch_open_orders.call_count == expected
20392044
assert api_mock.fetch_closed_orders.call_count == expected
2045+
assert api_mock.fetch_canceled_orders.call_count == expected
20402046

20412047

20422048
def test_fetch_trading_fees(default_conf, mocker):

0 commit comments

Comments
 (0)