typescript
export function computeEmaSeries(values: number[], period: number): number[] {
if (values.length < period) return [];
const k = 2 / (period + 1);
const start = values.slice(0, period);
let ema = start.reduce((sum, value) => sum + value, 0) / period;
const series = [ema];
for (let i = period; i < values.length; i += 1) {
ema = values[i] * k + ema * (1 - k);
series.push(ema);
}
return series;
}
export function computeEma(values: number[], period: number): number | null {
const series = computeEmaSeries(values, period);
return series.length > 0 ? series[series.length - 1] : null;
}