text: /**
   * @license  Highcharts JS v6.1.3 (2018-09-12)
   *
   * Indicator series type for Highstock
   *
   * (c) 2010-2017 Sebastian Bochan
   *
   * License: www.highcharts.com/license
   */
  'use strict';
  (function (factory) {
  	if (typeof module === 'object' && module.exports) {
  		module.exports = factory;
  	} else if (typeof define === 'function' && define.amd) {
  		define(function () {
  			return factory;
  		});
  	} else {
  		factory(Highcharts);
  	}
  }(function (Highcharts) {
  	(function (H) {
  
  		var seriesType = H.seriesType;
  
  		// Utils:
  		function populateAverage(xVal, yVal, yValVolume, i) {
  		    var high = yVal[i][1],
  		        low = yVal[i][2],
  		        close = yVal[i][3],
  		        volume = yValVolume[i],
  		        adY = close === high && close === low || high === low ?
  		            0 :
  		            ((2 * close - low - high) / (high - low)) * volume,
  		        adX = xVal[i];
  
  		    return [adX, adY];
  		}
  
  		/**
  		 * The AD series type.
  		 *
  		 * @constructor seriesTypes.ad
  		 * @augments seriesTypes.sma
  		 */
  		seriesType('ad', 'sma',
  		    /**
  		     * Accumulation Distribution (AD). This series requires `linkedTo` option to
  		     * be set.
  		     *
  		     * @extends plotOptions.sma
  		     * @product highstock
  		     * @sample {highstock} stock/indicators/accumulation-distribution
  		     *                        Accumulation/Distribution indicator
  		     * @since 6.0.0
  		     * @optionparent plotOptions.ad
  		     */
  		    {
  		        params: {
  		            /**
  		             * The id of volume series which is mandatory.
  		             * For example using OHLC data, volumeSeriesID='volume' means
  		             * the indicator will be calculated using OHLC and volume values.
  		             *
  		             * @type {String}
  		             * @since 6.0.0
  		             * @product highstock
  		             */
  		            volumeSeriesID: 'volume'
  		        }
  		    }, {
  		        nameComponents: false,
  		        nameBase: 'Accumulation/Distribution',
  		        getValues: function (series, params) {
  		            var period = params.period,
  		                xVal = series.xData,
  		                yVal = series.yData,
  		                volumeSeriesID = params.volumeSeriesID,
  		                volumeSeries = series.chart.get(volumeSeriesID),
  		                yValVolume = volumeSeries && volumeSeries.yData,
  		                yValLen = yVal ? yVal.length : 0,
  		                AD = [],
  		                xData = [],
  		                yData = [],
  		                len, i, ADPoint;
  
  		            if (xVal.length <= period && yValLen && yVal[0].length !== 4) {
  		                return false;
  		            }
  
  		            if (!volumeSeries) {
  		                return H.error(
  		                    'Series ' +
  		                    volumeSeriesID +
  		                    ' not found! Check `volumeSeriesID`.',
  		                    true
  		                );
  		            }
  
  		            // i = period <-- skip first N-points
  		            // Calculate value one-by-one for each period in visible data
  		            for (i = period; i < yValLen; i++) {
  
  		                len = AD.length;
  		                ADPoint = populateAverage(xVal, yVal, yValVolume, i, period);
  
  		                if (len > 0) {
  		                    ADPoint[1] += AD[len - 1][1];
  		                    ADPoint[1] = ADPoint[1];
  		                }
  
  		                AD.push(ADPoint);
  
  		                xData.push(ADPoint[0]);
  		                yData.push(ADPoint[1]);
  		            }
  
  		            return {
  		                values: AD,
  		                xData: xData,
  		                yData: yData
  		            };
  		        }
  		    });
  
  		/**
  		 * A `AD` series. If the [type](#series.ad.type) option is not
  		 * specified, it is inherited from [chart.type](#chart.type).
  		 *
  		 * @type {Object}
  		 * @since 6.0.0
  		 * @extends series,plotOptions.ad
  		 * @excluding data,dataParser,dataURL
  		 * @product highstock
  		 * @apioption series.ad
  		 */
  
  		/**
  		 * @type {Array<Object|Array>}
  		 * @since 6.0.0
  		 * @extends series.sma.data
  		 * @product highstock
  		 * @apioption series.ad.data
  		 */
  
  	}(Highcharts));
  	return (function () {
  
  
  	}());
  }));
  