1Branch0Tags
GL
glucryptoFix exact Hyperliquid symbols
typescript
import type { Bar } from "../types"; export type DonchianResult = { upper: number; lower: number; }; export function computeDonchian( bars: Bar[], period = 20, ): DonchianResult | null { if (bars.length < period + 1) return null; const lookback = bars.slice(-(period + 1), -1); if (lookback.length < period) return null; let upper = Number.NEGATIVE_INFINITY; let lower = Number.POSITIVE_INFINITY; for (const bar of lookback) { if (bar.high > upper) upper = bar.high; if (bar.low < lower) lower = bar.low; } if (!Number.isFinite(upper) || !Number.isFinite(lower)) return null; return { upper, lower }; }