OpenPond
1Branch0Tags
GL
glucryptochore: bump opentool to v0.8.28 and add template p...
b9421303 days ago2Commits
typescript
import { computeEmaSeries } from "./computeEma"; export type MacdResult = { macd: number; signalLine: number; histogram: number; }; export function computeMacd(values: number[]): MacdResult | null { const emaFast = computeEmaSeries(values, 12); const emaSlow = computeEmaSeries(values, 26); if (emaFast.length === 0 || emaSlow.length === 0) return null; const offset = emaFast.length - emaSlow.length; const macdSeries = emaSlow.map((value, idx) => emaFast[idx + offset] - value); const signalSeries = computeEmaSeries(macdSeries, 9); if (signalSeries.length === 0) return null; const macd = macdSeries[macdSeries.length - 1]; const signalLine = signalSeries[signalSeries.length - 1]; return { macd, signalLine, histogram: macd - signalLine, }; }