%PDF-1.5 %���� ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY
Server IP : 49.231.201.246 / Your IP : 216.73.216.149 Web Server : Apache/2.4.18 (Ubuntu) System : Linux 246 4.4.0-210-generic #242-Ubuntu SMP Fri Apr 16 09:57:56 UTC 2021 x86_64 User : root ( 0) PHP Version : 7.0.33-0ubuntu0.16.04.16 Disable Function : exec,passthru,shell_exec,system,proc_open,popen,pcntl_exec MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /proc/11585/root/var/www/html/ppaobm/backend/web/assets/16c36a2e/es-modules/indicators/ |
Upload File : |
/* * * * License: www.highcharts.com/license * * */ 'use strict'; import H from '../parts/Globals.js'; import multipleLinesMixin from '../mixins/multipe-lines.js'; // Utils // Index of element with extreme value from array (min or max) function getExtremeIndexInArray(arr, extreme) { var extremeValue = arr[0], valueIndex = 0, i; for (i = 1; i < arr.length; i++) { if ( extreme === 'max' && arr[i] >= extremeValue || extreme === 'min' && arr[i] <= extremeValue ) { extremeValue = arr[i]; valueIndex = i; } } return valueIndex; } /** * The Aroon series type. * * @private * @class * @name Highcharts.seriesTypes.aroon * * @augments Highcharts.Series */ H.seriesType( 'aroon', 'sma', /** * Aroon. This series requires the `linkedTo` option to be * set and should be loaded after the `stock/indicators/indicators.js`. * * @sample {highstock} stock/indicators/aroon * Aroon * * @extends plotOptions.sma * @since 7.0.0 * @product highstock * @excluding allAreas, colorAxis, compare, compareBase, joinBy, keys, * navigatorOptions, pointInterval, pointIntervalUnit, * pointPlacement, pointRange, pointStart, showInNavigator, * stacking * @optionparent plotOptions.aroon */ { /** * Paramters used in calculation of aroon series points. * * @excluding periods, index */ params: { /** * Period for Aroon indicator */ period: 25 }, marker: { enabled: false }, tooltip: { pointFormat: '<span style="color:{point.color}">\u25CF</span><b> {series.name}</b><br/>Aroon Up: {point.y}<br/>Aroon Down: {point.aroonDown}<br/>' }, /** * aroonDown line options. */ aroonDown: { /** * Styles for an aroonDown line. */ styles: { /** * Pixel width of the line. */ lineWidth: 1, /** * Color of the line. If not set, it's inherited from * [plotOptions.aroon.color](#plotOptions.aroon.color). * * @type {Highcharts.ColorString} */ lineColor: undefined } }, dataGrouping: { approximation: 'averages' } }, /** * @lends Highcharts.Series# */ H.merge(multipleLinesMixin, { nameBase: 'Aroon', pointArrayMap: ['y', 'aroonDown'], pointValKey: 'y', linesApiNames: ['aroonDown'], getValues: function (series, params) { var period = params.period, xVal = series.xData, yVal = series.yData, yValLen = yVal ? yVal.length : 0, AR = [], // 0- date, 1- Aroon Up, 2- Aroon Down xData = [], yData = [], slicedY, low = 2, high = 1, aroonUp, aroonDown, xLow, xHigh, i; // For a N-period, we start from N-1 point, to calculate Nth point // That is why we later need to comprehend slice() elements list // with (+1) for (i = period - 1; i < yValLen; i++) { slicedY = yVal.slice(i - period + 1, i + 2); xLow = getExtremeIndexInArray(slicedY.map(function (elem) { return H.pick(elem[low], elem); }), 'min'); xHigh = getExtremeIndexInArray(slicedY.map(function (elem) { return H.pick(elem[high], elem); }), 'max'); aroonUp = (xHigh / period) * 100; aroonDown = (xLow / period) * 100; if (xVal[i + 1]) { AR.push([xVal[i + 1], aroonUp, aroonDown]); xData.push(xVal[i + 1]); yData.push([aroonUp, aroonDown]); } } return { values: AR, xData: xData, yData: yData }; } }) ); /** * A Aroon indicator. If the [type](#series.aroon.type) option is not * specified, it is inherited from [chart.type](#chart.type). * * @extends series,plotOptions.aroon * @since 7.0.0 * @product highstock * @excluding allAreas, colorAxis, compare, compareBase, dataParser, dataURL, * joinBy, keys, navigatorOptions, pointInterval, pointIntervalUnit, * pointPlacement, pointRange, pointStart, showInNavigator, stacking * @apioption series.aroon */