diff --git a/backend/src/main/java/com/goldenchart/service/BacktestingService.java b/backend/src/main/java/com/goldenchart/service/BacktestingService.java index 4dc714c..919b9aa 100644 --- a/backend/src/main/java/com/goldenchart/service/BacktestingService.java +++ b/backend/src/main/java/com/goldenchart/service/BacktestingService.java @@ -181,7 +181,7 @@ public class BacktestingService { for (int i = 0; i < barCount; i++) { double closePrice = getPrice(series, req.getBars(), i, cfg.getEntryPriceType()); double exitPrice = getPrice(series, req.getBars(), i, cfg.getExitPriceType()); - long time = series.getBar(i).getEndTime().getEpochSecond(); + long time = barStartEpoch(series, i); // ── SIGNAL_ONLY 모드: 포지션·자금 상태 무관, 조건 충족 시마다 전체 시그널 생성 ── if (signalOnly) { @@ -458,6 +458,12 @@ public class BacktestingService { .build(); } + /** 차트·캔들 API 와 동일 — 봉 시작 시각(epoch sec). ta4j Bar.endTime 은 종료 시각. */ + private static long barStartEpoch(BarSeries series, int index) { + var bar = series.getBar(index); + return bar.getEndTime().getEpochSecond() - bar.getTimePeriod().getSeconds(); + } + // ── 개별 Criterion 계산 헬퍼 ───────────────────────────────────────────── private double enterPosition(PortfolioLedger ledger, boolean useLedger,