전략시간봉 오류 재수정

This commit is contained in:
Macbook
2026-05-28 02:09:38 +09:00
parent 5f9b20d907
commit 9137864f48
8 changed files with 215 additions and 90 deletions
@@ -13,7 +13,10 @@ import {
saveLiveStrategySettings,
type LiveStrategySettingsDto,
} from '../utils/backendApi';
import { warnStrategyTimeframeMismatch } from '../utils/strategyTimeframeSync';
import {
syncStrategyTimeframesFromLayoutIfNeeded,
warnStrategyTimeframeMismatch,
} from '../utils/strategyTimeframeSync';
import { getKoreanName } from '../utils/marketNameCache';
interface Strategy {
@@ -73,6 +76,8 @@ const LiveStrategyPanel: React.FC<LiveStrategyPanelProps> = ({
const next: LiveStrategySettingsDto = { ...settings, ...patch, market };
const prev = settings;
if (next.isLiveCheck && next.strategyId != null) {
const synced = await syncStrategyTimeframesFromLayoutIfNeeded(next.strategyId);
if (!synced) return;
const ok = await warnStrategyTimeframeMismatch(next.strategyId);
if (!ok) return;
try {
+5
View File
@@ -8,6 +8,7 @@ import {
saveLiveStrategySettings,
type LiveStrategySettingsDto,
} from '../utils/backendApi';
import { syncStrategyTimeframesFromLayoutIfNeeded } from '../utils/strategyTimeframeSync';
import { BacktestSettingsPanel } from './BacktestSettingsPanel';
import IndicatorMainDefaultsPanel, {
type IndicatorSaveUiState,
@@ -930,6 +931,10 @@ const StrategyPanel: React.FC<StrategyPanelProps> = ({
const persistLive = useCallback(async (patch: Partial<LiveStrategySettingsDto>) => {
if (virtualDriven) return;
const next: LiveStrategySettingsDto = { ...liveSettings, ...patch, market: liveMarket };
if (next.isLiveCheck && next.strategyId != null) {
const synced = await syncStrategyTimeframesFromLayoutIfNeeded(next.strategyId);
if (!synced) return;
}
setLiveSaving(true);
try {
const saved = await saveLiveStrategySettings(next);
@@ -52,7 +52,10 @@ import {
syncVirtualTargetsToBackend,
stopVirtualLiveOnBackend,
} from '../utils/virtualLiveStrategySync';
import { warnStrategyTimeframeMismatch } from '../utils/strategyTimeframeSync';
import {
syncStrategyTimeframesFromLayoutIfNeeded,
warnStrategyTimeframeMismatch,
} from '../utils/strategyTimeframeSync';
import { pinStrategyEvaluationTimeframes } from '../utils/strategyTimeframePin';
import { persistVirtualTargetPinned } from '../utils/virtualTargetMutations';
import {
@@ -284,6 +287,11 @@ const VirtualTradingPage: React.FC<Props> = ({
return;
}
const globalStrat = strategies.find(s => s.id === session.globalStrategyId);
const synced = await syncStrategyTimeframesFromLayoutIfNeeded(
session.globalStrategyId,
globalStrat,
);
if (!synced) return;
const ok = await warnStrategyTimeframeMismatch(session.globalStrategyId, globalStrat);
if (!ok) return;
try {