수익률 평기 기준 통일
This commit is contained in:
@@ -46,6 +46,7 @@ public class BacktestingService {
|
||||
private final GcBacktestResultRepository resultRepository;
|
||||
private final ObjectMapper objectMapper;
|
||||
private final IndicatorSettingsService indicatorSettingsService;
|
||||
private final StrategyDslTimeframeNormalizer timeframeNormalizer;
|
||||
|
||||
private static final BacktestSettingsDto DEFAULT_SETTINGS = new BacktestSettingsDto();
|
||||
|
||||
@@ -111,12 +112,20 @@ public class BacktestingService {
|
||||
|
||||
// ── 멀티 타임프레임 지원: DSL에서 상위봉 타입 추출 후 집계 시리즈 빌드 ──────
|
||||
String primaryTf = normalizeTf(req.getTimeframe());
|
||||
// scan-signals·전략평가 차트와 동일 — 차트 시간봉에 맞게 DSL 리매핑
|
||||
if (buyDsl != null && !buyDsl.isNull()) {
|
||||
buyDsl = timeframeNormalizer.remapForChartTimeframe(buyDsl, primaryTf);
|
||||
}
|
||||
if (sellDsl != null && !sellDsl.isNull()) {
|
||||
sellDsl = timeframeNormalizer.remapForChartTimeframe(sellDsl, primaryTf);
|
||||
}
|
||||
Map<String, BarSeries> seriesOverrides = buildSeriesOverrides(
|
||||
series, primaryTf, buyDsl, sellDsl);
|
||||
|
||||
String market = req.getSymbol() != null && !req.getSymbol().isBlank() ? req.getSymbol() : null;
|
||||
StrategyDslToTa4jAdapter.RuleBuildContext ruleCtx =
|
||||
new StrategyDslToTa4jAdapter.RuleBuildContext(
|
||||
series, params, visual, null, null, false, seriesOverrides);
|
||||
series, params, visual, market, null, false, seriesOverrides);
|
||||
Rule entryRule = adapter.toRule(buyDsl, ruleCtx);
|
||||
Rule baseExitRule = (sellDsl != null && !sellDsl.isNull())
|
||||
? adapter.toRule(sellDsl, ruleCtx)
|
||||
|
||||
Reference in New Issue
Block a user