From 39808c6d5dc55e7ea463da904c0dad7b17d6c17b Mon Sep 17 00:00:00 2001 From: OpenClaw Agent Date: Tue, 24 Mar 2026 10:57:24 +0000 Subject: [PATCH] =?UTF-8?q?refactor:=20=E8=B0=83=E6=95=B4=E5=AE=9E?= =?UTF-8?q?=E6=97=B6=E4=BB=B7=E6=A0=BC=E6=95=B0=E6=8D=AE=E6=BA=90=E4=BC=98?= =?UTF-8?q?=E5=85=88=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 调整: - 实时价格:腾讯 → Yahoo → Tiingo - 历史K线:Yahoo → Tiingo(不变) 原因: - Yahoo 经常 429 限流 - 腾讯财经对国内用户更稳定 - 腾讯支持美股 ETF(如 UPRO、TMF) --- .../Services/MarketDataService.cs | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/AssetManager.Infrastructure/Services/MarketDataService.cs b/AssetManager.Infrastructure/Services/MarketDataService.cs index c84b5a0..2a15689 100755 --- a/AssetManager.Infrastructure/Services/MarketDataService.cs +++ b/AssetManager.Infrastructure/Services/MarketDataService.cs @@ -9,7 +9,7 @@ namespace AssetManager.Infrastructure.Services; /// /// 市场数据服务实现(组合模式) /// 数据源优先级: -/// - 实时价格:Yahoo → 腾讯 → Tiingo +/// - 实时价格:腾讯 → Yahoo → Tiingo(腾讯国内稳定,Yahoo 常限流) /// - 历史K线:Yahoo → Tiingo(腾讯历史接口已废弃) /// - 加密货币:OKX /// @@ -154,27 +154,27 @@ public class MarketDataService : IMarketDataService } else { - // 股票:优先Yahoo财经,失败降级腾讯财经,最后降级 Tiingo + // 股票实时价格:优先腾讯财经(国内稳定),失败降级 Yahoo,最后 Tiingo try { - _logger.LogInformation("[数据源] 尝试 Yahoo 获取 {Symbol}", symbol); - response = await _yahooService.GetStockPriceAsync(symbol); - source = "Yahoo"; - _logger.LogInformation("[数据源] Yahoo 成功: {Symbol} = {Price}", symbol, response.Price); + _logger.LogInformation("[数据源] 尝试腾讯获取 {Symbol}", symbol); + response = await _tencentService.GetStockPriceAsync(symbol); + source = "Tencent"; + _logger.LogInformation("[数据源] 腾讯成功: {Symbol} = {Price}", symbol, response.Price); } catch (Exception ex) { - _logger.LogWarning("[数据源] Yahoo 失败: {Symbol}, 错误: {Error}", symbol, ex.Message); + _logger.LogWarning("[数据源] 腾讯失败: {Symbol}, 错误: {Error}", symbol, ex.Message); try { - _logger.LogInformation("[数据源] 降级使用腾讯获取 {Symbol}", symbol); - response = await _tencentService.GetStockPriceAsync(symbol); - source = "Tencent"; - _logger.LogInformation("[数据源] 腾讯成功: {Symbol} = {Price}", symbol, response.Price); + _logger.LogInformation("[数据源] 降级使用 Yahoo 获取 {Symbol}", symbol); + response = await _yahooService.GetStockPriceAsync(symbol); + source = "Yahoo"; + _logger.LogInformation("[数据源] Yahoo 成功: {Symbol} = {Price}", symbol, response.Price); } - catch (Exception tencentEx) + catch (Exception yahooEx) { - _logger.LogWarning("[数据源] 腾讯失败: {Symbol}, 错误: {Error}", symbol, tencentEx.Message); + _logger.LogWarning("[数据源] Yahoo 失败: {Symbol}, 错误: {Error}", symbol, yahooEx.Message); _logger.LogInformation("[数据源] 最后降级使用 Tiingo 获取 {Symbol}", symbol); response = await _tiingoService.GetStockPriceAsync(symbol); source = "Tiingo";