Преглед изворни кода

Refactor PositionTracker to lazy load TradingStats

- Updated PositionTracker to initialize TradingStats as None, deferring its instantiation to avoid circular imports.
- Implemented lazy loading of TradingStats within the process_trade_complete_cycle method, enhancing modularity and reducing initial load dependencies.
Carles Sentis пре 21 часа
родитељ
комит
fa865bc239
2 измењених фајлова са 7 додато и 3 уклоњено
  1. 6 2
      src/monitoring/position_tracker.py
  2. 1 1
      trading_bot.py

+ 6 - 2
src/monitoring/position_tracker.py

@@ -5,7 +5,6 @@ from datetime import datetime, timezone
 
 from ..clients.hyperliquid_client import HyperliquidClient
 from ..notifications.notification_manager import NotificationManager
-from ..stats.trading_stats import TradingStats
 
 logger = logging.getLogger(__name__)
 
@@ -18,7 +17,7 @@ class PositionTracker:
     def __init__(self, hl_client: HyperliquidClient, notification_manager: NotificationManager):
         self.hl_client = hl_client
         self.notification_manager = notification_manager
-        self.trading_stats = TradingStats()
+        self.trading_stats = None  # Will be lazy loaded
         
         # Track current positions
         self.current_positions: Dict[str, Dict] = {}
@@ -209,6 +208,11 @@ class PositionTracker:
                                  entry_price: float, exit_price: float, pnl: float):
         """Save position statistics to database using existing TradingStats interface"""
         try:
+            # Lazy load TradingStats to avoid circular imports
+            if self.trading_stats is None:
+                from ..stats.trading_stats import TradingStats
+                self.trading_stats = TradingStats()
+            
             # Use the existing process_trade_complete_cycle method
             lifecycle_id = self.trading_stats.process_trade_complete_cycle(
                 symbol=symbol,

+ 1 - 1
trading_bot.py

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