보조지표 설정 저장 오류

This commit is contained in:
Macbook
2026-06-16 01:08:58 +09:00
parent e93164deda
commit d34a824174
9 changed files with 80 additions and 57 deletions
+1
View File
@@ -650,6 +650,7 @@ const ChartSlot = forwardRef<ChartSlotHandle, ChartSlotProps>(function ChartSlot
updated.hlines,
updated.cloudColors,
updated.bandBackground,
updated.plotVisibility,
);
}, [saveParams, saveVisual]);
@@ -23,6 +23,7 @@ import type { EvalIndicatorParams } from '../../utils/strategyEvaluationParams';
import { DISPLAY_COUNT } from '../../hooks/useUpbitData';
import { buildVirtualTradingChartIndicators } from '../../utils/strategyToChartIndicators';
import { buildEvalParamsFromStrategy } from '../../utils/strategyEvaluationParams';
import { indicatorDefaultsFingerprint } from '../../utils/indicatorDefaultsFingerprint';
import { repairUtf8Mojibake } from '../../utils/textEncoding';
import StrategyEvaluationBarSelector, {
resolveBarIndexAtChartClick,
@@ -102,7 +103,7 @@ const StrategyEvaluationChart: React.FC<Props> = ({
evalLoading = false,
onSignalsChange,
}) => {
const { getParams: baseGetParams, getVisualConfig: baseGetVisual } = useIndicatorSettings();
const { getParams: baseGetParams, getVisualConfig: baseGetVisual, settingsRevision } = useIndicatorSettings();
const getParams = getParamsOverride ?? baseGetParams;
const getVisualConfig = getVisualConfigOverride ?? baseGetVisual;
const { defaults: appDefaults } = useAppSettings();
@@ -126,7 +127,7 @@ const StrategyEvaluationChart: React.FC<Props> = ({
const indicators = useMemo(() => {
if (!strategy) return [] as IndicatorConfig[];
return buildVirtualTradingChartIndicators(strategy, getParams, getVisualConfig);
}, [strategy, getParams, getVisualConfig]);
}, [strategy, getParams, getVisualConfig, settingsRevision]);
const auxPaneCount = useMemo(
() => countNonOverlayIndicatorPanes(indicators, isOverlayType),
@@ -145,6 +146,11 @@ const StrategyEvaluationChart: React.FC<Props> = ({
[strategy, getParams],
);
const indicatorRenderKey = useMemo(
() => indicators.map(i => indicatorDefaultsFingerprint(i)).join('|'),
[indicators],
);
const resolveInitialDisplayCount = useCallback(
(plotWidth: number) => {
const approx = Math.floor(plotWidth / 6);
@@ -473,7 +479,7 @@ const StrategyEvaluationChart: React.FC<Props> = ({
{!loading && !error && bars.length > 0 && (
<>
<TradingChart
key={`${market}-${timeframe}-${strategy?.id ?? 0}-${paramsRevision}-${indicators.map(i => i.id).join(',')}`}
key={`${market}-${timeframe}-${strategy?.id ?? 0}-${paramsRevision}-${settingsRevision}-${indicatorRenderKey}`}
bars={bars}
barsMarket={market}
market={market}