UNPKG

pricehistory

Version:
61 lines (60 loc) 2.51 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const simpul_1 = require("simpul"); const signals = ["signalA", "signalB", "signalC", "signalD"]; function signalizeCandles(option, candles) { if (option.signalize !== true) return; for (let i = 0; i < candles.length; i++) { const candle = candles[i]; candle.signalA = simpul_1.math.num(candle.sma10SignalPriceHigh * (candle.sma10ColorsGreen / 10)); candle.signalB = simpul_1.math.num(-candle.sma10SignalPriceLow * (candle.sma10ColorsRed / 10)); candle.signalC = typeof candle.priceRangeDiff === "number" && typeof candle.candlestickUpper === "number" ? simpul_1.math.num(candle.priceRangeDiff * (candle.candlestickUpper / 100) * candle.sma10SignalPriceHigh * candle.sma10ColorsGreen) : undefined; candle.signalD = typeof candle.priceRangeDiff === "number" && typeof candle.candlestickLower === "number" ? simpul_1.math.num(candle.priceRangeDiff * (candle.candlestickLower / 100) * -candle.sma10SignalPriceLow * candle.sma10ColorsRed) : undefined; for (const signal of signals) { if (typeof candle[signal] !== "number") candle[signal] = 0; } if (candle.signalA > candle.signalB) { candle.signalB = 0; } else if (candle.signalB > candle.signalA) { candle.signalA = 0; } if (option.normalize) { for (const key of option.normalize) { if (signals.includes(key)) candle[`${key}N`] = candle[key]; } } const prev = candles[i - 1]; for (const signal of signals) { candle[`${signal}Change`] = simpul_1.math.change.percent(prev === null || prev === void 0 ? void 0 : prev[signal], candle[signal]) || 0; if (option.trend === true) { candle[`${signal}Trend`] = simpul_1.math.change.symbol(prev === null || prev === void 0 ? void 0 : prev[signal], candle[signal]) || []; } } } if (option.normalize) { for (const key of option.normalize) { (0, simpul_1.scale)(candles, `${key}N`); } } } exports.default = signalizeCandles;