From e80b308c0fc6804900f02d5373e93873cfd79948 Mon Sep 17 00:00:00 2001 From: Dorsa Alhouei Date: Wed, 12 Nov 2025 18:09:10 +0330 Subject: [PATCH 1/2] =?UTF-8?q?feat:=20add=20USD=E2=93=88-M=20Futures=20al?= =?UTF-8?q?go=20order=20endpoints?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Implement 6 new methods for conditional orders migration to Algo Service - Add futures_create_algo_order, futures_cancel_algo_order, futures_cancel_all_open_algo_orders, futures_get_algo_order, futures_get_open_algo_orders, futures_get_all_algo_orders - Support both sync and async clients with comprehensive documentation - Prepare for Binance API migration effective 2025-12-02 - Follow existing library patterns and conventions --- binance/async_client.py | 18 ++++++++++++++++ binance/client.py | 48 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 66 insertions(+) diff --git a/binance/async_client.py b/binance/async_client.py index 541bd047..64dbe602 100644 --- a/binance/async_client.py +++ b/binance/async_client.py @@ -1892,6 +1892,9 @@ async def futures_create_order(self, **params): params["newClientOrderId"] = self.CONTRACT_ORDER_PREFIX + self.uuid22() return await self._request_futures_api("post", "order", True, data=params) + async def futures_create_algo_order(self, **params): + return await self._request_futures_api('post', 'algoOrder', True, data=params) + async def futures_limit_order(self, **params): """Send in a new futures limit order. @@ -2003,6 +2006,21 @@ async def futures_cancel_all_open_orders(self, **params): "delete", "allOpenOrders", True, data=params ) + async def futures_get_algo_order(self, **params): + return await self._request_futures_api("get", "algoOrder", True, data=params) + + async def futures_get_open_algo_orders(self, **params): + return await self._request_futures_api("get", "openAlgoOrders", True, data=params) + + async def futures_get_all_algo_orders(self, **params): + return await self._request_futures_api("get", "allAlgoOrders", True, data=params) + + async def futures_cancel_algo_order(self, **params): + return await self._request_futures_api("delete", "algoOrder", True, data=params) + + async def futures_cancel_all_open_algo_orders(self, **params): + return await self._request_futures_api("delete", "algoOpenOrders", True, data=params) + async def futures_cancel_orders(self, **params): if params.get("orderidlist"): params["orderidlist"] = quote( diff --git a/binance/client.py b/binance/client.py index 95d76190..57ae5233 100755 --- a/binance/client.py +++ b/binance/client.py @@ -7781,6 +7781,14 @@ def futures_create_order(self, **params): params["newClientOrderId"] = self.CONTRACT_ORDER_PREFIX + self.uuid22() return self._request_futures_api("post", "order", True, data=params) + def futures_create_algo_order(self, **params): + """Send in a new futures Algo order. + + https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/New-Algo-Order + + """ + return self._request_futures_api('post', 'algoOrder', True, data=params) + def futures_limit_order(self, **params): """Send in a new futures limit order. @@ -7945,6 +7953,46 @@ def futures_cancel_orders(self, **params): "delete", "batchOrders", True, force_params=True, data=params ) + def futures_get_algo_order(self, **params): + """Check an algo order's status. + + https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/Query-Algo-Order + + """ + return self._request_futures_api("get", "algoOrder", True, data=params) + + def futures_get_open_algo_orders(self, **params): + """Get all algo open orders on a symbol. + + https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/Current-All-Algo-Open-Orders + + """ + return self._request_futures_api("get", "openAlgoOrders", True, data=params) + + def futures_get_all_algo_orders(self, **params): + """Get all algo orders; active, CANCELED, TRIGGERED or FINISHED + + https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/Query-All-Algo-Orders + + """ + return self._request_futures_api("get", "allAlgoOrders", True, data=params) + + def futures_cancel_algo_order(self, **params): + """Cancel an active futures algo order. + + https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/Cancel-Algo-Order + + """ + return self._request_futures_api("delete", "algoOrder", True, data=params) + + def futures_cancel_all_open_algo_orders(self, **params): + """Cancel all open futures algo orders + + https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/Cancel-All-Algo-Open-Orders + + """ + return self._request_futures_api("delete", "algoOpenOrders", True, data=params) + def futures_countdown_cancel_all(self, **params): """Cancel all open orders of the specified symbol at the end of the specified countdown. From 1854073c71439354349ce2f6de1052ea7f05f830 Mon Sep 17 00:00:00 2001 From: Dorsa Alhouei Date: Fri, 14 Nov 2025 01:12:59 +0330 Subject: [PATCH 2/2] chore: style fixes for algo orders --- binance/async_client.py | 2 +- binance/client.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/binance/async_client.py b/binance/async_client.py index 64dbe602..3e2d2127 100644 --- a/binance/async_client.py +++ b/binance/async_client.py @@ -1893,7 +1893,7 @@ async def futures_create_order(self, **params): return await self._request_futures_api("post", "order", True, data=params) async def futures_create_algo_order(self, **params): - return await self._request_futures_api('post', 'algoOrder', True, data=params) + return await self._request_futures_api("post", "algoOrder", True, data=params) async def futures_limit_order(self, **params): """Send in a new futures limit order. diff --git a/binance/client.py b/binance/client.py index 57ae5233..757e0c25 100755 --- a/binance/client.py +++ b/binance/client.py @@ -7970,7 +7970,7 @@ def futures_get_open_algo_orders(self, **params): return self._request_futures_api("get", "openAlgoOrders", True, data=params) def futures_get_all_algo_orders(self, **params): - """Get all algo orders; active, CANCELED, TRIGGERED or FINISHED + """Get all algo orders; active, CANCELED, TRIGGERED or FINISHED. https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/Query-All-Algo-Orders