UNPKG

pricehistory

Version:

Transforms raw OHLCV series data into enriched candles with technical indicators, pattern recognition, and trend analysis.

40 lines 1.44 kB
import * as utilN from "@nameer/utils"; function setCandleMacd(opt, candle, ctx) { var _a; if (opt.macd === false) return; const fast = candle[`ema${opt.macd[0]}`]; const slow = candle[`ema${opt.macd[1]}`]; if (fast === undefined || slow === undefined) return; const macdLine = fast - slow; candle.macd = utilN.math.num(macdLine); const signal = opt.macd[2]; const winKey = `macd${signal}`; (_a = ctx.window)[winKey] ?? (_a[winKey] = []); ctx.window[winKey].push(macdLine); if (ctx.window[winKey].length > signal) ctx.window[winKey].shift(); if (ctx.window[winKey].length < signal) return; if (ctx.macd.initialized !== true) { const sma = utilN.math.mean(ctx.window[winKey]); if (sma === undefined) return; ctx.macd.prev = sma; ctx.macd.initialized = true; candle.macdSignal = utilN.math.num(sma); candle.macdHist = utilN.math.num(macdLine - sma); delete ctx.window[winKey]; return; } if (ctx.macd.prev === undefined) return; const multiplier = 2 / (signal + 1); const emaSignal = (macdLine - ctx.macd.prev) * multiplier + ctx.macd.prev; ctx.macd.prev = emaSignal; candle.macdSignal = utilN.math.num(emaSignal); candle.macdHist = utilN.math.num(macdLine - emaSignal); } export default setCandleMacd; //# sourceMappingURL=candle.setMacd.js.map