UNPKG

trading-utils

Version:

A collection of helpful trading utility functions.

21 lines 12 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const index_1 = require("../index"); describe('EmaIndicator', () => { const testPrices = [94.449997, 94.769997, 95.410004, 94.980003, 94.519997, 93.809998, 94.199997, 94.889999, 94.68, 95.370003, 95.199997, 95.32, 95.599998, 95.839996, 95.599998, 96.400002, 97, 99.349998, 98.849998, 100.139999, 100.099998, 100.099998, 98.68, 98.639999, 100.860001, 100.239998, 101.440002, 103, 103, 103.099998, 103.839996, 103.639999, 102.5, 101.879997, 98.379997, 99.699997, 99.669998, 99.389999, 99.760002, 99.470001, 99.370003, 100.480003, 101.839996, 114.620003, 115.040001, 114.339996, 115, 114.580002, 113.099998, 113.660004, 112.5, 110.059998, 111.099998, 110.080002, 110.239998, 109.900002, 111.919998, 112.959999, 116.080002, 114.599998, 111.900002, 113.760002, 115.68, 113.18, 113.620003, 113.720001, 113.160004, 111.199997, 112, 110.419998, 111.220001, 111.139999, 111.959999, 111.379997, 113.720001, 113.18, 113.32, 114.440002, 113.540001, 114.620003, 118.160004, 116.980003, 118.720001, 118.5, 118.82, 118.459999, 118.5, 118, 120.760002, 122.260002, 123.5, 124.379997, 123.760002, 122.82, 123.199997, 123, 121.900002, 121.919998, 121.059998, 121.419998, 120.980003, 120.059998, 113.32, 112, 111.239998, 112.459999, 113.779999, 112.220001, 114.099998, 113.419998, 110.580002, 111.720001, 113.18, 109.360001, 106.18, 104, 106.199997, 108.660004, 106.080002, 106.339996, 107.620003, 105.480003, 105.739998, 107.300003, 107.980003, 106.860001, 109.860001, 107.480003, 106.379997, 106.720001, 108.540001, 107.120003, 108.379997, 108.599998, 108.360001, 108.300003, 109.220001, 111.480003, 111.300003, 110.199997, 108.739998, 109.139999, 109.339996, 107.879997, 106.480003, 108.260002, 108.5, 109.099998, 109.860001, 108.120003, 108.379997, 106.699997, 107.5, 107.800003, 107.879997, 106.860001, 103.339996, 104.839996, 104.279999, 103.660004, 105.900002, 104.940002, 115.68, 114.760002, 115.480003, 116.639999, 116, 115.82, 118.739998, 119.5, 118.459999, 118.879997, 119.220001, 119.699997, 118.900002, 119.400002, 118.800003, 119.620003, 120.82, 120.360001, 122.080002, 122.699997, 123.260002, 123.540001, 123.339996, 122.120003, 121.559998, 122.599998, 122.059998, 122.660004, 122.260002, 122.360001, 122.800003, 123.360001, 122.400002, 123.040001, 122.519997, 123.480003, 119.440002, 120.160004, 122.080002, 121.239998, 122.199997, 121.940002, 121.739998, 121.400002, 122.120003, 124.160004, 124.720001, 120.559998, 119.580002, 119.559998, 120.940002, 120.760002, 121.400002, 120.32, 122, 120.459999, 119.559998, 120.099998, 120.82, 123.160004, 123.760002, 123.760002, 123.599998, 123, 122.440002, 125.959999, 125.660004, 126.199997, 126.599998, 123.839996, 126.900002, 122.459999, 119.839996, 120, 118.18, 117.82, 120, 122.980003, 124.599998, 124.419998, 124.080002, 123.660004, 125.360001, 126.82, 126.800003, 127.139999, 127.400002, 127.32, 129.440002, 127.800003, 126.160004, 121.239998, 119.279999, 118.760002, 115.540001, 111.559998, 111, 112.940002, 111.5, 110.239998, 107.519997, 98.940002, 100.660004, 100.639999, 90.900002, 92.669998, 89.760002, 92.360001, 89.07, 87.629997, 91.260002, 92.139999, 99.32, 99, 103.959999, 99.870003, 102.18, 102.800003, 98.099998, 97.230003, 97.349998, 101.400002, 103.68, 105, 110, 112, 108.300003, 110.099998, 113.059998, 113.739998, 106.279999, 108.239998, 108.120003, 106.68, 107.800003, 108.839996, 109.800003, 108.940002, 106.879997, 108.440002, 105.300003, 107.339996, 107.739998, 106.639999, 106.860001, 106, 103.900002, 103.739998, 107.360001, 108.080002, 110.199997, 106.779999, 106.379997, 111.599998, 110.980003, 111.839996, 112.599998, 113.5, 115.940002, 119.040001, 119.599998, 121.139999, 120.220001, 120.68, 120.459999, 116.379997, 115.300003, 114.360001, 118.82, 120.239998, 120.400002, 123.480003, 124.019997, 125.5, 120.099998, 120.800003, 122.120003, 122.440002, 124.32, 123.860001, 127.660004, 127.580002, 130.720001, 128.779999, 128.779999, 134.679993, 135.039993, 137.520004, 133.940002, 137.339996, 135.460007, 135.899994, 139.240005, 141.860001, 142.240005, 141.259995, 135.639999, 139.300003, 137.759995, 139.559998, 133.520004, 133.779999, 137.539993, 135.320007, 136, 135.240005, 137.220001, 134.940002, 137.100006, 138.080002, 137.119995, 135.240005, 135.660004, 135.320007, 136.839996, 136.539993, 135.800003, 138.600006, 139.259995, 142.259995, 140.360001, 139.759995, 138.039993, 138.639999, 141.5, 137.320007, 132.860001, 136.820007, 133.440002, 137.520004, 136.020004, 135.5, 135.559998, 135.279999, 135.960007, 135.520004, 135.5, 131, 132.5, 132, 131.960007, 129.960007, 134.660004, 134.160004, 132.759995, 133.740005, 132.759995, 132.399994, 131.460007, 130.380005, 132.339996, 133.059998, 134.380005, 134.080002, 134.320007, 130.559998, 132.839996, 131, 127.540001, 124.919998, 124.5, 124.900002, 97.5, 96.949997, 92.239998, 93.260002, 91.489998, 90.18, 93.949997, 96.75, 98.209999, 97.25, 98.970001, 99.089996, 101.519997, 100.279999, 101.220001, 100.279999, 98.529999, 100, 99.419998, 98.800003, 98.279999, 97.349998, 98.68, 99.540001, 100.139999, 101.980003, 101.220001, 101.300003, 100.900002, 102.779999, 101.720001, 102.080002, 102.080002, 101.18, 99.75, 99.93, 100.68, 102.800003, 105, 104.260002, 101.459999, 103.620003, 103.760002, 105.260002, 106.800003, 107.220001, 105.32, 105.040001, 105.480003, 104.519997, 106.18, 106.040001, 105.739998, 105.360001, 104.199997, 103.519997, 103.239998, 103.900002, 104.860001, 104.919998, 104.699997, 105.519997, 109.980003, 109.639999, 108.300003, 104.800003, 107.040001, 108.260002, 108.760002, 110.279999, 108.480003, 108.959999, 108.879997, 107.279999, 109.5, 108.559998, 108.839996, 108.339996, 104.419998, 106.239998, 104.940002, 103.900002, 102.900002, 103.220001, 102.720001, 102.059998, 103.360001, 103.5, 103.099998, 102.68, 101.779999, 104.660004, 106, 105.82, 105.860001, 103.040001, 102.660004, 103.019997, 103, 102.760002, 103.599998, 103.5, 103.059998, 102.82, 102.459999, 102.879997, 104.300003, 103.559998, 104.419998, 106.779999, 108.900002, 109.360001, 111.099998, 112.300003, 111.239998, 112.160004, 113.400002, 115.68, 116.220001, 116.040001, 115.339996, 116.699997, 120.699997, 119.419998, 118.519997, 118.040001, 118.760002, 118.040001, 116.760002, 116.620003, 112.739998, 115.839996, 116.419998, 117.360001, 115.599998, 113.260002, 112.559998, 112.160004, 114.040001, 112.980003, 113.440002, 112.099998, 115, 114.879997, 115.080002, 116.019997, 113.919998, 115.120003, 113.519997, 113.919998, 114.120003, 113.5, 114.800003, 115.599998, 116, 115.059998, 116.040001, 118.339996, 119.919998, 120.260002, 118.82, 119.360001, 118.199997, 118.059998, 118.080002, 116.580002, 118.660004, 117.68, 118.5, 119.739998, 118.839996, 118.400002, 119.300003, 118.900002, 120.300003, 124.5, 123.18, 124.720001, 125.779999]; describe('calculate', () => { it('should return the correct trading suggestion for the given array of prices', () => { expect(index_1.emaIndicator.calculate(testPrices)).toEqual('LONG'); expect(index_1.emaIndicator.calculate([...testPrices, 50])).toEqual('SHORT'); }); }); describe('calculateEMAIndicators', () => { it('should return the correct ema data points for the given array of prices', () => { // @ts-ignore // eslint-disable-next-line dot-notation const emaDataPoints = index_1.emaIndicator['calculateEMAIndicators'](testPrices); expect(emaDataPoints).toEqual([100.72, 101.18, 101.53, 101.9, 102.22, 102.54, 102.83, 103.18, 103.57, 104.06, 104.47, 104.76, 105.11, 105.53, 105.83, 106.13, 106.43, 106.7, 106.87, 107.07, 107.2, 107.36, 107.51, 107.68, 107.83, 108.06, 108.26, 108.46, 108.69, 108.88, 109.11, 109.46, 109.76, 110.11, 110.44, 110.77, 111.07, 111.36, 111.62, 111.98, 112.38, 112.82, 113.27, 113.68, 114.04, 114.4, 114.74, 115.02, 115.29, 115.52, 115.75, 115.95, 116.11, 116, 115.85, 115.67, 115.54, 115.47, 115.34, 115.3, 115.22, 115.04, 114.91, 114.84, 114.63, 114.3, 113.89, 113.59, 113.4, 113.11, 112.84, 112.64, 112.36, 112.1, 111.91, 111.76, 111.56, 111.5, 111.34, 111.15, 110.97, 110.88, 110.73, 110.64, 110.56, 110.47, 110.39, 110.34, 110.39, 110.42, 110.41, 110.35, 110.3, 110.26, 110.17, 110.02, 109.95, 109.9, 109.87, 109.87, 109.8, 109.74, 109.62, 109.54, 109.47, 109.41, 109.31, 109.07, 108.91, 108.73, 108.53, 108.43, 108.29, 108.58, 108.82, 109.08, 109.38, 109.64, 109.88, 110.23, 110.59, 110.9, 111.21, 111.53, 111.85, 112.12, 112.41, 112.66, 112.93, 113.24, 113.52, 113.86, 114.2, 114.56, 114.91, 115.24, 115.51, 115.75, 116.02, 116.25, 116.51, 116.73, 116.95, 117.18, 117.42, 117.62, 117.83, 118.02, 118.23, 118.28, 118.35, 118.5, 118.6, 118.75, 118.87, 118.98, 119.08, 119.2, 119.39, 119.6, 119.64, 119.64, 119.63, 119.68, 119.73, 119.79, 119.81, 119.9, 119.92, 119.91, 119.91, 119.95, 120.08, 120.22, 120.36, 120.49, 120.58, 120.66, 120.87, 121.05, 121.26, 121.46, 121.56, 121.77, 121.79, 121.72, 121.65, 121.51, 121.37, 121.32, 121.38, 121.51, 121.62, 121.72, 121.79, 121.93, 122.13, 122.31, 122.5, 122.69, 122.87, 123.13, 123.31, 123.42, 123.34, 123.18, 123.01, 122.71, 122.28, 121.83, 121.49, 121.09, 120.67, 120.15, 119.32, 118.59, 117.88, 116.83, 115.88, 114.86, 113.97, 113, 112, 111.19, 110.44, 110.01, 109.57, 109.35, 108.98, 108.71, 108.48, 108.08, 107.65, 107.25, 107.02, 106.89, 106.81, 106.94, 107.14, 107.18, 107.3, 107.52, 107.77, 107.71, 107.73, 107.74, 107.7, 107.71, 107.75, 107.83, 107.87, 107.84, 107.86, 107.76, 107.74, 107.74, 107.7, 107.67, 107.6, 107.46, 107.31, 107.31, 107.34, 107.45, 107.43, 107.39, 107.55, 107.69, 107.85, 108.04, 108.25, 108.55, 108.96, 109.38, 109.84, 110.25, 110.66, 111.04, 111.25, 111.41, 111.53, 111.81, 112.14, 112.47, 112.9, 113.33, 113.81, 114.06, 114.32, 114.63, 114.93, 115.3, 115.64, 116.11, 116.56, 117.11, 117.57, 118.01, 118.67, 119.31, 120.02, 120.57, 121.23, 121.78, 122.34, 123, 123.74, 124.46, 125.12, 125.54, 126.08, 126.53, 127.04, 127.3, 127.55, 127.94, 128.23, 128.54, 128.8, 129.13, 129.36, 129.66, 129.99, 130.27, 130.47, 130.67, 130.85, 131.09, 131.3, 131.48, 131.76, 132.05, 132.45, 132.76, 133.04, 133.23, 133.44, 133.76, 133.9, 133.86, 133.98, 133.95, 134.09, 134.17, 134.22, 134.27, 134.31, 134.38, 134.42, 134.47, 134.33, 134.26, 134.17, 134.08, 133.92, 133.95, 133.96, 133.91, 133.9, 133.86, 133.8, 133.71, 133.58, 133.53, 133.51, 133.55, 133.57, 133.6, 133.48, 133.45, 133.36, 133.13, 132.81, 132.48, 132.18, 130.82, 129.5, 128.03, 126.67, 125.29, 123.91, 122.74, 121.72, 120.8, 119.87, 119.05, 118.27, 117.61, 116.93, 116.32, 115.69, 115.02, 114.43, 113.84, 113.25, 112.66, 112.06, 111.54, 111.07, 110.64, 110.3, 109.94, 109.6, 109.26, 109.01, 108.72, 108.46, 108.21, 107.94, 107.61, 107.31, 107.05, 106.89, 106.81, 106.71, 106.51, 106.39, 106.29, 106.25, 106.27, 106.31, 106.27, 106.22, 106.19, 106.13, 106.13, 106.13, 106.11, 106.08, 106.01, 105.91, 105.8, 105.73, 105.7, 105.67, 105.63, 105.62, 105.79, 105.95, 106.04, 105.99, 106.03, 106.12, 106.22, 106.38, 106.46, 106.56, 106.65, 106.68, 106.79, 106.86, 106.93, 106.99, 106.89, 106.86, 106.79, 106.67, 106.53, 106.4, 106.25, 106.09, 105.98, 105.88, 105.77, 105.65, 105.5, 105.47, 105.49, 105.5, 105.52, 105.42, 105.31, 105.22, 105.13, 105.04, 104.98, 104.93, 104.85, 104.77, 104.68, 104.61, 104.6, 104.56, 104.55, 104.64, 104.81, 104.99, 105.23, 105.5, 105.73, 105.98, 106.27, 106.64, 107.02, 107.37, 107.68, 108.04, 108.53, 108.96, 109.33, 109.68, 110.03, 110.35, 110.6, 110.83, 110.91, 111.1, 111.31, 111.55, 111.71, 111.77, 111.8, 111.81, 111.9, 111.94, 112, 112.01, 112.12, 112.23, 112.34, 112.49, 112.54, 112.64, 112.68, 112.73, 112.78, 112.81, 112.89, 112.99, 113.11, 113.19, 113.3, 113.5, 113.75, 114.01, 114.19, 114.4, 114.55, 114.68, 114.82, 114.89, 115.03, 115.14, 115.27, 115.44, 115.58, 115.69, 115.83, 115.95, 116.12, 116.45, 116.71, 117.03, 117.37]); }); }); }); //# sourceMappingURL=emaIndicator.spec.js.map