From 27e6f644e8a138f29bebceb03cbaaa90d1d69788 Mon Sep 17 00:00:00 2001 From: Macbook Date: Tue, 2 Jun 2026 22:02:14 +0900 Subject: [PATCH] =?UTF-8?q?=EC=A7=84=EB=8B=A8:=20=5FbuildIchimokuCloudData?= =?UTF-8?q?=20SpanA/SpanB=20=EC=9B=90=EB=B3=B8=20=EB=8D=B0=EC=9D=B4?= =?UTF-8?q?=ED=84=B0=20=EB=A1=9C=EA=B7=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Cursor --- frontend/src/utils/ChartManager.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/frontend/src/utils/ChartManager.ts b/frontend/src/utils/ChartManager.ts index f070252..87ac240 100644 --- a/frontend/src/utils/ChartManager.ts +++ b/frontend/src/utils/ChartManager.ts @@ -1397,6 +1397,17 @@ export class ChartManager { .filter(p => p.value != null && !isNaN(p.value) && bMap.has(p.time)) .map(p => ({ time: p.time as number, spanA: p.value, spanB: bMap.get(p.time)! })); + // 진단 로그: spanA/spanB 원본 값 비교 + const aValid = (spanAPlot ?? []).filter(p => p.value != null && !isNaN(p.value)); + const bValid = (spanBPlot ?? []).filter(p => p.value != null && !isNaN(p.value)); + const aLast3 = aValid.slice(-3).map(p => p.value); + const bLast3 = bValid.slice(-3).map(p => p.value); + const histLast3 = historical.slice(-3).map(p => ({ a: p.spanA, b: p.spanB, eq: p.spanA === p.spanB })); + const maxHistDiff = historical.length > 0 ? Math.max(...historical.map(p => Math.abs(p.spanA - p.spanB))) : 0; + console.log('[IchimokuCloud] BUILD RAW: spanA last3=', aLast3, 'spanB last3=', bLast3, + '| hist last3=', JSON.stringify(histLast3), '| maxDiff=', maxHistDiff, + '| histLen=', historical.length, 'sameRef=', spanAPlot === spanBPlot); + // 미래 구름 const N = this.rawBars.length; if (N < 2) return historical;