diff --git a/src/views/Company/components/StockQuoteCard/index.tsx b/src/views/Company/components/StockQuoteCard/index.tsx index a7d1c5cf..42535821 100644 --- a/src/views/Company/components/StockQuoteCard/index.tsx +++ b/src/views/Company/components/StockQuoteCard/index.tsx @@ -78,14 +78,22 @@ const StockQuoteCard: React.FC = ({ // 如果有实时数据,用实时数据覆盖价格相关字段 if (realtimeQuote && realtimeQuote.price > 0) { + // 始终使用静态数据的昨收价(WebSocket 的 prevClose 可能不准确) + const yesterdayClose = quoteData.yesterdayClose; + // 用实时价格和静态昨收价重新计算涨跌幅 + const changePercent = yesterdayClose > 0 + ? ((realtimeQuote.price - yesterdayClose) / yesterdayClose) * 100 + : quoteData.changePercent; + return { ...quoteData, currentPrice: realtimeQuote.price, - changePercent: realtimeQuote.changePct, + changePercent, todayOpen: realtimeQuote.open || quoteData.todayOpen, todayHigh: realtimeQuote.high || quoteData.todayHigh, todayLow: realtimeQuote.low || quoteData.todayLow, - yesterdayClose: realtimeQuote.prevClose || quoteData.yesterdayClose, + // 始终使用静态数据的昨收价 + yesterdayClose, }; }