가상매매 시간봉 제거
This commit is contained in:
@@ -32,7 +32,7 @@ export async function autoAddTrendSearchTargets(
|
||||
const { koreanName, englishName } = resolveVirtualTargetNames(row.market, row.koreanName);
|
||||
targets = await addVirtualTarget(
|
||||
row.market,
|
||||
{ koreanName, englishName, candleType: timeframe },
|
||||
{ koreanName, englishName },
|
||||
{ showLimitAlert: false },
|
||||
);
|
||||
}
|
||||
|
||||
@@ -4,7 +4,6 @@ import {
|
||||
isVirtualTargetAddAllowed,
|
||||
virtualTargetLimitMessage,
|
||||
} from '../utils/virtualTargetLimits';
|
||||
import { normalizeStartCandleType } from './strategyStartNodes';
|
||||
import { syncVirtualTargetsToBackend } from './virtualLiveStrategySync';
|
||||
import { resolveVirtualTargetStrategyId } from './virtualTargetStrategy';
|
||||
import {
|
||||
@@ -18,8 +17,6 @@ import {
|
||||
export interface VirtualTargetMeta {
|
||||
koreanName?: string;
|
||||
englishName?: string;
|
||||
/** 추세검색 캔들 주기 → 투자대상 평가 분봉 기본값 */
|
||||
candleType?: string;
|
||||
}
|
||||
|
||||
export interface AddVirtualTargetOptions {
|
||||
@@ -51,7 +48,6 @@ export async function addVirtualTarget(
|
||||
strategyId: null,
|
||||
koreanName: meta.koreanName,
|
||||
englishName: en,
|
||||
candleType: meta.candleType ? normalizeStartCandleType(meta.candleType) : undefined,
|
||||
};
|
||||
|
||||
const next = [...targets, item];
|
||||
@@ -64,7 +60,6 @@ export async function addVirtualTarget(
|
||||
isPinned: false,
|
||||
executionType: session.executionType,
|
||||
positionMode: session.positionMode,
|
||||
candleType: item.candleType ?? '1m',
|
||||
skipWatchlistSync: true,
|
||||
skipGlobalTemplate: true,
|
||||
});
|
||||
|
||||
@@ -29,7 +29,6 @@ function fromLiveSettings(
|
||||
return {
|
||||
market: s.market,
|
||||
strategyId: s.strategyId ?? globalStrategyId,
|
||||
candleType: s.candleType,
|
||||
koreanName,
|
||||
englishName,
|
||||
pinned: !!s.isPinned,
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import { normalizeStartCandleType } from './strategyStartNodes';
|
||||
import { resolveVirtualTargetNames } from './virtualTargetNames';
|
||||
import { getUiPreferences, patchUiPreferences } from './uiPreferencesDb';
|
||||
|
||||
@@ -7,8 +6,6 @@ import { getUiPreferences, patchUiPreferences } from './uiPreferencesDb';
|
||||
export interface VirtualTargetItem {
|
||||
market: string;
|
||||
strategyId: number | null;
|
||||
/** 종목별 전략 평가 분봉 (gc_live_strategy_settings.candle_type) */
|
||||
candleType?: string;
|
||||
koreanName?: string;
|
||||
englishName?: string;
|
||||
/** 투자대상 고정 — ON 이면 목록·추세검색에서 삭제 불가 (gc_live_strategy_settings.is_pinned) */
|
||||
@@ -35,6 +32,7 @@ function defaultSession(): VirtualSessionConfig {
|
||||
};
|
||||
}
|
||||
|
||||
/** 레거시 ui_preferences.virtual.targets.candleType 제거 */
|
||||
function normalizeTargets(items: VirtualTargetItem[]): VirtualTargetItem[] {
|
||||
return items.map(t => {
|
||||
const { koreanName, englishName } = resolveVirtualTargetNames(
|
||||
@@ -42,7 +40,13 @@ function normalizeTargets(items: VirtualTargetItem[]): VirtualTargetItem[] {
|
||||
t.koreanName,
|
||||
t.englishName,
|
||||
);
|
||||
return { ...t, koreanName, englishName };
|
||||
return {
|
||||
market: t.market,
|
||||
strategyId: t.strategyId ?? null,
|
||||
koreanName,
|
||||
englishName,
|
||||
pinned: t.pinned,
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
@@ -53,7 +57,7 @@ export function loadVirtualTargets(): VirtualTargetItem[] {
|
||||
}
|
||||
|
||||
export function saveVirtualTargets(items: VirtualTargetItem[]): void {
|
||||
patchUiPreferences({ virtual: { targets: items } });
|
||||
patchUiPreferences({ virtual: { targets: normalizeTargets(items) } });
|
||||
notifyVirtualSessionChanged();
|
||||
}
|
||||
|
||||
@@ -87,14 +91,3 @@ export function loadVirtualCardViewMode(): VirtualCardViewMode {
|
||||
export function saveVirtualCardViewMode(mode: VirtualCardViewMode): void {
|
||||
patchUiPreferences({ virtual: { cardViewMode: mode } });
|
||||
}
|
||||
|
||||
/** 카드 시간봉 드롭다운 기본값 — 저장값 → 스냅샷 → 1m */
|
||||
export function resolveTargetCandleType(
|
||||
item: Pick<VirtualTargetItem, 'candleType'>,
|
||||
snapshotTimeframe?: string | null,
|
||||
): string {
|
||||
if (item.candleType) return normalizeStartCandleType(item.candleType);
|
||||
const raw = snapshotTimeframe?.split(',')[0]?.trim();
|
||||
if (raw) return normalizeStartCandleType(raw);
|
||||
return '1m';
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user