가상매매 기본전략 설정

This commit is contained in:
Macbook
2026-06-07 19:21:54 +09:00
parent 2f3133d413
commit 76d4de56bd
5 changed files with 102 additions and 32 deletions
+10 -5
View File
@@ -1,11 +1,14 @@
import { saveLiveStrategySettings } from './backendApi';
import { loadStrategies, saveLiveStrategySettings } from './backendApi';
import { getVirtualTargetMaxCount } from '../hooks/useAppSettings';
import {
isVirtualTargetAddAllowed,
virtualTargetLimitMessage,
} from '../utils/virtualTargetLimits';
import { syncVirtualTargetsToBackend } from './virtualLiveStrategySync';
import { resolveVirtualTargetStrategyId } from './virtualTargetStrategy';
import {
ensureDefaultGlobalStrategyId,
resolveVirtualTargetStrategyId,
} from './virtualTargetStrategy';
import {
loadVirtualSession,
loadVirtualTargets,
@@ -41,11 +44,13 @@ export async function addVirtualTarget(
}
const session = loadVirtualSession();
const strategies = await loadStrategies().catch(() => []);
const strategyId = ensureDefaultGlobalStrategyId(session.globalStrategyId, strategies);
const en = meta.englishName ?? market.replace(/^KRW-/, '');
const item: VirtualTargetItem = {
market,
/** 신규 추가 시점의 상단 기본전략(템플릿)을 종목에 고정 */
strategyId: session.globalStrategyId,
strategyId,
koreanName: meta.koreanName,
englishName: en,
};
@@ -55,7 +60,7 @@ export async function addVirtualTarget(
await saveLiveStrategySettings({
market,
strategyId: session.globalStrategyId,
strategyId,
isLiveCheck: session.running,
isPinned: false,
executionType: session.executionType,
@@ -64,7 +69,7 @@ export async function addVirtualTarget(
skipGlobalTemplate: true,
});
if (session.running && session.globalStrategyId) {
if (session.running && strategyId) {
await syncVirtualTargetsToBackend(next, session, true);
}