OpenPond
1Branch0Tags
GL
glucryptochore: bump opentool to v0.8.28 and add template p...
b9421303 days ago2Commits
typescript
export function computeRsi(values: number[], period = 14): number | null { if (values.length < period + 1) return null; let gains = 0; let losses = 0; for (let i = 1; i <= period; i += 1) { const delta = values[i] - values[i - 1]; if (delta >= 0) { gains += delta; } else { losses -= delta; } } let avgGain = gains / period; let avgLoss = losses / period; for (let i = period + 1; i < values.length; i += 1) { const delta = values[i] - values[i - 1]; const gain = delta > 0 ? delta : 0; const loss = delta < 0 ? -delta : 0; avgGain = (avgGain * (period - 1) + gain) / period; avgLoss = (avgLoss * (period - 1) + loss) / period; } if (avgLoss === 0) return 100; const rs = avgGain / avgLoss; return 100 - 100 / (1 + rs); }