벡테스팅 수정
This commit is contained in:
@@ -37,7 +37,7 @@ import {
|
||||
import { pinStrategyEvaluationTimeframes } from '../utils/strategyTimeframePin';
|
||||
import { persistVirtualTargetPinned } from '../utils/virtualTargetMutations';
|
||||
import {
|
||||
coalesceTargetsToDefaultStrategy,
|
||||
freezeTargetsBeforeGlobalStrategyChange,
|
||||
resolveVirtualTargetStrategyId,
|
||||
} from '../utils/virtualTargetStrategy';
|
||||
import {
|
||||
@@ -186,11 +186,6 @@ export function useVirtualTradingCore(options: UseVirtualTradingCoreOptions = {}
|
||||
}, [session]);
|
||||
useEffect(() => { saveVirtualCardViewMode(viewMode); }, [viewMode]);
|
||||
|
||||
useEffect(() => {
|
||||
if (session.globalStrategyId == null) return;
|
||||
setTargets(prev => coalesceTargetsToDefaultStrategy(prev, session.globalStrategyId));
|
||||
}, [session.globalStrategyId]);
|
||||
|
||||
const strategyNames = useMemo(
|
||||
() => Object.fromEntries(strategies.map(s => [s.id, s.name])),
|
||||
[strategies],
|
||||
@@ -258,13 +253,13 @@ export function useVirtualTradingCore(options: UseVirtualTradingCoreOptions = {}
|
||||
const names = resolveVirtualTargetNames(market, meta?.koreanName, meta?.englishName);
|
||||
setTargets(prev => [...prev, {
|
||||
market,
|
||||
strategyId: null,
|
||||
strategyId: session.globalStrategyId,
|
||||
koreanName: names.koreanName,
|
||||
englishName: names.englishName,
|
||||
}]);
|
||||
setSelectedMarket(market);
|
||||
return true;
|
||||
}, [targets, virtualTargetMaxCount]);
|
||||
}, [targets, session.globalStrategyId, virtualTargetMaxCount]);
|
||||
|
||||
const handleRemoveTarget = useCallback((market: string) => {
|
||||
setTargets(prev => prev.filter(x => x.market !== market));
|
||||
@@ -282,13 +277,11 @@ export function useVirtualTradingCore(options: UseVirtualTradingCoreOptions = {}
|
||||
});
|
||||
}, []);
|
||||
|
||||
/** 상단 기본전략 — 신규 추가 종목 템플릿만 변경, 기존 종목 전략은 유지 */
|
||||
const handleGlobalStrategyChange = useCallback((strategyId: number | null) => {
|
||||
const next = { ...session, globalStrategyId: strategyId };
|
||||
setSession(next);
|
||||
if (session.running && strategyId) {
|
||||
void syncVirtualTargetsToBackend(targets, next, true);
|
||||
}
|
||||
}, [session, targets]);
|
||||
setTargets(prev => freezeTargetsBeforeGlobalStrategyChange(prev, session.globalStrategyId));
|
||||
setSession(prev => ({ ...prev, globalStrategyId: strategyId }));
|
||||
}, [session.globalStrategyId]);
|
||||
|
||||
const handleStart = useCallback(async () => {
|
||||
if (targets.length === 0) {
|
||||
|
||||
Reference in New Issue
Block a user