백테스트 전략이름, 이동평균선 그래프 오류 수정

This commit is contained in:
Macbook
2026-06-08 12:19:20 +09:00
parent 9fde6868e2
commit 7f29bbd309
7 changed files with 122 additions and 44 deletions
@@ -0,0 +1,38 @@
/**
* 전략 ID → 이름 해석 (목록에 없거나 삭제된 전략 포함)
*/
import { loadStrategyForNotification, type StrategyDto } from './backendApi';
/** 전략 목록 + 누락 ID별 단건 조회로 이름 맵 보강 */
export async function enrichStrategyNameMap(
base: Record<number, string>,
ids: Iterable<number | null | undefined>,
): Promise<Record<number, string>> {
const out = { ...base };
const missing = [...new Set(
[...ids]
.map(id => (id != null && id > 0 ? Math.trunc(id) : null))
.filter((id): id is number => id != null && !out[id]),
)];
if (!missing.length) return out;
await Promise.all(missing.map(async id => {
try {
const s = await loadStrategyForNotification(id);
if (s?.name?.trim()) out[id] = s.name.trim();
} catch {
/* ignore */
}
}));
return out;
}
export function strategyNamesFromList(list: StrategyDto[]): Record<number, string> {
const out: Record<number, string> = {};
for (const s of list) {
if (s.id != null && s.id > 0 && s.name?.trim()) {
out[s.id] = s.name.trim();
}
}
return out;
}