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

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 пре 18 часа
родитељ
комит
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"))