diff --git a/exchanges/paradex.py b/exchanges/paradex.py index c4f7b433..92884b47 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 = Decimal(order_data.get('remaining_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":