diff --git a/frontend/src/components/StrategyEvaluationPage.tsx b/frontend/src/components/StrategyEvaluationPage.tsx
index e347d68..be879df 100644
--- a/frontend/src/components/StrategyEvaluationPage.tsx
+++ b/frontend/src/components/StrategyEvaluationPage.tsx
@@ -834,43 +834,54 @@ function StrategyEvaluationPageInner({ theme = 'dark' }: Props) {
- {selectedStrategy && signalScanRunning && (
-
시그널 계산 중…
- )}
- {selectedStrategy && analysisSummary && !signalScanRunning && (
-
-
- 매수:{padEvaluationSignalCount(analysisSummary.buyCount)}건
+
+ {selectedBarTimeSec != null && (
+
+ )}
+ {selectedStrategy && signalScanRunning && (
+ 시그널 계산 중…
+ )}
+ {selectedStrategy && analysisSummary && !signalScanRunning && (
+
+
+ 매수:{padEvaluationSignalCount(analysisSummary.buyCount)}건
+
+ ·
+
+ 매도:{padEvaluationSignalCount(analysisSummary.sellCount)}건
+
+ ·
+ 0
+ ? ' seval-analysis-return--pos'
+ : analysisSummary.fullBuyReturnPct < 0
+ ? ' seval-analysis-return--neg'
+ : ''
+ }`}>
+ 일괄:{formatEvaluationReturnPct(analysisSummary.fullBuyReturnPct)}
+
+ ·
+ 0
+ ? ' seval-analysis-return--pos'
+ : analysisSummary.splitBuyReturnPct < 0
+ ? ' seval-analysis-return--neg'
+ : ''
+ }`}>
+ 분할:{formatEvaluationReturnPct(analysisSummary.splitBuyReturnPct)}
+
- ·
-
- 매도:{padEvaluationSignalCount(analysisSummary.sellCount)}건
-
- ·
- 0
- ? ' seval-analysis-return--pos'
- : analysisSummary.fullBuyReturnPct < 0
- ? ' seval-analysis-return--neg'
- : ''
- }`}>
- 일괄:{formatEvaluationReturnPct(analysisSummary.fullBuyReturnPct)}
-
- ·
- 0
- ? ' seval-analysis-return--pos'
- : analysisSummary.splitBuyReturnPct < 0
- ? ' seval-analysis-return--neg'
- : ''
- }`}>
- 분할:{formatEvaluationReturnPct(analysisSummary.splitBuyReturnPct)}
-
-
- )}
+ )}
+
diff --git a/frontend/src/components/strategyEvaluation/StrategyEvaluationChart.tsx b/frontend/src/components/strategyEvaluation/StrategyEvaluationChart.tsx
index 24a1a42..33a021f 100644
--- a/frontend/src/components/strategyEvaluation/StrategyEvaluationChart.tsx
+++ b/frontend/src/components/strategyEvaluation/StrategyEvaluationChart.tsx
@@ -768,10 +768,14 @@ const StrategyEvaluationChart: React.FC = ({
))}
- {selectedBar && (
-
+ {chartFullscreen && selectedBar && (
+
+
)}
{strategy && backtestRunning && (
시그널 계산 중…
diff --git a/frontend/src/styles/strategyEvaluation.css b/frontend/src/styles/strategyEvaluation.css
index 4f2219b..8699983 100644
--- a/frontend/src/styles/strategyEvaluation.css
+++ b/frontend/src/styles/strategyEvaluation.css
@@ -40,6 +40,15 @@
padding: 0 10px;
}
+.seval-top-toolbar__status {
+ display: flex;
+ align-items: center;
+ justify-content: flex-end;
+ gap: 10px;
+ min-width: 0;
+ flex-wrap: wrap;
+}
+
.seval-top-toolbar__right {
flex: 0 0 16px;
width: 16px;
@@ -474,6 +483,7 @@
min-width: 120px;
}
+.seval-selected-bar-time,
.seval-chart-bar-time {
display: inline-flex;
align-items: center;
@@ -485,6 +495,7 @@
border: 1px solid color-mix(in srgb, var(--btd-gold, var(--se-gold)) 35%, var(--se-border));
background: color-mix(in srgb, var(--btd-gold, var(--se-gold)) 8%, transparent);
white-space: nowrap;
+ font-variant-numeric: tabular-nums;
}
.seval-chart-bar-time--loading {