UNPKG

pricehistory

Version:
82 lines (81 loc) 3.31 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const option_propsPrice_1 = __importDefault(require("./option.propsPrice")); const option_propsVolume_1 = __importDefault(require("./option.propsVolume")); function setCandleCrossover(option, candle, series) { if (option.crossover !== true) return; const prev = series[series.length - 2]; if (!prev) return; for (const propA of option_propsPrice_1.default) { for (const propB of option_propsPrice_1.default) { if (propA === propB) continue; if (propA.startsWith("price") && propB.startsWith("price")) continue; const propAPrev = prev[propA]; const propACurr = candle[propA]; const propBPrev = prev[propB]; const propBCurr = candle[propB]; if (typeof propACurr !== "number" || typeof propBCurr !== "number") { continue; } if (typeof propAPrev === "number" && typeof propBPrev === "number") { if (propAPrev <= propBPrev && propACurr > propBCurr) { candle[`${propA}_to_${propB}`] = "crossover"; continue; } else if (propAPrev >= propBPrev && propACurr < propBCurr) { candle[`${propA}_to_${propB}`] = "crossunder"; continue; } } if (propACurr === propBCurr) { candle[`${propA}_to_${propB}`] = "equal"; } else if (propACurr > propBCurr) { candle[`${propA}_to_${propB}`] = "over"; } else if (propACurr < propBCurr) { candle[`${propA}_to_${propB}`] = "under"; } } } for (const propA of option_propsVolume_1.default) { for (const propB of option_propsVolume_1.default) { if (propA === propB) continue; const propAPrev = prev[propA]; const propACurr = candle[propA]; const propBPrev = prev[propB]; const propBCurr = candle[propB]; if (typeof propACurr !== "number" || typeof propBCurr !== "number") { continue; } if (typeof propAPrev === "number" && typeof propBPrev === "number") { if (propAPrev <= propBPrev && propACurr > propBCurr) { candle[`${propA}_to_${propB}`] = "crossover"; continue; } else if (propAPrev >= propBPrev && propACurr < propBCurr) { candle[`${propA}_to_${propB}`] = "crossunder"; continue; } } if (propACurr === propBCurr) { candle[`${propA}_to_${propB}`] = "equal"; } else if (propACurr > propBCurr) { candle[`${propA}_to_${propB}`] = "over"; } else if (propACurr < propBCurr) { candle[`${propA}_to_${propB}`] = "under"; } } } } exports.default = setCandleCrossover;