فهرست منبع

Increment bot version to 2.6.290 and enhance logging in position data retrieval

- Updated BOT_VERSION to 2.6.290.
- Added detailed logging for exchange positions and data retrieval processes in PositionsCommands, improving traceability and debugging capabilities.
- Enhanced symbol key mapping to include both 'coin' and 'symbol' fields, ensuring more robust data handling.
Carles Sentis 17 ساعت پیش
والد
کامیت
5c00b2f74b
2فایلهای تغییر یافته به همراه15 افزوده شده و 2 حذف شده
  1. 14 1
      src/commands/info/positions.py
  2. 1 1
      trading_bot.py

+ 14 - 1
src/commands/info/positions.py

@@ -32,12 +32,22 @@ class PositionsCommands(InfoCommandsBase):
             exchange_positions = self.trading_engine.get_positions() or []
             exchange_orders = self.trading_engine.get_orders() or []
             
+            # Debug: Log the exchange positions data structure
+            logger.info(f"🔍 Exchange positions data: {[{k: v for k, v in pos.items() if k in ['coin', 'symbol', 'returnOnEquity', 'szi']} for pos in exchange_positions[:2]]}")
+            
             # Create lookup for exchange data by symbol
             exchange_data_by_symbol = {}
             for ex_pos in exchange_positions:
-                symbol_key = ex_pos.get('coin', '')
+                # Try both 'coin' and 'symbol' fields for mapping
+                symbol_key = ex_pos.get('coin', '') or ex_pos.get('symbol', '')
                 if symbol_key:
+                    # Also try extracting base asset from symbol if it's in format "TOKEN/USDC:USDC"
+                    if '/' in symbol_key:
+                        base_token = symbol_key.split('/')[0]
+                        exchange_data_by_symbol[base_token] = ex_pos
                     exchange_data_by_symbol[symbol_key] = ex_pos
+                    
+            logger.info(f"🔍 Exchange data keys: {list(exchange_data_by_symbol.keys())}")
 
             # Initialize totals
             total_position_value = 0.0
@@ -101,6 +111,9 @@ class PositionsCommands(InfoCommandsBase):
                     
                     # Get exchange data for this position (used for ROE and mark price)
                     exchange_data = exchange_data_by_symbol.get(base_asset)
+                    logger.info(f"🔍 Looking for '{base_asset}' in exchange data. Found: {exchange_data is not None}")
+                    if exchange_data:
+                        logger.info(f"🔍 Exchange data for {base_asset}: ROE={exchange_data.get('returnOnEquity')}, markPrice={exchange_data.get('markPrice')}")
                     
                     # Get price data with defaults - prioritize live exchange data
                     mark_price = entry_price  # Default to entry price

+ 1 - 1
trading_bot.py

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