From f2d71d33900c84f3b177d92b980f9216cbc46576 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=96=87=E8=96=87=E5=AE=89?= Date: Sat, 24 Jan 2026 10:32:41 +0800 Subject: [PATCH] a --- trading_system/binance_client.py | 12 ++++++++---- trading_system/recommendations_main.py | 5 ++++- trading_system/trade_recommender.py | 12 ++++-------- 3 files changed, 16 insertions(+), 13 deletions(-) diff --git a/trading_system/binance_client.py b/trading_system/binance_client.py index 75e779e..1b59032 100644 --- a/trading_system/binance_client.py +++ b/trading_system/binance_client.py @@ -153,7 +153,11 @@ class BinanceClient: retries: 重试次数,默认从config读取 """ # 连接前刷新API密钥(确保使用最新值,支持热更新) - self._refresh_api_credentials() + # 但如果 API 密钥为空(只用于获取公开行情),则跳过 + if self.api_key and self.api_secret: + self._refresh_api_credentials() + else: + logger.info("BinanceClient: 使用公开 API(无需认证),只能获取行情数据") timeout = timeout or config.CONNECTION_TIMEOUT retries = retries or config.CONNECTION_RETRIES @@ -166,10 +170,10 @@ class BinanceClient: f"测试网: {self.testnet}, 超时: {timeout}秒)..." ) - # 创建客户端(使用最新的API密钥) + # 创建客户端(使用最新的API密钥,如果为空则只能访问公开接口) self.client = await AsyncClient.create( - api_key=self.api_key, - api_secret=self.api_secret, + api_key=self.api_key or None, # 空字符串转为 None + api_secret=self.api_secret or None, testnet=self.testnet ) diff --git a/trading_system/recommendations_main.py b/trading_system/recommendations_main.py index 333ec4c..7f0c84f 100644 --- a/trading_system/recommendations_main.py +++ b/trading_system/recommendations_main.py @@ -126,7 +126,10 @@ async def main(): client: BinanceClient | None = None try: - client = BinanceClient() + # 推荐服务不需要特定账户的 API 密钥,只需要获取行情数据 + # 使用空 API 密钥(公开接口)或使用只读权限的密钥 + logger.info("推荐服务初始化(不依赖特定账户,只获取行情数据)") + client = BinanceClient(api_key="", api_secret="") # 使用空密钥,只获取公开行情 await client.connect() scanner = MarketScanner(client) diff --git a/trading_system/trade_recommender.py b/trading_system/trade_recommender.py index caacd97..4bd9f9a 100644 --- a/trading_system/trade_recommender.py +++ b/trading_system/trade_recommender.py @@ -90,14 +90,10 @@ class TradeRecommender: """ logger.info("开始生成交易推荐...") - # 获取账户余额(用于计算盈亏评估) - try: - balance = await self.client.get_account_balance() - account_balance = balance.get('total', 1000) - logger.debug(f"账户余额: {account_balance:.2f} USDT") - except Exception as e: - account_balance = 1000 - logger.warning(f"获取账户余额失败,使用默认值1000 USDT: {e}") + # 推荐服务不需要获取特定账户余额,直接使用固定值用于计算推荐仓位 + # 用户可以根据自己的实际余额调整实际下单量 + account_balance = 1000 # 固定使用 1000 USDT 作为参考余额 + logger.debug(f"推荐服务使用固定参考余额: {account_balance:.2f} USDT(用于计算推荐仓位比例)") # 1. 从Redis读取现有推荐(如果启用缓存) existing_recommendations = {}