From e7b8826b63af1e114fd67d6290465ceb1daba21c Mon Sep 17 00:00:00 2001 From: daquexian Date: Sun, 21 Sep 2025 23:34:18 +0800 Subject: [PATCH 1/2] fix paradex mismatch error Signed-off-by: daquexian --- exchanges/paradex.py | 8 +++++--- trading_bot.py | 2 -- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/exchanges/paradex.py b/exchanges/paradex.py index c4f7b433..2a0b2f45 100644 --- a/exchanges/paradex.py +++ b/exchanges/paradex.py @@ -492,14 +492,16 @@ async def get_order_info(self, order_id: str) -> Optional[OrderInfo]: try: # Get order by ID using official SDK order_data = self.paradex.api_client.fetch_order(order_id) + size = Decimal(order_data.get('size', 0)).quantize(self.order_size_increment, rounding=ROUND_HALF_UP) + remaining_size = size - Decimal(order_data.get('filled_size', 0)) return OrderInfo( order_id=order_data.get('id', ''), side=order_data.get('side', '').lower(), - size=Decimal(order_data.get('size', 0)).quantize(self.order_size_increment, rounding=ROUND_HALF_UP), + size=size, price=Decimal(order_data.get('price', 0)), status=order_data.get('status', ''), - filled_size=Decimal(order_data.get('filled_size', 0)), - remaining_size=Decimal(order_data.get('remaining_size', 0)), + filled_size=size - remaining_size, + remaining_size=remaining_size, cancel_reason=order_data.get('cancel_reason', '') ) diff --git a/trading_bot.py b/trading_bot.py index e395bde9..ae80ca1e 100644 --- a/trading_bot.py +++ b/trading_bot.py @@ -250,13 +250,11 @@ async def _handle_order_result(self, order_result) -> bool: try: cancel_result = await self.exchange_client.cancel_order(order_id) if not cancel_result.success: - self.order_canceled_event.set() self.logger.log(f"[CLOSE] Failed to cancel order {order_id}: {cancel_result.error_message}", "ERROR") else: self.current_order_status = "CANCELED" except Exception as e: - self.order_canceled_event.set() self.logger.log(f"[CLOSE] Error canceling order {order_id}: {e}", "ERROR") if self.config.exchange == "backpack": From f398b11bf9dcbf729954ecc0bc8c5e3f10a5482e Mon Sep 17 00:00:00 2001 From: daquexian Date: Mon, 22 Sep 2025 10:26:25 +0800 Subject: [PATCH 2/2] fix remaining_size Signed-off-by: daquexian --- exchanges/paradex.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exchanges/paradex.py b/exchanges/paradex.py index 2a0b2f45..92884b47 100644 --- a/exchanges/paradex.py +++ b/exchanges/paradex.py @@ -493,7 +493,7 @@ async def get_order_info(self, order_id: str) -> Optional[OrderInfo]: # Get order by ID using official SDK order_data = self.paradex.api_client.fetch_order(order_id) size = Decimal(order_data.get('size', 0)).quantize(self.order_size_increment, rounding=ROUND_HALF_UP) - remaining_size = size - Decimal(order_data.get('filled_size', 0)) + remaining_size = Decimal(order_data.get('remaining_size', 0)) return OrderInfo( order_id=order_data.get('id', ''), side=order_data.get('side', '').lower(),