From 9bde682b4e2c93d348bc263e234b8d222fe87071 Mon Sep 17 00:00:00 2001 From: Macbook Date: Sun, 7 Jun 2026 03:12:03 +0900 Subject: [PATCH] =?UTF-8?q?=EC=95=8C=EB=A6=BC=EB=AA=A9=EB=A1=9D=20?= =?UTF-8?q?=EC=A7=80=ED=91=9C=EB=A1=9C=EB=94=A9=20=EB=AC=B8=EC=A0=9C=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/goldenchart/service/LiveConditionStatusService.java | 3 ++- frontend/src/utils/virtualStrategyConditions.ts | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/backend/src/main/java/com/goldenchart/service/LiveConditionStatusService.java b/backend/src/main/java/com/goldenchart/service/LiveConditionStatusService.java index dc47dbf..698f984 100644 --- a/backend/src/main/java/com/goldenchart/service/LiveConditionStatusService.java +++ b/backend/src/main/java/com/goldenchart/service/LiveConditionStatusService.java @@ -203,7 +203,8 @@ public class LiveConditionStatusService { private void walk(JsonNode node, String timeframe, String side, List out, Set seen) { if (node == null || node.isNull()) return; - String type = node.path("type").asText(""); + // StrategyDslToTa4jAdapter 와 동일하게 type 미설정 시 "CONDITION" 기본값 적용 + String type = node.path("type").asText("CONDITION"); if ("TIMEFRAME".equals(type)) { String tf = LiveStrategyTimeframeService.normalize( diff --git a/frontend/src/utils/virtualStrategyConditions.ts b/frontend/src/utils/virtualStrategyConditions.ts index ad849da..922d00d 100644 --- a/frontend/src/utils/virtualStrategyConditions.ts +++ b/frontend/src/utils/virtualStrategyConditions.ts @@ -47,7 +47,8 @@ function walk( return; } - if (node.type === 'CONDITION' && node.condition) { + // StrategyDslToTa4jAdapter 와 동일: type 미설정(구버전 DSL) 시 CONDITION 으로 처리 + if ((!node.type || node.type === 'CONDITION') && node.condition) { const c = node.condition; const key = `${side}:${timeframe}:${c.indicatorType}:${c.conditionType}:${c.targetValue ?? ''}:${c.leftField ?? ''}`; if (seen.has(key)) return;