diff --git a/trading/realtime_trader.py b/trading/realtime_trader.py index dc70b56..4d795fb 100644 --- a/trading/realtime_trader.py +++ b/trading/realtime_trader.py @@ -217,12 +217,32 @@ class RealtimeTrader: logger.error(f"Error loading {symbol} signal: {e}") # 向后兼容: 使用旧格式的 latest_signal.json - if not signals and self.signal_file.exists(): + # 注意: 只分配给信号中指定的币种,或者根据价格推断币种 + if self.signal_file.exists(): try: with open(self.signal_file, 'r') as f: data = json.load(f) - first_symbol = self.symbols[0] if self.symbols else 'BTCUSDT' - signals[first_symbol] = data + + # 尝试从信号中获取币种 + signal_symbol = data.get('symbol') + + # 如果没有明确指定,尝试从价格推断 + if not signal_symbol: + signal_price = (data.get('aggregated_signal', {}) + .get('levels', {}) + .get('current_price', 0)) + if signal_price: + # BTC 价格通常 > $10,000,ETH 价格通常 < $10,000 + if signal_price > 10000: + signal_symbol = 'BTCUSDT' + elif signal_price > 100: + signal_symbol = 'ETHUSDT' + + # 只有当推断出的币种在我们的列表中,且还没有信号时才使用 + if signal_symbol and signal_symbol in self.symbols and signal_symbol not in signals: + signals[signal_symbol] = data + logger.info(f"Loaded legacy signal for {signal_symbol}") + except Exception as e: logger.error(f"Error loading legacy signal: {e}")