%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/cwd/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 '../parts/Utilities.js'; import reduceArrayMixin from '../mixins/reduce-array.js'; var isArray = H.isArray, getArrayExtremes = reduceArrayMixin.getArrayExtremes; /** * The Williams %R series type. * * @private * @class * @name Highcharts.seriesTypes.williamsr * * @augments Highcharts.Series */ H.seriesType( 'williamsr', 'sma', /** * Williams %R. This series requires the `linkedTo` option to be * set and should be loaded after the `stock/indicators/indicators.js`. * * @sample {highstock} stock/indicators/williams-r * Williams %R * * @extends plotOptions.sma * @since 7.0.0 * @product highstock * @excluding allAreas, colorAxis, joinBy, keys, navigatorOptions, * pointInterval, pointIntervalUnit, pointPlacement, * pointRange, pointStart, showInNavigator, stacking * @optionparent plotOptions.williamsr */ { /** * Paramters used in calculation of Williams %R series points. * @excluding index */ params: { /** * Period for Williams %R oscillator */ period: 14 } }, /** * @lends Highcharts.Series# */ { nameBase: 'Williams %R', getValues: function (series, params) { var period = params.period, xVal = series.xData, yVal = series.yData, yValLen = yVal ? yVal.length : 0, WR = [], // 0- date, 1- Williams %R xData = [], yData = [], slicedY, close = 3, low = 2, high = 1, extremes, R, HH, // Highest high value in period LL, // Lowest low value in period CC, // Current close value i; // Williams %R requires close value if ( xVal.length < period || !isArray(yVal[0]) || yVal[0].length !== 4 ) { return false; } // 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 + 1); extremes = getArrayExtremes(slicedY, low, high); LL = extremes[0]; HH = extremes[1]; CC = yVal[i][close]; R = ((HH - CC) / (HH - LL)) * -100; if (xVal[i]) { WR.push([xVal[i], R]); xData.push(xVal[i]); yData.push(R); } } return { values: WR, xData: xData, yData: yData }; } } ); /** * A `Williams %R Oscillator` series. If the [type](#series.williamsr.type) * option is not specified, it is inherited from [chart.type](#chart.type). * * @extends series,plotOptions.williamsr * @since 7.0.0 * @product highstock * @excluding allAreas, colorAxis, dataParser, dataURL, joinBy, keys, * navigatorOptions, pointInterval, pointIntervalUnit, * pointPlacement, pointRange, pointStart, showInNavigator, stacking * @apioption series.williamsr */