Prechádzať zdrojové kódy

Increment bot version to 2.6.296 and enhance logging in PositionTracker

- Updated BOT_VERSION to 2.6.296.
- Improved logging messages in PositionTracker to provide clearer status updates and error handling during position tracking and monitoring.
- Added detailed logs for initialization, monitoring loop activity, and error conditions to enhance traceability and debugging capabilities.
Carles Sentis 1 deň pred
rodič
commit
b95889217e
2 zmenil súbory, kde vykonal 38 pridanie a 9 odobranie
  1. 37 8
      src/monitoring/position_tracker.py
  2. 1 1
      trading_bot.py

+ 37 - 8
src/monitoring/position_tracker.py

@@ -30,13 +30,23 @@ class PositionTracker:
             return
             
         self.is_running = True
-        logger.info("Starting position tracker")
+        logger.info("🔄 Starting position tracker")
         
-        # Initialize current positions
-        await self._update_current_positions()
-        
-        # Start monitoring loop
-        asyncio.create_task(self._monitoring_loop())
+        try:
+            # Initialize current positions
+            logger.info("📊 Initializing current positions...")
+            await self._update_current_positions()
+            logger.info(f"✅ Position tracker initialized with {len(self.current_positions)} open positions")
+            
+            # Start monitoring loop
+            logger.info("🔄 Starting position monitoring loop...")
+            asyncio.create_task(self._monitoring_loop())
+            logger.info("✅ Position tracker started successfully")
+            
+        except Exception as e:
+            logger.error(f"❌ Error starting position tracker: {e}", exc_info=True)
+            self.is_running = False
+            raise
         
     async def stop(self):
         """Stop position tracking"""
@@ -45,14 +55,26 @@ class PositionTracker:
         
     async def _monitoring_loop(self):
         """Main monitoring loop"""
+        logger.info(f"🔄 Position tracker monitoring loop started (heartbeat: {Config.BOT_HEARTBEAT_SECONDS}s)")
+        loop_count = 0
+        
         while self.is_running:
             try:
+                loop_count += 1
+                logger.debug(f"📊 Position tracker loop #{loop_count} - checking for position changes...")
                 await self._check_position_changes()
+                
+                # Log periodically to show it's alive
+                if loop_count % 12 == 0:  # Every 12 loops (60 seconds with 5s heartbeat)
+                    logger.info(f"📊 Position tracker alive - loop #{loop_count}, {len(self.current_positions)} positions tracked")
+                
                 await asyncio.sleep(Config.BOT_HEARTBEAT_SECONDS)  # Use config heartbeat
             except Exception as e:
-                logger.error(f"Error in position tracking loop: {e}")
+                logger.error(f"Error in position tracking loop #{loop_count}: {e}", exc_info=True)
                 await asyncio.sleep(Config.BOT_HEARTBEAT_SECONDS)
                 
+        logger.info("🛑 Position tracker monitoring loop stopped")
+                
     async def _check_position_changes(self):
         """Check for any position changes"""
         try:
@@ -125,10 +147,16 @@ class PositionTracker:
     async def _update_current_positions(self):
         """Update current positions from exchange"""
         try:
+            logger.debug("🔍 Fetching positions from Hyperliquid client...")
             positions = self.hl_client.get_positions()
+            
             if not positions:
+                logger.debug("📊 No positions returned from exchange")
+                self.current_positions = {}
                 return
                 
+            logger.debug(f"📊 Processing {len(positions)} positions from exchange...")
+                
             new_positions = {}
             for position in positions:
                 # Access nested position data from info.position
@@ -160,9 +188,10 @@ class PositionTracker:
                         }
             
             self.current_positions = new_positions
+            logger.debug(f"✅ Updated current positions: {len(new_positions)} open positions ({list(new_positions.keys()) if new_positions else 'none'})")
             
         except Exception as e:
-            logger.error(f"Error updating current positions: {e}")
+            logger.error(f"Error updating current positions: {e}", exc_info=True)
             
     async def _process_position_changes(self, previous: Dict, current: Dict):
         """Process changes between previous and current positions"""

+ 1 - 1
trading_bot.py

@@ -14,7 +14,7 @@ from datetime import datetime
 from pathlib import Path
 
 # Bot version
-BOT_VERSION = "2.6.295"
+BOT_VERSION = "2.6.296"
 
 # Add src directory to Python path
 sys.path.insert(0, str(Path(__file__).parent / "src"))