/** * 심리도 / 신심리도 / 투자심리도 (업비트) * - 심리도: N일 중 종가 상승일 비율 × 100 (0~100) * - 신심리도: N일 상승·하락 일수와 등락폭 반영, 0 중심 (미래에셋 공식) * - 투자심리도: N일 중 종가 상승일 비율 × 100 (업비트·한국경제, 기본 10일) */ export const PSYCHOLOGICAL_DEFAULT_LENGTH = 12; export const NEW_PSYCHOLOGICAL_DEFAULT_LENGTH = 10; export const INVEST_PSYCHOLOGICAL_DEFAULT_LENGTH = 10; /** 레거시 type 정규화 — NewPsychological 은 별도 지표로 유지 */ export function resolvePsychologicalIndicatorType(type: string): string { return type; } export function normalizePsychologicalParams( type: string, params: Record, ): Record { const defaultLen = type === 'InvestPsychological' ? INVEST_PSYCHOLOGICAL_DEFAULT_LENGTH : type === 'NewPsychological' ? NEW_PSYCHOLOGICAL_DEFAULT_LENGTH : PSYCHOLOGICAL_DEFAULT_LENGTH; const length = Math.max(1, Number(params.length ?? defaultLen) || defaultLen); return { ...params, length }; }