{"version":3,"sources":["jsdelivr-header.js","/npm/ta-lib@0.11.0/index.js"],"names":[],"mappings":"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","file":"/npm/ta-lib@0.11.0/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/ta-lib@0.11.0/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","function arrayMax(array) {\n    return Math.max.apply(Math, array.filter(function (n) {\n        return !isNaN(n);\n    }));\n}\nexports.arrayMax = arrayMax;\nfunction arrayMin(array) {\n    return Math.min.apply(Math, array.filter(function (n) {\n        return !isNaN(n);\n    }));\n}\nexports.arrayMin = arrayMin;\nfunction upscale(number, places) {\n    return Math.round(number * Math.pow(10, places));\n}\nexports.upscale = upscale;\nfunction downscale(number, places) {\n    return number / Math.pow(10, places);\n}\nexports.downscale = downscale;\nfunction diff(x, y) {\n    return ((x - y) / ((x + y) / 2)) * 100;\n}\nexports.diff = diff;\nfunction average(a) {\n    var r = { mean: 0, variance: 0, deviation: 0 }, t = a.length, m, l, s;\n    for (m, s = 0, l = t; l--; s += a[l]) {\n    }\n    for (m = r.mean = s / t, l = t, s = 0; l--; s += Math.pow(a[l] - m, 2)) {\n    }\n    return r.deviation = Math.sqrt(r.variance = s / t), r;\n}\nexports.average = average;\nfunction BBANDS(array, period, deviation) {\n    var bbands = {\n        middleband: [],\n        lowband: [],\n        highband: []\n    }, sma = SMA(array, period), avg, i, arr;\n    if (isNaN(deviation))\n        deviation = 2;\n    for (i = period - 1; i >= 0; i--) {\n        arr = array.slice(i, i + period);\n        avg = average(arr);\n        bbands.highband[i] = sma[i] + (deviation * avg.deviation);\n        bbands.lowband[i] = sma[i] - (deviation * avg.deviation);\n        bbands.middleband[i] = sma[i];\n    }\n    return bbands;\n}\nexports.BBANDS = BBANDS;\nfunction AROON(higharray, lowarray, period) {\n    var harr = higharray.slice(0, period), larr = lowarray.slice(0, period), hh = arrayMin(harr), hday = harr.indexOf(hh), ll = arrayMin(larr), lday = larr.indexOf(ll);\n    return {\n        up: ((period - hday) / period) * 100,\n        down: ((period - lday) / period) * 100\n    };\n}\nexports.AROON = AROON;\nfunction MFI(higharray, lowarray, closearray, volumearray, period) {\n    var harr = higharray.slice(0, period).reverse(), larr = lowarray.slice(0, period).reverse(), clarr = closearray.slice(0, period).reverse(), vlarr = volumearray.slice(0, period).reverse(), lasttp = 0, first = true, posmf = 0, negmf = 0, i, tp;\n    for (i = 0; i < closearray.length; i++) {\n        if (first) {\n            lasttp = (harr[i] + larr[i] + clarr[i]) / 3;\n            first = false;\n        }\n        else {\n            tp = (harr[i] + larr[i] + clarr[i]) / 3;\n            if (tp > lasttp) {\n                posmf += (tp * vlarr[0]);\n            }\n            else if (tp < lasttp) {\n                negmf += (tp * vlarr[0]);\n            }\n            lasttp = tp;\n        }\n    }\n    return (100 - (100 / (1 + (posmf / negmf))));\n}\nexports.MFI = MFI;\nfunction RSI(array, rsiperiod) {\n    var rsi = [], i, j, loss, gain, diff, avggain, avgloss, first = true;\n    for (i = rsiperiod - 1; i >= 0; i--) {\n        loss = gain = 0;\n        if (first) {\n            for (j = i + rsiperiod - 1; j >= i; j--) {\n                diff = array[j + 1] - array[j];\n                if (diff > 0) {\n                    loss += Math.abs(diff);\n                }\n                else {\n                    gain += Math.abs(diff);\n                }\n            }\n            first = false;\n            avggain = gain / rsiperiod;\n            avgloss = loss / rsiperiod;\n        }\n        else {\n            diff = array[i + 1] - array[i];\n            if (diff > 0) {\n                loss += Math.abs(diff);\n            }\n            else {\n                gain += Math.abs(diff);\n            }\n            avggain = ((avggain * (rsiperiod - 1)) + gain) / rsiperiod;\n            avgloss = ((avgloss * (rsiperiod - 1)) + loss) / rsiperiod;\n        }\n        //console.log(\"g\", avggain, \"l\", avgloss);\n        if (avgloss == 0) {\n            rsi[i] = 100;\n        }\n        else {\n            rsi[i] = 100 - (100 / (1 + (avggain / avgloss)));\n        }\n    }\n    return rsi;\n}\nexports.RSI = RSI;\nfunction STOCHRSI(instruments, rsiperiod) {\n    var stochrsi = [], rsiarray, rsimin, rsimax, i, arr;\n    for (i = rsiperiod - 1; i >= 0; i--) {\n        arr = instruments.slice(i);\n        rsiarray = RSI(arr, rsiperiod);\n        rsimin = arrayMin(rsiarray);\n        rsimax = arrayMax(rsiarray);\n        if (rsimax - rsimin == 0) {\n            stochrsi[i] = 100;\n        }\n        else {\n            stochrsi[i] = 100 * (rsiarray[0] - rsimin) / (rsimax - rsimin);\n        }\n    }\n    return stochrsi;\n}\nexports.STOCHRSI = STOCHRSI;\nfunction SMA(originalArray, smaLength) {\n    var array, sma = [], i;\n    for (i = smaLength - 1; i >= 0; i--) {\n        array = originalArray.slice(i, i + smaLength);\n        sma[i] = array.reduce(function (a, b) { return a + b; }) / array.length;\n    }\n    return sma;\n}\nexports.SMA = SMA;\nfunction EMA(originalArray, emaLength) {\n    var array = originalArray.slice().reverse(), iPos = 0, i, k, ema;\n    // trim initial NaN values\n    for (iPos = 0; iPos < array.length && isNaN(array[iPos]); iPos++) {\n    }\n    array = array.slice(iPos); // trim initial NaN values from array\n    ema = [];\n    k = 2 / (emaLength + 1);\n    for (i = 0; i < emaLength - 1; i++) {\n        ema[i] = NaN;\n    }\n    ema[emaLength - 1] = array.slice(0, emaLength).reduce(function (a, b) {\n        return a + b;\n    }) / emaLength;\n    for (i = emaLength; i < array.length; i++) {\n        ema[i] = array[i] * k + ema[i - 1] * (1 - k);\n    }\n    ema.reverse(); // reverse back for main consumption\n    for (i = 0; i < iPos; i++) {\n        ema.push(NaN);\n    }\n    return ema;\n}\nexports.EMA = EMA;\nfunction MACD(array, i12, i26, i9) {\n    var ema12 = EMA(array, i12), ema26 = EMA(array, i26), macd = [], i, signal, histogram;\n    for (i = 0; i < ema12.length; i++) {\n        macd.push(ema12[i] - ema26[i]);\n    }\n    signal = EMA(macd, i9);\n    histogram = [];\n    for (i = 0; i < macd.length; i++) {\n        histogram.push(macd[i] - signal[i]);\n    }\n    return {\n        macd: macd,\n        signal: signal,\n        histogram: histogram\n    };\n}\nexports.MACD = MACD;\nfunction PERCPRICEOSC(array, i12, i26, i9) {\n    var ema12 = EMA(array, 12), ema26 = EMA(array, 26), ppo = [], i, signal, histogram;\n    for (i = 0; i < ema12.length; i++) {\n        ppo.push((ema12[i] - ema26[i]) / ema26[i] * 100);\n    }\n    signal = EMA(ppo, 9);\n    histogram = [];\n    for (i = 0; i < ppo.length; i++) {\n        histogram.push(ppo[i] - signal[i]);\n    }\n    return {\n        ppo: ppo,\n        signal: signal,\n        histogram: histogram\n    };\n}\nexports.PERCPRICEOSC = PERCPRICEOSC;\nfunction WILLR(highs, lows, closes, lookback) {\n    var willr = [], highest_high, lowest_low, curr_close, i;\n    // computing only if highs and lows arrays are of equal length\n    if (highs.length == lows.length && highs.length >= lookback) {\n        /*\n         * Willams %R exists only for the values which have atleast \"lookback\" values\n         * so we iterate till ((length )-lookback)to calculate Willams %R\n         */\n        var limit = highs.length - lookback;\n        for (i = limit; i >= 0; i--) {\n            highest_high = arrayMax(highs.slice(i, i + lookback));\n            lowest_low = arrayMin(lows.slice(i, i + lookback));\n            curr_close = closes[i];\n            willr[i] = (highest_high - curr_close) / (highest_high - lowest_low) * -100;\n        }\n    }\n    return willr;\n}\nexports.WILLR = WILLR;\nfunction TRUERANGE(highs, lows, closes) {\n    var tr = [], curr_diff, curr_high_diff, curr_low_diff, i;\n    if (highs.length != lows.length || highs.length != closes.length) {\n        //True ranges are found only when all arrays are of equal length\n        return tr;\n    }\n    tr[0] = highs[0] - lows[0];\n    for (i = highs.length - 1; i > 0; i--) {\n        var tmp = [];\n        tmp.push(highs[i] - lows[i]);\n        tmp.push(Math.abs(lows[i] - closes[i + 1]));\n        tmp.push(Math.abs(highs[i] - closes[i + 1]));\n        tr[i] = arrayMax(tmp);\n    }\n    return tr;\n}\nexports.TRUERANGE = TRUERANGE;\n"]}