커스텀 수정

This commit is contained in:
Macbook
2026-06-03 02:43:13 +09:00
parent 8cba6a612a
commit 656248a72f
6 changed files with 124 additions and 30 deletions
@@ -14,7 +14,13 @@ import {
} from '../utils/backendApi';
import type { Theme } from '../types';
import { buildEquityFromSignals } from '../utils/backtestEquity';
import { normalizeEpochSec, normalizeEpochSecOptional } from '../utils/backtestUiUtils';
import {
formatChartTypeKo,
formatTimeframeKo,
normalizeEpochSec,
normalizeEpochSecOptional,
toUpbitMarket,
} from '../utils/backtestUiUtils';
import BacktestExecutionList, { type ExecutionListTab } from './backtest/BacktestExecutionList';
import BacktestAnalysisChart from './backtest/BacktestAnalysisChart';
import BacktestKpiPanel from './backtest/BacktestKpiPanel';
@@ -29,10 +35,6 @@ import {
import '../styles/strategyEditorTheme.css';
import { getKoreanName } from '../utils/marketNameCache';
function toUpbitMarket(symbol: string): string {
return symbol.startsWith('KRW-') ? symbol : `KRW-${symbol}`;
}
const LEFT_KEY = 'btd-left-width';
const RIGHT_KEY = 'btd-right-width';
const LEFT_DEFAULT = 380;
@@ -199,7 +201,10 @@ export function BacktestHistoryPage({ theme = 'dark' }: Props) {
return {
ko: getKoreanName(market),
strategy: selectedBacktest.strategyName || '전략 없음',
meta: selectedBacktest.timeframe,
metaParts: [
formatTimeframeKo(selectedBacktest.timeframe),
formatChartTypeKo('candlestick'),
],
};
}
if (tab === 'live' && selectedLive) {
@@ -207,11 +212,15 @@ export function BacktestHistoryPage({ theme = 'dark' }: Props) {
return {
ko: getKoreanName(market),
strategy: selectedLive.strategyLabel,
meta: selectedLive.sourceLabel,
metaParts: [
formatTimeframeKo(chartProps?.timeframe ?? '1h'),
formatChartTypeKo('candlestick'),
selectedLive.sourceLabel,
],
};
}
return null;
}, [tab, selectedBacktest, selectedLive]);
}, [tab, selectedBacktest, selectedLive, chartProps]);
const footerTrades = equityData.trades;
@@ -276,7 +285,12 @@ export function BacktestHistoryPage({ theme = 'dark' }: Props) {
<h2 className="btd-main-ko">{centerHead.ko}</h2>
<p className="btd-main-strategy">
{centerHead.strategy}
{centerHead.meta ? <span className="btd-main-meta"> · {centerHead.meta}</span> : null}
{centerHead.metaParts.length > 0 && (
<span className="btd-main-meta">
{' · '}
{centerHead.metaParts.filter(Boolean).join(' · ')}
</span>
)}
</p>
</div>
)}