highcharts 9.2.2 → 9.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +13 -6
- package/bower.json +1 -1
- package/css/annotations/popup.css +48 -8
- package/css/annotations/popup.scss +70 -22
- package/css/highcharts.css +45 -0
- package/css/highcharts.scss +40 -0
- package/css/themes/dark-unica.css +45 -0
- package/css/themes/grid-light.css +45 -0
- package/css/themes/sand-signika.css +45 -0
- package/es-modules/Accessibility/A11yI18n.js +273 -224
- package/es-modules/Accessibility/Accessibility.js +233 -128
- package/es-modules/Accessibility/AccessibilityComponent.js +79 -314
- package/es-modules/Accessibility/Components/AnnotationsA11y.js +10 -0
- package/es-modules/Accessibility/Components/ContainerComponent.js +52 -27
- package/es-modules/Accessibility/Components/InfoRegionsComponent.js +46 -23
- package/es-modules/Accessibility/Components/LegendComponent.js +97 -65
- package/es-modules/Accessibility/Components/MenuComponent.js +59 -40
- package/es-modules/Accessibility/Components/RangeSelectorComponent.js +5 -8
- package/es-modules/Accessibility/Components/SeriesComponent/ForcedMarkers.js +152 -115
- package/es-modules/Accessibility/Components/SeriesComponent/NewDataAnnouncer.js +133 -68
- package/es-modules/Accessibility/Components/SeriesComponent/SeriesComponent.js +64 -27
- package/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.js +38 -21
- package/es-modules/Accessibility/Components/SeriesComponent/SeriesKeyboardNavigation.js +380 -325
- package/es-modules/Accessibility/Components/ZoomComponent.js +28 -20
- package/es-modules/Accessibility/FocusBorder.js +192 -147
- package/es-modules/Accessibility/HighContrastMode.js +78 -66
- package/es-modules/Accessibility/HighContrastTheme.js +10 -0
- package/es-modules/Accessibility/KeyboardNavigation.js +144 -70
- package/es-modules/Accessibility/KeyboardNavigationHandler.js +71 -44
- package/es-modules/Accessibility/Options/DeprecatedOptions.js +11 -1
- package/es-modules/Accessibility/Options/LangOptions.js +1 -2
- package/es-modules/Accessibility/Options/Options.js +32 -17
- package/es-modules/Accessibility/ProxyElement.js +212 -0
- package/es-modules/Accessibility/ProxyProvider.js +305 -0
- package/es-modules/Accessibility/Utils/Announcer.js +15 -8
- package/es-modules/Accessibility/Utils/ChartUtilities.js +41 -16
- package/es-modules/Accessibility/Utils/DOMElementProvider.js +27 -15
- package/es-modules/Accessibility/Utils/EventProvider.js +27 -17
- package/es-modules/Accessibility/Utils/HTMLUtilities.js +125 -30
- package/es-modules/Core/Axis/Axis.js +37 -30
- package/es-modules/Core/Axis/AxisDefaults.js +35 -24
- package/es-modules/Core/Axis/Color/ColorAxisComposition.js +54 -4
- package/es-modules/Core/Axis/Color/ColorAxisDefaults.js +5 -5
- package/es-modules/Core/Axis/OrdinalAxis.js +8 -12
- package/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBand.js +4 -5
- package/es-modules/Core/Axis/ScrollbarAxis.js +10 -3
- package/es-modules/Core/Axis/TreeGridAxis.js +2 -2
- package/es-modules/Core/Axis/TreeGridTick.js +1 -2
- package/es-modules/Core/Chart/Chart.js +2 -3
- package/es-modules/Core/Chart/ChartDefaults.js +3 -4
- package/es-modules/Core/Chart/ChartNavigationComposition.js +92 -0
- package/es-modules/Core/Chart/MapChart.js +10 -22
- package/es-modules/Core/Chart/StockChart.js +3 -293
- package/es-modules/Core/Color/Palettes.js +22 -0
- package/es-modules/Core/DefaultOptions.js +19 -17
- package/es-modules/Core/Foundation.js +39 -31
- package/es-modules/Core/Globals.js +1 -1
- package/es-modules/Core/HttpUtilities.js +3 -3
- package/es-modules/Core/Legend/Legend.js +7 -3
- package/es-modules/Core/Navigator.js +7 -8
- package/es-modules/Core/Pointer.js +39 -36
- package/es-modules/Core/Renderer/HTML/AST.js +2 -0
- package/es-modules/Core/Renderer/HTML/HTMLElement.js +23 -18
- package/es-modules/Core/Renderer/SVG/SVGElement.js +3 -4
- package/es-modules/Core/Renderer/SVG/SVGRenderer.js +21 -18
- package/es-modules/Core/Renderer/SVG/TextBuilder.js +3 -3
- package/es-modules/Core/ScrollbarDefaults.js +10 -9
- package/es-modules/Core/Series/DataLabel.js +2 -3
- package/es-modules/Core/Series/Point.js +5 -3
- package/es-modules/Core/Series/Series.js +153 -162
- package/es-modules/Core/Series/SeriesDefaults.js +3 -4
- package/es-modules/Core/Series/SeriesRegistry.js +1 -2
- package/es-modules/Core/Tooltip.js +44 -17
- package/es-modules/Core/Utilities.js +15 -7
- package/es-modules/Data/DataConverter.js +489 -0
- package/es-modules/Data/DataPromise.js +252 -0
- package/es-modules/Data/DataSeriesConverter.js +203 -0
- package/es-modules/Data/DataTable.js +1204 -0
- package/es-modules/Data/Modifiers/ChainModifier.js +299 -0
- package/es-modules/Data/Modifiers/DataModifier.js +303 -0
- package/es-modules/Data/Modifiers/GroupModifier.js +144 -0
- package/es-modules/Data/Modifiers/InvertModifier.js +254 -0
- package/es-modules/Data/Modifiers/RangeModifier.js +143 -0
- package/es-modules/Data/Modifiers/SeriesPointsModifier.js +110 -0
- package/es-modules/Data/Modifiers/SortModifier.js +249 -0
- package/es-modules/Data/Parsers/CSVParser.js +399 -0
- package/es-modules/Data/Parsers/DataParser.js +101 -0
- package/es-modules/Data/Parsers/GoogleSheetsParser.js +220 -0
- package/es-modules/Data/Parsers/HTMLTableParser.js +213 -0
- package/es-modules/Data/Stores/CSVStore.js +317 -0
- package/es-modules/Data/Stores/DataStore.js +276 -0
- package/es-modules/Data/Stores/GoogleSheetsStore.js +167 -0
- package/es-modules/Data/Stores/HTMLTableStore.js +351 -0
- package/es-modules/Extensions/Annotations/Annotations.js +61 -11
- package/es-modules/Extensions/Annotations/ControlPoint.js +1 -1
- package/es-modules/Extensions/Annotations/Controllables/ControllableEllipse.js +199 -0
- package/es-modules/Extensions/Annotations/Mixins/ControllableMixin.js +7 -1
- package/es-modules/Extensions/Annotations/NavigationBindings.js +68 -19
- package/es-modules/Extensions/Annotations/Popup.js +479 -141
- package/es-modules/Extensions/Annotations/Types/BasicAnnotation.js +51 -2
- package/es-modules/Extensions/Annotations/Types/CrookedLine.js +1 -1
- package/es-modules/Extensions/Annotations/Types/Fibonacci.js +2 -3
- package/es-modules/Extensions/Annotations/Types/FibonacciTimeZones.js +219 -0
- package/es-modules/Extensions/Annotations/Types/InfinityLine.js +1 -1
- package/es-modules/Extensions/Annotations/Types/Measure.js +14 -8
- package/es-modules/Extensions/Annotations/Types/Pitchfork.js +5 -5
- package/es-modules/Extensions/Annotations/Types/TimeCycles.js +207 -0
- package/es-modules/Extensions/Annotations/Types/Tunnel.js +3 -5
- package/es-modules/Extensions/Annotations/Types/VerticalLine.js +1 -1
- package/es-modules/Extensions/Boost/BoostOverrides.js +3 -1
- package/es-modules/Extensions/Boost/WGLShader.js +4 -3
- package/es-modules/Extensions/BoostCanvas.js +1 -2
- package/es-modules/Extensions/CurrentDateIndication.js +2 -3
- package/es-modules/Extensions/DataGrouping.js +31 -18
- package/es-modules/Extensions/DownloadURL.js +2 -2
- package/es-modules/Extensions/DragPanes.js +1 -2
- package/es-modules/Extensions/Drilldown.js +2 -3
- package/es-modules/Extensions/Exporting/Exporting.js +8 -7
- package/es-modules/Extensions/Exporting/ExportingDefaults.js +8 -15
- package/es-modules/Extensions/GeoJSON.js +39 -63
- package/es-modules/Extensions/MarkerClusters.js +115 -97
- package/es-modules/Extensions/NoDataToDisplay.js +1 -2
- package/es-modules/Extensions/OfflineExporting/OfflineExporting.js +9 -8
- package/es-modules/Extensions/OfflineExporting/OfflineExportingDefaults.js +1 -1
- package/es-modules/Extensions/Oldie/Oldie.js +2 -3
- package/es-modules/Extensions/Pane.js +5 -6
- package/es-modules/Extensions/RangeSelector.js +3 -4
- package/es-modules/Extensions/Sonification/ChartSonify.js +247 -637
- package/es-modules/Extensions/Sonification/Earcon.js +136 -102
- package/es-modules/Extensions/Sonification/Instrument.js +496 -426
- package/es-modules/Extensions/Sonification/MusicalFrequencies.js +10 -0
- package/es-modules/Extensions/Sonification/Options.js +10 -0
- package/es-modules/Extensions/Sonification/PointSonify.js +203 -152
- package/es-modules/Extensions/Sonification/SeriesSonify.js +459 -0
- package/es-modules/Extensions/Sonification/SignalHandler.js +124 -0
- package/es-modules/Extensions/Sonification/Sonification.js +26 -52
- package/es-modules/Extensions/Sonification/{Utilities.js → SonificationUtilities.js} +62 -84
- package/es-modules/Extensions/Sonification/Timeline.js +255 -567
- package/es-modules/Extensions/Sonification/TimelineEvent.js +158 -0
- package/es-modules/Extensions/Sonification/TimelinePath.js +311 -0
- package/es-modules/Maps/MapNavigation.js +27 -64
- package/es-modules/Maps/MapNavigationOptionsDefault.js +3 -0
- package/es-modules/Maps/MapPointer.js +7 -5
- package/es-modules/Maps/MapView.js +450 -0
- package/es-modules/Maps/MapViewOptionsDefault.js +95 -0
- package/es-modules/Maps/Projection.js +433 -0
- package/es-modules/Maps/ProjectionDefinition.js +9 -0
- package/es-modules/Maps/Projections/EqualEarth.js +42 -0
- package/es-modules/Maps/Projections/Miller.js +17 -0
- package/es-modules/Maps/Projections/Orthographic.js +26 -0
- package/es-modules/Maps/Projections/ProjectionRegistry.js +17 -0
- package/es-modules/Maps/Projections/WebMercator.js +25 -0
- package/es-modules/Series/AreaRange/AreaRangeSeries.js +4 -5
- package/es-modules/Series/Bellcurve/BellcurveSeries.js +2 -8
- package/es-modules/Series/BoxPlot/BoxPlotSeries.js +1 -2
- package/es-modules/Series/Bubble/BubbleLegendDefaults.js +1 -2
- package/es-modules/Series/Bubble/BubbleLegendItem.js +3 -3
- package/es-modules/Series/Bubble/BubblePoint.js +5 -0
- package/es-modules/Series/Bubble/BubbleSeries.js +90 -50
- package/es-modules/Series/Candlestick/CandlestickSeries.js +10 -18
- package/es-modules/{Mixins/CenteredSeries.js → Series/CenteredUtilities.js} +45 -23
- package/es-modules/Series/ColorMapComposition.js +109 -0
- package/es-modules/Series/Column/ColumnDataLabel.js +5 -5
- package/es-modules/Series/Column/ColumnSeries.js +3 -4
- package/es-modules/Series/ColumnPyramid/ColumnPyramidSeries.js +6 -6
- package/es-modules/Series/DataModifyComposition.js +539 -0
- package/es-modules/Series/DependencyWheel/DependencyWheelPoint.js +2 -6
- package/es-modules/Series/DerivedComposition.js +137 -0
- package/es-modules/Series/DrawPointComposition.js +111 -0
- package/es-modules/Series/Dumbbell/DumbbellSeries.js +2 -3
- package/es-modules/Series/ErrorBar/ErrorBarSeries.js +1 -2
- package/es-modules/Series/Flags/FlagsSeries.js +18 -25
- package/es-modules/Series/Funnel/FunnelSeries.js +6 -5
- package/es-modules/Series/Gantt/GanttSeries.js +0 -2
- package/es-modules/Series/Gauge/GaugePoint.js +1 -1
- package/es-modules/Series/Gauge/GaugeSeries.js +7 -7
- package/es-modules/Series/HLC/HLCPoint.js +55 -0
- package/es-modules/Series/HLC/HLCSeries.js +383 -0
- package/es-modules/Series/Heatmap/HeatmapPoint.js +3 -4
- package/es-modules/Series/Heatmap/HeatmapSeries.js +19 -6
- package/es-modules/Series/HeikinAshi/HeikinAshiSeries.js +2 -3
- package/es-modules/Series/Histogram/HistogramSeries.js +3 -7
- package/es-modules/Series/HollowCandlestick/HollowCandlestickSeries.js +9 -10
- package/es-modules/Series/Line/LineSeries.js +1 -2
- package/es-modules/Series/Map/MapPoint.js +23 -16
- package/es-modules/Series/Map/MapSeries.js +268 -309
- package/es-modules/Series/MapBubble/MapBubblePoint.js +0 -3
- package/es-modules/Series/MapBubble/MapBubbleSeries.js +10 -1
- package/es-modules/Series/MapPoint/MapPointPoint.js +5 -1
- package/es-modules/Series/MapPoint/MapPointSeries.js +87 -4
- package/es-modules/Series/Networkgraph/Networkgraph.js +5 -5
- package/es-modules/{Mixins/Nodes.js → Series/NodesComposition.js} +76 -29
- package/es-modules/Series/OHLC/OHLCPoint.js +2 -6
- package/es-modules/Series/OHLC/OHLCSeries.js +55 -183
- package/es-modules/{Mixins/OnSeries.js → Series/OnSeriesComposition.js} +53 -21
- package/es-modules/Series/Organization/OrganizationSeries.js +2 -3
- package/es-modules/Series/PackedBubble/PackedBubbleSeries.js +46 -6
- package/es-modules/Series/ParetoSeries/ParetoSeries.js +3 -7
- package/es-modules/Series/Pie/PieDataLabel.js +1 -2
- package/es-modules/Series/Pie/PieSeries.js +6 -7
- package/es-modules/Series/Sankey/SankeyPoint.js +0 -4
- package/es-modules/Series/Sankey/SankeySeries.js +89 -20
- package/es-modules/Series/Sunburst/SunburstPoint.js +2 -3
- package/es-modules/Series/Sunburst/SunburstSeries.js +4 -4
- package/es-modules/Series/Tilemap/TilemapPoint.js +2 -3
- package/es-modules/Series/Timeline/TimelineSeries.js +3 -4
- package/es-modules/{Mixins/TreeSeries.js → Series/TreeUtilities.js} +86 -76
- package/es-modules/Series/Treemap/TreemapPoint.js +2 -2
- package/es-modules/Series/Treemap/TreemapSeries.js +8 -8
- package/es-modules/Series/Venn/VennPoint.js +16 -7
- package/es-modules/Series/Venn/VennSeries.js +5 -8
- package/es-modules/Series/Venn/VennUtils.js +550 -439
- package/es-modules/Series/Waterfall/WaterfallSeries.js +2 -3
- package/es-modules/Series/Windbarb/WindbarbSeries.js +23 -24
- package/es-modules/Series/Wordcloud/WordcloudPoint.js +8 -6
- package/es-modules/Series/Wordcloud/WordcloudSeries.js +24 -20
- package/es-modules/Series/Wordcloud/WordcloudUtils.js +673 -484
- package/es-modules/Series/XRange/XRangePoint.js +1 -0
- package/es-modules/Stock/Indicators/ABands/ABandsIndicator.js +3 -6
- package/es-modules/Stock/Indicators/AO/AOIndicator.js +2 -3
- package/es-modules/Stock/Indicators/APO/APOIndicator.js +14 -20
- package/es-modules/Stock/Indicators/Aroon/AroonIndicator.js +3 -6
- package/es-modules/Stock/Indicators/AroonOscillator/AroonOscillatorIndicator.js +11 -13
- package/es-modules/Stock/Indicators/ArrayUtilities.js +47 -0
- package/es-modules/Stock/Indicators/BB/BBIndicator.js +27 -11
- package/es-modules/Stock/Indicators/Chaikin/ChaikinIndicator.js +6 -12
- package/es-modules/Stock/Indicators/DEMA/DEMAIndicator.js +1 -11
- package/es-modules/Stock/Indicators/DMI/DMIIndicator.js +19 -11
- package/es-modules/Stock/Indicators/DisparityIndex/DisparityIndexIndicator.js +17 -11
- package/es-modules/Stock/Indicators/EMA/EMAIndicator.js +1 -3
- package/es-modules/Stock/Indicators/KeltnerChannels/KeltnerChannelsIndicator.js +11 -9
- package/es-modules/Stock/Indicators/Klinger/KlingerIndicator.js +8 -16
- package/es-modules/Stock/Indicators/LinearRegression/LinearRegression.js +2 -2
- package/es-modules/Stock/Indicators/LinearRegressionAngle/LinearRegressionAngle.js +2 -2
- package/es-modules/Stock/Indicators/LinearRegressionIntercept/LinearRegressionIntercept.js +2 -2
- package/es-modules/Stock/Indicators/LinearRegressionSlopes/LinearRegressionSlopes.js +2 -2
- package/es-modules/Stock/Indicators/MACD/MACDIndicator.js +1 -2
- package/es-modules/{Mixins/MultipleLines.js → Stock/Indicators/MultipleLinesComposition.js} +136 -87
- package/es-modules/Stock/Indicators/NATR/NATRIndicator.js +1 -3
- package/es-modules/Stock/Indicators/PC/PCIndicator.js +14 -13
- package/es-modules/Stock/Indicators/PPO/PPOIndicator.js +1 -11
- package/es-modules/Stock/Indicators/SMA/SMAComposition.js +0 -26
- package/es-modules/Stock/Indicators/SMA/SMAIndicator.js +9 -32
- package/es-modules/Stock/Indicators/SlowStochastic/SlowStochasticIndicator.js +0 -8
- package/es-modules/Stock/Indicators/Stochastic/StochasticIndicator.js +15 -8
- package/es-modules/Stock/Indicators/Supertrend/SupertrendIndicator.js +4 -6
- package/es-modules/Stock/Indicators/TEMA/TEMAIndicator.js +26 -11
- package/es-modules/Stock/Indicators/TRIX/TRIXIndicator.js +6 -12
- package/es-modules/Stock/Indicators/VBP/VBPIndicator.js +20 -3
- package/es-modules/Stock/Indicators/WilliamsR/WilliamsRIndicator.js +2 -3
- package/es-modules/Stock/StockToolsBindings.js +144 -42
- package/es-modules/Stock/StockToolsGui.js +405 -11
- package/es-modules/masters/highcharts-3d.src.js +1 -1
- package/es-modules/masters/highcharts-gantt.src.js +1 -1
- package/es-modules/masters/highcharts-more.src.js +1 -1
- package/es-modules/masters/highcharts.src.js +1 -1
- package/es-modules/masters/highmaps.src.js +1 -1
- package/es-modules/masters/highstock.src.js +1 -1
- package/es-modules/masters/indicators/acceleration-bands.src.js +1 -1
- package/es-modules/masters/indicators/accumulation-distribution.src.js +1 -1
- package/es-modules/masters/indicators/ao.src.js +1 -1
- package/es-modules/masters/indicators/apo.src.js +1 -1
- package/es-modules/masters/indicators/aroon-oscillator.src.js +1 -1
- package/es-modules/masters/indicators/aroon.src.js +1 -1
- package/es-modules/masters/indicators/atr.src.js +1 -1
- package/es-modules/masters/indicators/bollinger-bands.src.js +1 -1
- package/es-modules/masters/indicators/cci.src.js +1 -1
- package/es-modules/masters/indicators/chaikin.src.js +1 -1
- package/es-modules/masters/indicators/cmf.src.js +1 -1
- package/es-modules/masters/indicators/cmo.src.js +1 -1
- package/es-modules/masters/indicators/dema.src.js +1 -1
- package/es-modules/masters/indicators/disparity-index.src.js +1 -1
- package/es-modules/masters/indicators/dmi.src.js +1 -1
- package/es-modules/masters/indicators/dpo.src.js +1 -1
- package/es-modules/masters/indicators/ema.src.js +4 -10
- package/es-modules/masters/indicators/ichimoku-kinko-hyo.src.js +1 -1
- package/es-modules/masters/indicators/indicators-all.src.js +2 -2
- package/es-modules/masters/indicators/indicators.src.js +2 -1
- package/es-modules/masters/indicators/keltner-channels.src.js +1 -1
- package/es-modules/masters/indicators/klinger.src.js +1 -1
- package/es-modules/masters/indicators/macd.src.js +1 -1
- package/es-modules/masters/indicators/mfi.src.js +1 -1
- package/es-modules/masters/indicators/momentum.src.js +1 -1
- package/es-modules/masters/indicators/natr.src.js +1 -1
- package/es-modules/masters/indicators/obv.src.js +1 -1
- package/es-modules/masters/indicators/pivot-points.src.js +1 -1
- package/es-modules/masters/indicators/ppo.src.js +1 -1
- package/es-modules/masters/indicators/price-channel.src.js +1 -1
- package/es-modules/masters/indicators/price-envelopes.src.js +1 -1
- package/es-modules/masters/indicators/psar.src.js +1 -1
- package/es-modules/masters/indicators/regressions.src.js +1 -1
- package/es-modules/masters/indicators/roc.src.js +1 -1
- package/es-modules/masters/indicators/rsi.src.js +1 -1
- package/es-modules/masters/indicators/slow-stochastic.src.js +1 -1
- package/es-modules/masters/indicators/stochastic.src.js +1 -1
- package/es-modules/masters/indicators/supertrend.src.js +1 -1
- package/es-modules/masters/indicators/tema.src.js +1 -1
- package/es-modules/masters/indicators/trendline.src.js +1 -1
- package/es-modules/masters/indicators/trix.src.js +1 -1
- package/es-modules/masters/indicators/volume-by-price.src.js +1 -1
- package/es-modules/masters/indicators/vwap.src.js +1 -1
- package/es-modules/masters/indicators/williams-r.src.js +1 -1
- package/es-modules/masters/indicators/wma.src.js +1 -1
- package/es-modules/masters/indicators/zigzag.src.js +1 -1
- package/es-modules/masters/modules/accessibility.src.js +16 -2
- package/es-modules/masters/modules/annotations-advanced.src.js +3 -1
- package/es-modules/masters/modules/annotations.src.js +1 -1
- package/es-modules/masters/modules/arrow-symbols.src.js +1 -1
- package/es-modules/masters/modules/boost-canvas.src.js +1 -1
- package/es-modules/masters/modules/boost.src.js +1 -1
- package/es-modules/masters/modules/broken-axis.src.js +1 -1
- package/es-modules/masters/modules/bullet.src.js +1 -1
- package/es-modules/masters/modules/coloraxis.src.js +1 -1
- package/es-modules/masters/modules/current-date-indicator.src.js +1 -1
- package/es-modules/masters/modules/cylinder.src.js +1 -1
- package/es-modules/masters/modules/data.src.js +6 -3
- package/es-modules/masters/modules/datagrouping.src.js +1 -1
- package/es-modules/masters/modules/debugger.src.js +1 -1
- package/es-modules/masters/modules/dependency-wheel.src.js +1 -1
- package/es-modules/masters/modules/dotplot.src.js +1 -1
- package/es-modules/masters/modules/drag-panes.src.js +1 -1
- package/es-modules/masters/modules/draggable-points.src.js +1 -1
- package/es-modules/masters/modules/drilldown.src.js +1 -1
- package/es-modules/masters/modules/dumbbell.src.js +1 -1
- package/es-modules/masters/modules/export-data.src.js +1 -1
- package/es-modules/masters/modules/exporting.src.js +1 -1
- package/es-modules/masters/modules/full-screen.src.js +1 -1
- package/es-modules/masters/modules/funnel.src.js +1 -1
- package/es-modules/masters/modules/funnel3d.src.js +1 -1
- package/es-modules/masters/modules/gantt.src.js +1 -1
- package/es-modules/masters/modules/grid-axis.src.js +1 -1
- package/es-modules/masters/modules/heatmap.src.js +1 -2
- package/es-modules/masters/modules/heikinashi.src.js +1 -1
- package/es-modules/masters/modules/histogram-bellcurve.src.js +1 -1
- package/es-modules/masters/modules/hollowcandlestick.src.js +1 -1
- package/es-modules/masters/modules/item-series.src.js +1 -1
- package/es-modules/masters/modules/lollipop.src.js +1 -1
- package/es-modules/masters/modules/map.src.js +1 -3
- package/es-modules/masters/modules/marker-clusters.src.js +1 -1
- package/es-modules/masters/modules/networkgraph.src.js +1 -1
- package/es-modules/masters/modules/no-data-to-display.src.js +1 -1
- package/es-modules/masters/modules/offline-exporting.src.js +1 -1
- package/es-modules/masters/modules/oldie-polyfills.src.js +1 -1
- package/es-modules/masters/modules/oldie.src.js +1 -1
- package/es-modules/masters/modules/organization.src.js +1 -1
- package/es-modules/masters/modules/overlapping-datalabels.src.js +1 -1
- package/es-modules/masters/modules/parallel-coordinates.src.js +1 -1
- package/es-modules/masters/modules/pareto.src.js +1 -1
- package/es-modules/masters/modules/pathfinder.src.js +1 -1
- package/es-modules/masters/modules/pattern-fill.src.js +1 -1
- package/es-modules/masters/modules/price-indicator.src.js +1 -1
- package/es-modules/masters/modules/pyramid3d.src.js +1 -1
- package/es-modules/masters/modules/sankey.src.js +1 -1
- package/es-modules/masters/modules/series-label.src.js +1 -1
- package/es-modules/masters/modules/solid-gauge.src.js +1 -1
- package/es-modules/masters/modules/sonification.src.js +33 -2
- package/es-modules/masters/modules/static-scale.src.js +1 -1
- package/es-modules/masters/modules/stock-tools.src.js +1 -1
- package/es-modules/masters/modules/stock.src.js +4 -1
- package/es-modules/masters/modules/streamgraph.src.js +1 -1
- package/es-modules/masters/modules/sunburst.src.js +1 -1
- package/es-modules/masters/modules/tilemap.src.js +1 -1
- package/es-modules/masters/modules/timeline.src.js +1 -1
- package/es-modules/masters/modules/treegrid.src.js +1 -1
- package/es-modules/masters/modules/treemap.src.js +1 -1
- package/es-modules/masters/modules/variable-pie.src.js +1 -1
- package/es-modules/masters/modules/variwide.src.js +1 -1
- package/es-modules/masters/modules/vector.src.js +1 -1
- package/es-modules/masters/modules/venn.src.js +1 -1
- package/es-modules/masters/modules/windbarb.src.js +1 -1
- package/es-modules/masters/modules/wordcloud.src.js +1 -1
- package/es-modules/masters/modules/xrange.src.js +1 -1
- package/es-modules/masters/themes/avocado.src.js +1 -1
- package/es-modules/masters/themes/dark-blue.src.js +1 -1
- package/es-modules/masters/themes/dark-green.src.js +1 -1
- package/es-modules/masters/themes/dark-unica.src.js +1 -1
- package/es-modules/masters/themes/gray.src.js +1 -1
- package/es-modules/masters/themes/grid-light.src.js +1 -1
- package/es-modules/masters/themes/grid.src.js +1 -1
- package/es-modules/masters/themes/high-contrast-dark.src.js +1 -1
- package/es-modules/masters/themes/high-contrast-light.src.js +1 -1
- package/es-modules/masters/themes/sand-signika.src.js +1 -1
- package/es-modules/masters/themes/skies.src.js +1 -1
- package/es-modules/masters/themes/sunset.src.js +1 -1
- package/highcharts-3d.js +1 -1
- package/highcharts-3d.src.js +1 -1
- package/highcharts-gantt.js +801 -804
- package/highcharts-gantt.js.map +1 -1
- package/highcharts-gantt.src.js +775 -739
- package/highcharts-more.js +194 -193
- package/highcharts-more.js.map +1 -1
- package/highcharts-more.src.js +207 -119
- package/highcharts.d.ts +9670 -4217
- package/highcharts.js +585 -588
- package/highcharts.js.map +1 -1
- package/highcharts.src.d.ts +9670 -4217
- package/highcharts.src.js +608 -587
- package/highmaps.js +726 -708
- package/highmaps.js.map +1 -1
- package/highmaps.src.js +2708 -1587
- package/highstock.js +788 -783
- package/highstock.js.map +1 -1
- package/highstock.src.js +1896 -1267
- package/indicators/acceleration-bands.js +10 -9
- package/indicators/acceleration-bands.js.map +1 -1
- package/indicators/acceleration-bands.src.js +156 -112
- package/indicators/accumulation-distribution.js +1 -1
- package/indicators/accumulation-distribution.src.js +1 -1
- package/indicators/ao.js +6 -6
- package/indicators/ao.js.map +1 -1
- package/indicators/ao.src.js +4 -4
- package/indicators/apo.js +5 -6
- package/indicators/apo.js.map +1 -1
- package/indicators/apo.src.js +16 -84
- package/indicators/aroon-oscillator.js +9 -9
- package/indicators/aroon-oscillator.js.map +1 -1
- package/indicators/aroon-oscillator.src.js +160 -177
- package/indicators/aroon.js +9 -9
- package/indicators/aroon.js.map +1 -1
- package/indicators/aroon.src.js +156 -112
- package/indicators/atr.js +1 -1
- package/indicators/atr.src.js +1 -1
- package/indicators/bollinger-bands.js +10 -9
- package/indicators/bollinger-bands.js.map +1 -1
- package/indicators/bollinger-bands.src.js +180 -117
- package/indicators/cci.js +1 -1
- package/indicators/cci.src.js +1 -1
- package/indicators/chaikin.js +8 -9
- package/indicators/chaikin.js.map +1 -1
- package/indicators/chaikin.src.js +8 -76
- package/indicators/cmf.js +1 -1
- package/indicators/cmf.src.js +1 -1
- package/indicators/cmo.js +1 -1
- package/indicators/cmo.src.js +1 -1
- package/indicators/dema.js +5 -6
- package/indicators/dema.js.map +1 -1
- package/indicators/dema.src.js +3 -75
- package/indicators/disparity-index.js +6 -7
- package/indicators/disparity-index.js.map +1 -1
- package/indicators/disparity-index.src.js +19 -74
- package/indicators/dmi.js +11 -11
- package/indicators/dmi.js.map +1 -1
- package/indicators/dmi.src.js +173 -116
- package/indicators/dpo.js +1 -1
- package/indicators/dpo.src.js +1 -1
- package/indicators/ema.js +1 -13
- package/indicators/ema.js.map +1 -1
- package/indicators/ema.src.js +7 -188
- package/indicators/ichimoku-kinko-hyo.js +1 -1
- package/indicators/ichimoku-kinko-hyo.src.js +1 -1
- package/indicators/indicators-all.js +197 -203
- package/indicators/indicators-all.js.map +1 -1
- package/indicators/indicators-all.src.js +649 -720
- package/indicators/indicators.js +12 -12
- package/indicators/indicators.js.map +1 -1
- package/indicators/indicators.src.js +188 -124
- package/indicators/keltner-channels.js +10 -10
- package/indicators/keltner-channels.js.map +1 -1
- package/indicators/keltner-channels.src.js +164 -118
- package/indicators/klinger.js +12 -13
- package/indicators/klinger.js.map +1 -1
- package/indicators/klinger.src.js +161 -184
- package/indicators/macd.js +2 -2
- package/indicators/macd.js.map +1 -1
- package/indicators/macd.src.js +2 -3
- package/indicators/mfi.js +1 -1
- package/indicators/mfi.src.js +1 -1
- package/indicators/momentum.js +1 -1
- package/indicators/momentum.src.js +1 -1
- package/indicators/natr.js +3 -3
- package/indicators/natr.js.map +1 -1
- package/indicators/natr.src.js +2 -4
- package/indicators/obv.js +1 -1
- package/indicators/obv.src.js +1 -1
- package/indicators/pivot-points.js +1 -1
- package/indicators/pivot-points.src.js +1 -1
- package/indicators/ppo.js +5 -6
- package/indicators/ppo.js.map +1 -1
- package/indicators/ppo.src.js +3 -75
- package/indicators/price-channel.js +9 -9
- package/indicators/price-channel.js.map +1 -1
- package/indicators/price-channel.src.js +207 -168
- package/indicators/price-envelopes.js +1 -1
- package/indicators/price-envelopes.src.js +1 -1
- package/indicators/psar.js +1 -1
- package/indicators/psar.src.js +1 -1
- package/indicators/regressions.js +1 -1
- package/indicators/regressions.src.js +9 -9
- package/indicators/roc.js +1 -1
- package/indicators/roc.src.js +1 -1
- package/indicators/rsi.js +1 -1
- package/indicators/rsi.src.js +1 -1
- package/indicators/slow-stochastic.js +5 -6
- package/indicators/slow-stochastic.js.map +1 -1
- package/indicators/slow-stochastic.src.js +2 -72
- package/indicators/stochastic.js +10 -10
- package/indicators/stochastic.js.map +1 -1
- package/indicators/stochastic.src.js +209 -164
- package/indicators/supertrend.js +10 -10
- package/indicators/supertrend.js.map +1 -1
- package/indicators/supertrend.src.js +6 -7
- package/indicators/tema.js +6 -7
- package/indicators/tema.js.map +1 -1
- package/indicators/tema.src.js +28 -75
- package/indicators/trendline.js +1 -1
- package/indicators/trendline.src.js +1 -1
- package/indicators/trix.js +4 -5
- package/indicators/trix.js.map +1 -1
- package/indicators/trix.src.js +8 -76
- package/indicators/volume-by-price.js +16 -16
- package/indicators/volume-by-price.js.map +1 -1
- package/indicators/volume-by-price.src.js +21 -3
- package/indicators/vwap.js +1 -1
- package/indicators/vwap.src.js +1 -1
- package/indicators/williams-r.js +5 -6
- package/indicators/williams-r.js.map +1 -1
- package/indicators/williams-r.src.js +41 -51
- package/indicators/wma.js +1 -1
- package/indicators/wma.src.js +1 -1
- package/indicators/zigzag.js +1 -1
- package/indicators/zigzag.src.js +1 -1
- package/modules/accessibility.d.ts +5 -0
- package/modules/accessibility.js +234 -216
- package/modules/accessibility.js.map +1 -1
- package/modules/accessibility.src.d.ts +5 -0
- package/modules/accessibility.src.js +9709 -8608
- package/modules/annotations-advanced.d.ts +30 -0
- package/modules/annotations-advanced.js +191 -165
- package/modules/annotations-advanced.js.map +1 -1
- package/modules/annotations-advanced.src.d.ts +30 -0
- package/modules/annotations-advanced.src.js +1578 -320
- package/modules/annotations.js +121 -107
- package/modules/annotations.js.map +1 -1
- package/modules/annotations.src.js +958 -229
- package/modules/arrow-symbols.js +1 -1
- package/modules/arrow-symbols.src.js +1 -1
- package/modules/boost-canvas.js +15 -15
- package/modules/boost-canvas.js.map +1 -1
- package/modules/boost-canvas.src.js +3 -3
- package/modules/boost.js +79 -79
- package/modules/boost.js.map +1 -1
- package/modules/boost.src.js +10 -9
- package/modules/broken-axis.js +1 -1
- package/modules/broken-axis.src.js +1 -1
- package/modules/bullet.js +1 -1
- package/modules/bullet.src.js +1 -1
- package/modules/coloraxis.js +24 -24
- package/modules/coloraxis.js.map +1 -1
- package/modules/coloraxis.src.js +69 -98
- package/modules/current-date-indicator.js +4 -4
- package/modules/current-date-indicator.js.map +1 -1
- package/modules/current-date-indicator.src.js +4 -4
- package/modules/cylinder.js +1 -1
- package/modules/cylinder.src.js +1 -1
- package/modules/data.js +19 -19
- package/modules/data.js.map +1 -1
- package/modules/data.src.js +9 -6
- package/modules/datagrouping.js +20 -20
- package/modules/datagrouping.js.map +1 -1
- package/modules/datagrouping.src.js +33 -19
- package/modules/debugger.js +1 -1
- package/modules/debugger.src.js +1 -1
- package/modules/dependency-wheel.js +11 -11
- package/modules/dependency-wheel.js.map +1 -1
- package/modules/dependency-wheel.src.js +4 -7
- package/modules/dotplot.js +1 -1
- package/modules/dotplot.src.js +1 -1
- package/modules/drag-panes.js +8 -8
- package/modules/drag-panes.js.map +1 -1
- package/modules/drag-panes.src.js +3 -3
- package/modules/draggable-points.js +1 -1
- package/modules/draggable-points.src.js +1 -1
- package/modules/drilldown.js +24 -24
- package/modules/drilldown.js.map +1 -1
- package/modules/drilldown.src.js +4 -4
- package/modules/dumbbell.js +17 -17
- package/modules/dumbbell.js.map +1 -1
- package/modules/dumbbell.src.js +4 -4
- package/modules/export-data.js +1 -1
- package/modules/export-data.js.map +1 -1
- package/modules/export-data.src.js +3 -3
- package/modules/exporting.js +39 -38
- package/modules/exporting.js.map +1 -1
- package/modules/exporting.src.js +98 -67
- package/modules/full-screen.js +1 -1
- package/modules/full-screen.src.js +1 -1
- package/modules/funnel.js +12 -12
- package/modules/funnel.js.map +1 -1
- package/modules/funnel.src.js +9 -6
- package/modules/funnel3d.js +1 -1
- package/modules/funnel3d.src.js +1 -1
- package/modules/gantt.js +217 -218
- package/modules/gantt.js.map +1 -1
- package/modules/gantt.src.js +167 -152
- package/modules/grid-axis.js +1 -1
- package/modules/grid-axis.src.js +1 -1
- package/modules/heatmap.js +39 -39
- package/modules/heatmap.js.map +1 -1
- package/modules/heatmap.src.js +177 -162
- package/modules/heikinashi.js +1 -1
- package/modules/heikinashi.src.js +4 -4
- package/modules/histogram-bellcurve.js +13 -13
- package/modules/histogram-bellcurve.js.map +1 -1
- package/modules/histogram-bellcurve.src.js +91 -86
- package/modules/hollowcandlestick.js +9 -9
- package/modules/hollowcandlestick.js.map +1 -1
- package/modules/hollowcandlestick.src.js +11 -11
- package/modules/item-series.js +1 -1
- package/modules/item-series.src.js +1 -1
- package/modules/lollipop.js +1 -1
- package/modules/lollipop.src.js +1 -1
- package/modules/map.d.ts +136 -14
- package/modules/map.js +142 -122
- package/modules/map.js.map +1 -1
- package/modules/map.src.d.ts +136 -14
- package/modules/map.src.js +2129 -1029
- package/modules/marker-clusters.js +36 -36
- package/modules/marker-clusters.js.map +1 -1
- package/modules/marker-clusters.src.js +173 -142
- package/modules/networkgraph.d.ts +12 -1
- package/modules/networkgraph.js +49 -49
- package/modules/networkgraph.js.map +1 -1
- package/modules/networkgraph.src.d.ts +12 -1
- package/modules/networkgraph.src.js +91 -43
- package/modules/no-data-to-display.js +5 -5
- package/modules/no-data-to-display.js.map +1 -1
- package/modules/no-data-to-display.src.js +3 -3
- package/modules/offline-exporting.js +17 -17
- package/modules/offline-exporting.js.map +1 -1
- package/modules/offline-exporting.src.js +13 -13
- package/modules/oldie-polyfills.js +1 -1
- package/modules/oldie-polyfills.src.js +1 -1
- package/modules/oldie.js +26 -26
- package/modules/oldie.js.map +1 -1
- package/modules/oldie.src.js +4 -4
- package/modules/organization.js +13 -13
- package/modules/organization.js.map +1 -1
- package/modules/organization.src.js +4 -4
- package/modules/overlapping-datalabels.js +1 -1
- package/modules/overlapping-datalabels.src.js +1 -1
- package/modules/parallel-coordinates.js +1 -1
- package/modules/parallel-coordinates.src.js +1 -1
- package/modules/pareto.js +7 -7
- package/modules/pareto.js.map +1 -1
- package/modules/pareto.src.js +89 -78
- package/modules/pathfinder.js +1 -1
- package/modules/pathfinder.src.js +1 -1
- package/modules/pattern-fill.js +1 -1
- package/modules/pattern-fill.src.js +1 -1
- package/modules/price-indicator.js +1 -1
- package/modules/price-indicator.src.js +1 -1
- package/modules/pyramid3d.js +1 -1
- package/modules/pyramid3d.src.js +1 -1
- package/modules/sankey.d.ts +12 -1
- package/modules/sankey.js +29 -29
- package/modules/sankey.js.map +1 -1
- package/modules/sankey.src.d.ts +12 -1
- package/modules/sankey.src.js +300 -176
- package/modules/series-label.js +1 -1
- package/modules/series-label.src.js +1 -1
- package/modules/solid-gauge.js +1 -1
- package/modules/solid-gauge.src.js +1 -1
- package/modules/sonification.js +59 -55
- package/modules/sonification.js.map +1 -1
- package/modules/sonification.src.js +3034 -2553
- package/modules/static-scale.js +1 -1
- package/modules/static-scale.src.js +1 -1
- package/modules/stock-tools.js +177 -164
- package/modules/stock-tools.js.map +1 -1
- package/modules/stock-tools.src.js +1001 -131
- package/modules/stock.d.ts +39 -6
- package/modules/stock.js +204 -196
- package/modules/stock.js.map +1 -1
- package/modules/stock.src.d.ts +39 -6
- package/modules/stock.src.js +1689 -1081
- package/modules/streamgraph.js +1 -1
- package/modules/streamgraph.src.js +1 -1
- package/modules/sunburst.js +61 -60
- package/modules/sunburst.js.map +1 -1
- package/modules/sunburst.src.js +329 -266
- package/modules/tilemap.js +17 -17
- package/modules/tilemap.js.map +1 -1
- package/modules/tilemap.src.js +3 -4
- package/modules/timeline.js +18 -18
- package/modules/timeline.js.map +1 -1
- package/modules/timeline.src.js +5 -5
- package/modules/treegrid.js +56 -57
- package/modules/treegrid.js.map +1 -1
- package/modules/treegrid.src.js +126 -120
- package/modules/treemap.js +41 -41
- package/modules/treemap.js.map +1 -1
- package/modules/treemap.src.js +319 -254
- package/modules/variable-pie.js +1 -1
- package/modules/variable-pie.src.js +1 -1
- package/modules/variwide.js +1 -1
- package/modules/variwide.src.js +1 -1
- package/modules/vector.js +1 -1
- package/modules/vector.src.js +1 -1
- package/modules/venn.js +31 -31
- package/modules/venn.js.map +1 -1
- package/modules/venn.src.js +731 -721
- package/modules/windbarb.js +15 -15
- package/modules/windbarb.js.map +1 -1
- package/modules/windbarb.src.js +90 -62
- package/modules/wordcloud.js +23 -24
- package/modules/wordcloud.js.map +1 -1
- package/modules/wordcloud.src.js +897 -949
- package/modules/xrange.js +2 -2
- package/modules/xrange.js.map +1 -1
- package/modules/xrange.src.js +2 -1
- package/package.json +1 -1
- package/themes/avocado.js +1 -1
- package/themes/avocado.src.js +1 -1
- package/themes/dark-blue.js +1 -1
- package/themes/dark-blue.src.js +1 -1
- package/themes/dark-green.js +1 -1
- package/themes/dark-green.src.js +1 -1
- package/themes/dark-unica.js +1 -1
- package/themes/dark-unica.src.js +1 -1
- package/themes/gray.js +1 -1
- package/themes/gray.src.js +1 -1
- package/themes/grid-light.js +1 -1
- package/themes/grid-light.src.js +1 -1
- package/themes/grid.js +1 -1
- package/themes/grid.src.js +1 -1
- package/themes/high-contrast-dark.js +1 -1
- package/themes/high-contrast-dark.src.js +1 -1
- package/themes/high-contrast-light.js +1 -1
- package/themes/high-contrast-light.src.js +1 -1
- package/themes/sand-signika.js +1 -1
- package/themes/sand-signika.src.js +1 -1
- package/themes/skies.js +1 -1
- package/themes/skies.src.js +1 -1
- package/themes/sunset.js +1 -1
- package/themes/sunset.src.js +1 -1
- package/es-modules/Core/Axis/MapAxis.js +0 -157
- package/es-modules/Core/Color/Palette.js +0 -82
- package/es-modules/Extensions/Sonification/InstrumentDefinitions.js +0 -32
- package/es-modules/Mixins/ColorMapSeries.js +0 -82
- package/es-modules/Mixins/ColorSeries.js +0 -77
- package/es-modules/Mixins/DerivedSeries.js +0 -118
- package/es-modules/Mixins/DrawPoint.js +0 -81
- package/es-modules/Mixins/IndicatorRequired.js +0 -56
- package/es-modules/Mixins/Navigation.js +0 -54
- package/es-modules/Mixins/NelderMead.js +0 -132
- package/es-modules/Mixins/Polygon.js +0 -259
- package/es-modules/Mixins/ReduceArray.js +0 -54
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Highstock JS v9.
|
|
2
|
+
* @license Highstock JS v9.3.0 (2021-10-21)
|
|
3
3
|
*
|
|
4
4
|
* All technical indicators for Highcharts Stock
|
|
5
5
|
*
|
|
@@ -28,68 +28,6 @@
|
|
|
28
28
|
obj[path] = fn.apply(null, args);
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
|
-
_registerModule(_modules, 'Mixins/IndicatorRequired.js', [_modules['Core/Utilities.js']], function (U) {
|
|
32
|
-
/**
|
|
33
|
-
*
|
|
34
|
-
* (c) 2010-2021 Daniel Studencki
|
|
35
|
-
*
|
|
36
|
-
* License: www.highcharts.com/license
|
|
37
|
-
*
|
|
38
|
-
* !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
|
|
39
|
-
*
|
|
40
|
-
* */
|
|
41
|
-
var error = U.error;
|
|
42
|
-
/* eslint-disable no-invalid-this, valid-jsdoc */
|
|
43
|
-
var requiredIndicatorMixin = {
|
|
44
|
-
/**
|
|
45
|
-
* Check whether given indicator is loaded,
|
|
46
|
-
else throw error.
|
|
47
|
-
* @private
|
|
48
|
-
* @param {Highcharts.Indicator} indicator
|
|
49
|
-
* Indicator constructor function.
|
|
50
|
-
* @param {string} requiredIndicator
|
|
51
|
-
* Required indicator type.
|
|
52
|
-
* @param {string} type
|
|
53
|
-
* Type of indicator where function was called (parent).
|
|
54
|
-
* @param {Highcharts.IndicatorCallbackFunction} callback
|
|
55
|
-
* Callback which is triggered if the given indicator is loaded.
|
|
56
|
-
* Takes indicator as an argument.
|
|
57
|
-
* @param {string} errMessage
|
|
58
|
-
* Error message that will be logged in console.
|
|
59
|
-
* @return {boolean}
|
|
60
|
-
* Returns false when there is no required indicator loaded.
|
|
61
|
-
*/
|
|
62
|
-
isParentLoaded: function (indicator,
|
|
63
|
-
requiredIndicator,
|
|
64
|
-
type,
|
|
65
|
-
callback,
|
|
66
|
-
errMessage) {
|
|
67
|
-
if (indicator) {
|
|
68
|
-
return callback ? callback(indicator) : true;
|
|
69
|
-
}
|
|
70
|
-
error(errMessage || this.generateMessage(type, requiredIndicator));
|
|
71
|
-
return false;
|
|
72
|
-
},
|
|
73
|
-
/**
|
|
74
|
-
* @private
|
|
75
|
-
* @param {string} indicatorType
|
|
76
|
-
* Indicator type
|
|
77
|
-
* @param {string} required
|
|
78
|
-
* Required indicator
|
|
79
|
-
* @return {string}
|
|
80
|
-
* Error message
|
|
81
|
-
*/
|
|
82
|
-
generateMessage: function (indicatorType, required) {
|
|
83
|
-
return 'Error: "' + indicatorType +
|
|
84
|
-
'" indicator type requires "' + required +
|
|
85
|
-
'" indicator loaded before. Please read docs: ' +
|
|
86
|
-
'https://api.highcharts.com/highstock/plotOptions.' +
|
|
87
|
-
indicatorType;
|
|
88
|
-
}
|
|
89
|
-
};
|
|
90
|
-
|
|
91
|
-
return requiredIndicatorMixin;
|
|
92
|
-
});
|
|
93
31
|
_registerModule(_modules, 'Stock/Indicators/SMA/SMAComposition.js', [_modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (SeriesRegistry, U) {
|
|
94
32
|
/* *
|
|
95
33
|
*
|
|
@@ -102,37 +40,9 @@
|
|
|
102
40
|
ohlcProto = SeriesRegistry.seriesTypes.ohlc.prototype;
|
|
103
41
|
var addEvent = U.addEvent,
|
|
104
42
|
extend = U.extend;
|
|
105
|
-
/* *
|
|
106
|
-
*
|
|
107
|
-
* Composition
|
|
108
|
-
*
|
|
109
|
-
* */
|
|
110
|
-
addEvent(Series, 'init', function (eventOptions) {
|
|
111
|
-
// eslint-disable-next-line no-invalid-this
|
|
112
|
-
var series = this,
|
|
113
|
-
options = eventOptions.options;
|
|
114
|
-
if (options.useOhlcData &&
|
|
115
|
-
options.id !== 'highcharts-navigator-series') {
|
|
116
|
-
extend(series, {
|
|
117
|
-
pointValKey: ohlcProto.pointValKey,
|
|
118
|
-
// keys: ohlcProto.keys, // @todo potentially nonsense
|
|
119
|
-
pointArrayMap: ohlcProto.pointArrayMap,
|
|
120
|
-
toYData: ohlcProto.toYData
|
|
121
|
-
});
|
|
122
|
-
}
|
|
123
|
-
});
|
|
124
|
-
addEvent(Series, 'afterSetOptions', function (e) {
|
|
125
|
-
var options = e.options,
|
|
126
|
-
dataGrouping = options.dataGrouping;
|
|
127
|
-
if (dataGrouping &&
|
|
128
|
-
options.useOhlcData &&
|
|
129
|
-
options.id !== 'highcharts-navigator-series') {
|
|
130
|
-
dataGrouping.approximation = 'ohlc';
|
|
131
|
-
}
|
|
132
|
-
});
|
|
133
43
|
|
|
134
44
|
});
|
|
135
|
-
_registerModule(_modules, 'Stock/Indicators/SMA/SMAIndicator.js', [_modules['Core/Chart/Chart.js'], _modules['
|
|
45
|
+
_registerModule(_modules, 'Stock/Indicators/SMA/SMAIndicator.js', [_modules['Core/Chart/Chart.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (Chart, SeriesRegistry, U) {
|
|
136
46
|
/* *
|
|
137
47
|
*
|
|
138
48
|
* License: www.highcharts.com/license
|
|
@@ -164,7 +74,6 @@
|
|
|
164
74
|
merge = U.merge,
|
|
165
75
|
pick = U.pick,
|
|
166
76
|
splat = U.splat;
|
|
167
|
-
var generateMessage = RequiredIndicatorMixin.generateMessage;
|
|
168
77
|
/* *
|
|
169
78
|
*
|
|
170
79
|
* Class
|
|
@@ -278,12 +187,7 @@
|
|
|
278
187
|
* @private
|
|
279
188
|
*/
|
|
280
189
|
SMAIndicator.prototype.init = function (chart, options) {
|
|
281
|
-
var indicator = this
|
|
282
|
-
requiredIndicators = indicator.requireIndicators();
|
|
283
|
-
// Check whether all required indicators are loaded.
|
|
284
|
-
if (!requiredIndicators.allLoaded) {
|
|
285
|
-
return error(generateMessage(indicator.type, requiredIndicators.needed));
|
|
286
|
-
}
|
|
190
|
+
var indicator = this;
|
|
287
191
|
_super.prototype.init.call(indicator, chart, options);
|
|
288
192
|
// Only after series are linked indicator can be processed.
|
|
289
193
|
var linkedSeriesUnbiner = addEvent(Chart, 'afterLinkSeries',
|
|
@@ -409,31 +313,16 @@
|
|
|
409
313
|
compareToMain = series.options.compareToMain,
|
|
410
314
|
linkedParent = series.linkedParent;
|
|
411
315
|
_super.prototype.processData.apply(series, arguments);
|
|
412
|
-
if (
|
|
413
|
-
|
|
316
|
+
if (series.dataModify &&
|
|
317
|
+
linkedParent &&
|
|
318
|
+
linkedParent.dataModify &&
|
|
319
|
+
linkedParent.dataModify.compareValue &&
|
|
320
|
+
compareToMain) {
|
|
321
|
+
series.dataModify.compareValue =
|
|
322
|
+
linkedParent.dataModify.compareValue;
|
|
414
323
|
}
|
|
415
324
|
return;
|
|
416
325
|
};
|
|
417
|
-
/**
|
|
418
|
-
* @private
|
|
419
|
-
*/
|
|
420
|
-
SMAIndicator.prototype.requireIndicators = function () {
|
|
421
|
-
var obj = {
|
|
422
|
-
allLoaded: true
|
|
423
|
-
};
|
|
424
|
-
// Check whether all required indicators are loaded, else return
|
|
425
|
-
// the object with missing indicator's name.
|
|
426
|
-
this.requiredIndicators.forEach(function (indicator) {
|
|
427
|
-
if (SeriesRegistry.seriesTypes[indicator]) {
|
|
428
|
-
SeriesRegistry.seriesTypes[indicator].prototype.requireIndicators();
|
|
429
|
-
}
|
|
430
|
-
else {
|
|
431
|
-
obj.allLoaded = false;
|
|
432
|
-
obj.needed = indicator;
|
|
433
|
-
}
|
|
434
|
-
});
|
|
435
|
-
return obj;
|
|
436
|
-
};
|
|
437
326
|
/**
|
|
438
327
|
* The parameter allows setting line series type and use OHLC indicators.
|
|
439
328
|
* Data in OHLC format is required.
|
|
@@ -504,7 +393,7 @@
|
|
|
504
393
|
* example using OHLC data, index=2 means the indicator will be
|
|
505
394
|
* calculated using Low values.
|
|
506
395
|
*/
|
|
507
|
-
index:
|
|
396
|
+
index: 3,
|
|
508
397
|
/**
|
|
509
398
|
* The base period for indicator calculations. This is the number of
|
|
510
399
|
* data points which are taken into account for the indicator
|
|
@@ -524,8 +413,6 @@
|
|
|
524
413
|
hasDerivedData: true,
|
|
525
414
|
nameComponents: ['period'],
|
|
526
415
|
nameSuffixes: [],
|
|
527
|
-
// Defines on which other indicators is this indicator based on.
|
|
528
|
-
requiredIndicators: [],
|
|
529
416
|
useCommonDataGrouping: true
|
|
530
417
|
});
|
|
531
418
|
SeriesRegistry.registerSeriesType('sma', SMAIndicator);
|
|
@@ -554,6 +441,183 @@
|
|
|
554
441
|
|
|
555
442
|
return SMAIndicator;
|
|
556
443
|
});
|
|
444
|
+
_registerModule(_modules, 'Stock/Indicators/EMA/EMAIndicator.js', [_modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (SeriesRegistry, U) {
|
|
445
|
+
/* *
|
|
446
|
+
*
|
|
447
|
+
* License: www.highcharts.com/license
|
|
448
|
+
*
|
|
449
|
+
* !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
|
|
450
|
+
*
|
|
451
|
+
* */
|
|
452
|
+
var __extends = (this && this.__extends) || (function () {
|
|
453
|
+
var extendStatics = function (d,
|
|
454
|
+
b) {
|
|
455
|
+
extendStatics = Object.setPrototypeOf ||
|
|
456
|
+
({ __proto__: [] } instanceof Array && function (d,
|
|
457
|
+
b) { d.__proto__ = b; }) ||
|
|
458
|
+
function (d,
|
|
459
|
+
b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
|
|
460
|
+
return extendStatics(d, b);
|
|
461
|
+
};
|
|
462
|
+
return function (d, b) {
|
|
463
|
+
extendStatics(d, b);
|
|
464
|
+
function __() { this.constructor = d; }
|
|
465
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
466
|
+
};
|
|
467
|
+
})();
|
|
468
|
+
var SMAIndicator = SeriesRegistry.seriesTypes.sma;
|
|
469
|
+
var correctFloat = U.correctFloat,
|
|
470
|
+
isArray = U.isArray,
|
|
471
|
+
merge = U.merge;
|
|
472
|
+
/* *
|
|
473
|
+
*
|
|
474
|
+
* Class
|
|
475
|
+
*
|
|
476
|
+
* */
|
|
477
|
+
/**
|
|
478
|
+
* The EMA series type.
|
|
479
|
+
*
|
|
480
|
+
* @private
|
|
481
|
+
* @class
|
|
482
|
+
* @name Highcharts.seriesTypes.ema
|
|
483
|
+
*
|
|
484
|
+
* @augments Highcharts.Series
|
|
485
|
+
*/
|
|
486
|
+
var EMAIndicator = /** @class */ (function (_super) {
|
|
487
|
+
__extends(EMAIndicator, _super);
|
|
488
|
+
function EMAIndicator() {
|
|
489
|
+
var _this = _super !== null && _super.apply(this,
|
|
490
|
+
arguments) || this;
|
|
491
|
+
/* *
|
|
492
|
+
*
|
|
493
|
+
* Properties
|
|
494
|
+
*
|
|
495
|
+
* */
|
|
496
|
+
_this.data = void 0;
|
|
497
|
+
_this.options = void 0;
|
|
498
|
+
_this.points = void 0;
|
|
499
|
+
return _this;
|
|
500
|
+
}
|
|
501
|
+
/* *
|
|
502
|
+
*
|
|
503
|
+
* Functions
|
|
504
|
+
*
|
|
505
|
+
* */
|
|
506
|
+
EMAIndicator.prototype.accumulatePeriodPoints = function (period, index, yVal) {
|
|
507
|
+
var sum = 0,
|
|
508
|
+
i = 0,
|
|
509
|
+
y = 0;
|
|
510
|
+
while (i < period) {
|
|
511
|
+
y = index < 0 ? yVal[i] : yVal[i][index];
|
|
512
|
+
sum = sum + y;
|
|
513
|
+
i++;
|
|
514
|
+
}
|
|
515
|
+
return sum;
|
|
516
|
+
};
|
|
517
|
+
EMAIndicator.prototype.calculateEma = function (xVal, yVal, i, EMApercent, calEMA, index, SMA) {
|
|
518
|
+
var x = xVal[i - 1],
|
|
519
|
+
yValue = index < 0 ?
|
|
520
|
+
yVal[i - 1] :
|
|
521
|
+
yVal[i - 1][index],
|
|
522
|
+
y;
|
|
523
|
+
y = typeof calEMA === 'undefined' ?
|
|
524
|
+
SMA : correctFloat((yValue * EMApercent) +
|
|
525
|
+
(calEMA * (1 - EMApercent)));
|
|
526
|
+
return [x, y];
|
|
527
|
+
};
|
|
528
|
+
EMAIndicator.prototype.getValues = function (series, params) {
|
|
529
|
+
var period = params.period,
|
|
530
|
+
xVal = series.xData,
|
|
531
|
+
yVal = series.yData,
|
|
532
|
+
yValLen = yVal ? yVal.length : 0,
|
|
533
|
+
EMApercent = 2 / (period + 1),
|
|
534
|
+
sum = 0,
|
|
535
|
+
EMA = [],
|
|
536
|
+
xData = [],
|
|
537
|
+
yData = [],
|
|
538
|
+
index = -1,
|
|
539
|
+
SMA = 0,
|
|
540
|
+
calEMA,
|
|
541
|
+
EMAPoint,
|
|
542
|
+
i;
|
|
543
|
+
// Check period, if bigger than points length, skip
|
|
544
|
+
if (yValLen < period) {
|
|
545
|
+
return;
|
|
546
|
+
}
|
|
547
|
+
// Switch index for OHLC / Candlestick / Arearange
|
|
548
|
+
if (isArray(yVal[0])) {
|
|
549
|
+
index = params.index ? params.index : 0;
|
|
550
|
+
}
|
|
551
|
+
// Accumulate first N-points
|
|
552
|
+
sum = this.accumulatePeriodPoints(period, index, yVal);
|
|
553
|
+
// first point
|
|
554
|
+
SMA = sum / period;
|
|
555
|
+
// Calculate value one-by-one for each period in visible data
|
|
556
|
+
for (i = period; i < yValLen + 1; i++) {
|
|
557
|
+
EMAPoint = this.calculateEma(xVal, yVal, i, EMApercent, calEMA, index, SMA);
|
|
558
|
+
EMA.push(EMAPoint);
|
|
559
|
+
xData.push(EMAPoint[0]);
|
|
560
|
+
yData.push(EMAPoint[1]);
|
|
561
|
+
calEMA = EMAPoint[1];
|
|
562
|
+
}
|
|
563
|
+
return {
|
|
564
|
+
values: EMA,
|
|
565
|
+
xData: xData,
|
|
566
|
+
yData: yData
|
|
567
|
+
};
|
|
568
|
+
};
|
|
569
|
+
/**
|
|
570
|
+
* Exponential moving average indicator (EMA). This series requires the
|
|
571
|
+
* `linkedTo` option to be set.
|
|
572
|
+
*
|
|
573
|
+
* @sample stock/indicators/ema
|
|
574
|
+
* Exponential moving average indicator
|
|
575
|
+
*
|
|
576
|
+
* @extends plotOptions.sma
|
|
577
|
+
* @since 6.0.0
|
|
578
|
+
* @product highstock
|
|
579
|
+
* @requires stock/indicators/indicators
|
|
580
|
+
* @optionparent plotOptions.ema
|
|
581
|
+
*/
|
|
582
|
+
EMAIndicator.defaultOptions = merge(SMAIndicator.defaultOptions, {
|
|
583
|
+
params: {
|
|
584
|
+
/**
|
|
585
|
+
* The point index which indicator calculations will base. For
|
|
586
|
+
* example using OHLC data, index=2 means the indicator will be
|
|
587
|
+
* calculated using Low values.
|
|
588
|
+
*
|
|
589
|
+
* By default index value used to be set to 0. Since
|
|
590
|
+
* Highcharts Stock 7 by default index is set to 3
|
|
591
|
+
* which means that the ema indicator will be
|
|
592
|
+
* calculated using Close values.
|
|
593
|
+
*/
|
|
594
|
+
index: 3,
|
|
595
|
+
period: 9 // @merge 14 in v6.2
|
|
596
|
+
}
|
|
597
|
+
});
|
|
598
|
+
return EMAIndicator;
|
|
599
|
+
}(SMAIndicator));
|
|
600
|
+
SeriesRegistry.registerSeriesType('ema', EMAIndicator);
|
|
601
|
+
/* *
|
|
602
|
+
*
|
|
603
|
+
* Default Export
|
|
604
|
+
*
|
|
605
|
+
* */
|
|
606
|
+
/**
|
|
607
|
+
* A `EMA` series. If the [type](#series.ema.type) option is not
|
|
608
|
+
* specified, it is inherited from [chart.type](#chart.type).
|
|
609
|
+
*
|
|
610
|
+
* @extends series,plotOptions.ema
|
|
611
|
+
* @since 6.0.0
|
|
612
|
+
* @product highstock
|
|
613
|
+
* @excluding dataParser, dataURL
|
|
614
|
+
* @requires stock/indicators/indicators
|
|
615
|
+
* @apioption series.ema
|
|
616
|
+
*/
|
|
617
|
+
''; // adds doclet above to the transpiled file
|
|
618
|
+
|
|
619
|
+
return EMAIndicator;
|
|
620
|
+
});
|
|
557
621
|
_registerModule(_modules, 'Stock/Indicators/AD/ADIndicator.js', [_modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (SeriesRegistry, U) {
|
|
558
622
|
/* *
|
|
559
623
|
*
|
|
@@ -737,7 +801,7 @@
|
|
|
737
801
|
|
|
738
802
|
return ADIndicator;
|
|
739
803
|
});
|
|
740
|
-
_registerModule(_modules, 'Stock/Indicators/AO/AOIndicator.js', [_modules['Core/Globals.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']
|
|
804
|
+
_registerModule(_modules, 'Stock/Indicators/AO/AOIndicator.js', [_modules['Core/Globals.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (H, SeriesRegistry, U) {
|
|
741
805
|
/* *
|
|
742
806
|
*
|
|
743
807
|
* License: www.highcharts.com/license
|
|
@@ -919,7 +983,7 @@
|
|
|
919
983
|
* @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
|
|
920
984
|
* @since 7.0.0
|
|
921
985
|
*/
|
|
922
|
-
greaterBarColor:
|
|
986
|
+
greaterBarColor: "#06b535" /* positiveColor */,
|
|
923
987
|
/**
|
|
924
988
|
* Color of the Awesome oscillator series bar that is lower than the
|
|
925
989
|
* previous one. Note that if a `color` is defined, the `color`
|
|
@@ -931,7 +995,7 @@
|
|
|
931
995
|
* @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
|
|
932
996
|
* @since 7.0.0
|
|
933
997
|
*/
|
|
934
|
-
lowerBarColor:
|
|
998
|
+
lowerBarColor: "#f21313" /* negativeColor */,
|
|
935
999
|
threshold: 0,
|
|
936
1000
|
groupPadding: 0.2,
|
|
937
1001
|
pointPadding: 0.2,
|
|
@@ -980,7 +1044,7 @@
|
|
|
980
1044
|
|
|
981
1045
|
return AOIndicator;
|
|
982
1046
|
});
|
|
983
|
-
_registerModule(_modules, '
|
|
1047
|
+
_registerModule(_modules, 'Stock/Indicators/MultipleLinesComposition.js', [_modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (SeriesRegistry, U) {
|
|
984
1048
|
/**
|
|
985
1049
|
*
|
|
986
1050
|
* (c) 2010-2021 Wojciech Chmiel
|
|
@@ -990,118 +1054,96 @@
|
|
|
990
1054
|
* !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
|
|
991
1055
|
*
|
|
992
1056
|
* */
|
|
1057
|
+
var SMAIndicator = SeriesRegistry.seriesTypes.sma;
|
|
993
1058
|
var defined = U.defined,
|
|
994
1059
|
error = U.error,
|
|
995
1060
|
merge = U.merge;
|
|
996
|
-
|
|
1061
|
+
/* *
|
|
1062
|
+
*
|
|
1063
|
+
* Composition
|
|
1064
|
+
*
|
|
1065
|
+
* */
|
|
997
1066
|
/**
|
|
998
|
-
*
|
|
999
|
-
*
|
|
1000
|
-
*
|
|
1001
|
-
*
|
|
1002
|
-
*
|
|
1067
|
+
* Composition useful for all indicators that have more than one line. Compose
|
|
1068
|
+
* it with your implementation where you will provide the `getValues` method
|
|
1069
|
+
* appropriate to your indicator and `pointArrayMap`, `pointValKey`,
|
|
1070
|
+
* `linesApiNames` properties. Notice that `pointArrayMap` should be consistent
|
|
1071
|
+
* with the amount of lines calculated in the `getValues` method.
|
|
1003
1072
|
*
|
|
1004
1073
|
* @private
|
|
1005
1074
|
* @mixin multipleLinesMixin
|
|
1006
1075
|
*/
|
|
1007
|
-
var
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
pointArrayMap: ['top', 'bottom'],
|
|
1021
|
-
/**
|
|
1022
|
-
* Main line id.
|
|
1023
|
-
*
|
|
1024
|
-
* @private
|
|
1025
|
-
* @name multipleLinesMixin.pointValKey
|
|
1026
|
-
* @type {string}
|
|
1027
|
-
*/
|
|
1028
|
-
pointValKey: 'top',
|
|
1029
|
-
/**
|
|
1030
|
-
* Additional lines DOCS names. Elements of linesApiNames array should
|
|
1031
|
-
* be consistent with DOCS line names defined in your implementation.
|
|
1032
|
-
* Notice that linesApiNames should have decreased amount of elements
|
|
1033
|
-
* relative to pointArrayMap (without pointValKey).
|
|
1034
|
-
*
|
|
1035
|
-
* @private
|
|
1036
|
-
* @name multipleLinesMixin.linesApiNames
|
|
1037
|
-
* @type {Array<string>}
|
|
1038
|
-
*/
|
|
1039
|
-
linesApiNames: ['bottomLine'],
|
|
1040
|
-
/**
|
|
1041
|
-
* Create translatedLines Collection based on pointArrayMap.
|
|
1042
|
-
*
|
|
1043
|
-
* @private
|
|
1044
|
-
* @function multipleLinesMixin.getTranslatedLinesNames
|
|
1045
|
-
* @param {string} [excludedValue]
|
|
1046
|
-
* Main line id
|
|
1047
|
-
* @return {Array<string>}
|
|
1048
|
-
* Returns translated lines names without excluded value.
|
|
1049
|
-
*/
|
|
1050
|
-
getTranslatedLinesNames: function (excludedValue) {
|
|
1051
|
-
var translatedLines = [];
|
|
1052
|
-
(this.pointArrayMap || []).forEach(function (propertyName) {
|
|
1053
|
-
if (propertyName !== excludedValue) {
|
|
1054
|
-
translatedLines.push('plot' +
|
|
1055
|
-
propertyName.charAt(0).toUpperCase() +
|
|
1056
|
-
propertyName.slice(1));
|
|
1057
|
-
}
|
|
1058
|
-
});
|
|
1059
|
-
return translatedLines;
|
|
1060
|
-
},
|
|
1076
|
+
var MultipleLinesComposition;
|
|
1077
|
+
(function (MultipleLinesComposition) {
|
|
1078
|
+
/* *
|
|
1079
|
+
*
|
|
1080
|
+
* Declarations
|
|
1081
|
+
*
|
|
1082
|
+
* */
|
|
1083
|
+
/* *
|
|
1084
|
+
*
|
|
1085
|
+
* Constants
|
|
1086
|
+
*
|
|
1087
|
+
* */
|
|
1088
|
+
var composedClasses = [];
|
|
1061
1089
|
/**
|
|
1090
|
+
* Additional lines DOCS names. Elements of linesApiNames array should
|
|
1091
|
+
* be consistent with DOCS line names defined in your implementation.
|
|
1092
|
+
* Notice that linesApiNames should have decreased amount of elements
|
|
1093
|
+
* relative to pointArrayMap (without pointValKey).
|
|
1094
|
+
*
|
|
1062
1095
|
* @private
|
|
1063
|
-
* @
|
|
1064
|
-
* @
|
|
1065
|
-
* Indicator point
|
|
1066
|
-
* @return {Array<number>}
|
|
1067
|
-
* Returns point Y value for all lines
|
|
1096
|
+
* @name multipleLinesMixin.linesApiNames
|
|
1097
|
+
* @type {Array<string>}
|
|
1068
1098
|
*/
|
|
1069
|
-
|
|
1070
|
-
var pointColl = [];
|
|
1071
|
-
(this.pointArrayMap || []).forEach(function (propertyName) {
|
|
1072
|
-
pointColl.push(point[propertyName]);
|
|
1073
|
-
});
|
|
1074
|
-
return pointColl;
|
|
1075
|
-
},
|
|
1099
|
+
var linesApiNames = ['bottomLine'];
|
|
1076
1100
|
/**
|
|
1077
|
-
*
|
|
1101
|
+
* Lines ids. Required to plot appropriate amount of lines.
|
|
1102
|
+
* Notice that pointArrayMap should have more elements than
|
|
1103
|
+
* linesApiNames, because it contains main line and additional lines ids.
|
|
1104
|
+
* Also it should be consistent with amount of lines calculated in
|
|
1105
|
+
* getValues method from your implementation.
|
|
1078
1106
|
*
|
|
1079
1107
|
* @private
|
|
1080
|
-
* @
|
|
1081
|
-
* @
|
|
1108
|
+
* @name multipleLinesMixin.pointArrayMap
|
|
1109
|
+
* @type {Array<string>}
|
|
1082
1110
|
*/
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
|
|
1111
|
+
var pointArrayMap = ['top', 'bottom'];
|
|
1112
|
+
/**
|
|
1113
|
+
* Main line id.
|
|
1114
|
+
*
|
|
1115
|
+
* @private
|
|
1116
|
+
* @name multipleLinesMixin.pointValKey
|
|
1117
|
+
* @type {string}
|
|
1118
|
+
*/
|
|
1119
|
+
var pointValKey = 'top';
|
|
1120
|
+
/* *
|
|
1121
|
+
*
|
|
1122
|
+
* Functions
|
|
1123
|
+
*
|
|
1124
|
+
* */
|
|
1125
|
+
/* eslint-disable valid-jsdoc */
|
|
1126
|
+
/**
|
|
1127
|
+
* @private
|
|
1128
|
+
*/
|
|
1129
|
+
function compose(IndicatorClass) {
|
|
1130
|
+
if (composedClasses.indexOf(IndicatorClass) === -1) {
|
|
1131
|
+
composedClasses.push(IndicatorClass);
|
|
1132
|
+
var proto = IndicatorClass.prototype;
|
|
1133
|
+
proto.linesApiNames = (proto.linesApiNames ||
|
|
1134
|
+
linesApiNames.slice());
|
|
1135
|
+
proto.pointArrayMap = (proto.pointArrayMap ||
|
|
1136
|
+
pointArrayMap.slice());
|
|
1137
|
+
proto.pointValKey = (proto.pointValKey ||
|
|
1138
|
+
pointValKey);
|
|
1139
|
+
proto.drawGraph = drawGraph;
|
|
1140
|
+
proto.toYData = toYData;
|
|
1141
|
+
proto.translate = translate;
|
|
1142
|
+
proto.getTranslatedLinesNames = getTranslatedLinesNames;
|
|
1143
|
+
}
|
|
1144
|
+
return IndicatorClass;
|
|
1145
|
+
}
|
|
1146
|
+
MultipleLinesComposition.compose = compose;
|
|
1105
1147
|
/**
|
|
1106
1148
|
* Draw main and additional lines.
|
|
1107
1149
|
*
|
|
@@ -1109,12 +1151,11 @@
|
|
|
1109
1151
|
* @function multipleLinesMixin.drawGraph
|
|
1110
1152
|
* @return {void}
|
|
1111
1153
|
*/
|
|
1112
|
-
|
|
1154
|
+
function drawGraph() {
|
|
1113
1155
|
var indicator = this,
|
|
1114
1156
|
pointValKey = indicator.pointValKey,
|
|
1115
1157
|
linesApiNames = indicator.linesApiNames,
|
|
1116
1158
|
mainLinePoints = indicator.points,
|
|
1117
|
-
pointsLength = mainLinePoints.length,
|
|
1118
1159
|
mainLineOptions = indicator.options,
|
|
1119
1160
|
mainLinePath = indicator.graph,
|
|
1120
1161
|
gappedExtend = {
|
|
@@ -1124,7 +1165,8 @@
|
|
|
1124
1165
|
},
|
|
1125
1166
|
// additional lines point place holders:
|
|
1126
1167
|
secondaryLines = [],
|
|
1127
|
-
secondaryLinesNames = indicator.getTranslatedLinesNames(pointValKey)
|
|
1168
|
+
secondaryLinesNames = indicator.getTranslatedLinesNames(pointValKey);
|
|
1169
|
+
var pointsLength = mainLinePoints.length,
|
|
1128
1170
|
point;
|
|
1129
1171
|
// Generate points for additional lines:
|
|
1130
1172
|
secondaryLinesNames.forEach(function (plotLine, index) {
|
|
@@ -1155,7 +1197,7 @@
|
|
|
1155
1197
|
' at mixin/multiple-line.js:34');
|
|
1156
1198
|
}
|
|
1157
1199
|
indicator.graph = indicator['graph' + lineName];
|
|
1158
|
-
|
|
1200
|
+
SMAIndicator.prototype.drawGraph.call(indicator);
|
|
1159
1201
|
// Now save lines:
|
|
1160
1202
|
indicator['graph' + lineName] = indicator.graph;
|
|
1161
1203
|
}
|
|
@@ -1169,13 +1211,82 @@
|
|
|
1169
1211
|
indicator.points = mainLinePoints;
|
|
1170
1212
|
indicator.options = mainLineOptions;
|
|
1171
1213
|
indicator.graph = mainLinePath;
|
|
1172
|
-
|
|
1214
|
+
SMAIndicator.prototype.drawGraph.call(indicator);
|
|
1173
1215
|
}
|
|
1174
|
-
|
|
1216
|
+
/**
|
|
1217
|
+
* Create translatedLines Collection based on pointArrayMap.
|
|
1218
|
+
*
|
|
1219
|
+
* @private
|
|
1220
|
+
* @function multipleLinesMixin.getTranslatedLinesNames
|
|
1221
|
+
* @param {string} [excludedValue]
|
|
1222
|
+
* Main line id
|
|
1223
|
+
* @return {Array<string>}
|
|
1224
|
+
* Returns translated lines names without excluded value.
|
|
1225
|
+
*/
|
|
1226
|
+
function getTranslatedLinesNames(excludedValue) {
|
|
1227
|
+
var translatedLines = [];
|
|
1228
|
+
(this.pointArrayMap || []).forEach(function (propertyName) {
|
|
1229
|
+
if (propertyName !== excludedValue) {
|
|
1230
|
+
translatedLines.push('plot' +
|
|
1231
|
+
propertyName.charAt(0).toUpperCase() +
|
|
1232
|
+
propertyName.slice(1));
|
|
1233
|
+
}
|
|
1234
|
+
});
|
|
1235
|
+
return translatedLines;
|
|
1236
|
+
}
|
|
1237
|
+
/**
|
|
1238
|
+
* @private
|
|
1239
|
+
* @function multipleLinesMixin.toYData
|
|
1240
|
+
* @param {Highcharts.Point} point
|
|
1241
|
+
* Indicator point
|
|
1242
|
+
* @return {Array<number>}
|
|
1243
|
+
* Returns point Y value for all lines
|
|
1244
|
+
*/
|
|
1245
|
+
function toYData(point) {
|
|
1246
|
+
var pointColl = [];
|
|
1247
|
+
(this.pointArrayMap || []).forEach(function (propertyName) {
|
|
1248
|
+
pointColl.push(point[propertyName]);
|
|
1249
|
+
});
|
|
1250
|
+
return pointColl;
|
|
1251
|
+
}
|
|
1252
|
+
/**
|
|
1253
|
+
* Add lines plot pixel values.
|
|
1254
|
+
*
|
|
1255
|
+
* @private
|
|
1256
|
+
* @function multipleLinesMixin.translate
|
|
1257
|
+
* @return {void}
|
|
1258
|
+
*/
|
|
1259
|
+
function translate() {
|
|
1260
|
+
var indicator = this,
|
|
1261
|
+
pointArrayMap = indicator.pointArrayMap;
|
|
1262
|
+
var LinesNames = [],
|
|
1263
|
+
value;
|
|
1264
|
+
LinesNames = indicator.getTranslatedLinesNames();
|
|
1265
|
+
SMAIndicator.prototype.translate.apply(indicator, arguments);
|
|
1266
|
+
indicator.points.forEach(function (point) {
|
|
1267
|
+
pointArrayMap.forEach(function (propertyName, i) {
|
|
1268
|
+
value = point[propertyName];
|
|
1269
|
+
// If the modifier, like for example compare exists,
|
|
1270
|
+
// modified the original value by that method, #15867.
|
|
1271
|
+
if (indicator.dataModify) {
|
|
1272
|
+
value = indicator.dataModify.modifyValue(value);
|
|
1273
|
+
}
|
|
1274
|
+
if (value !== null) {
|
|
1275
|
+
point[LinesNames[i]] = indicator.yAxis.toPixels(value, true);
|
|
1276
|
+
}
|
|
1277
|
+
});
|
|
1278
|
+
});
|
|
1279
|
+
}
|
|
1280
|
+
})(MultipleLinesComposition || (MultipleLinesComposition = {}));
|
|
1281
|
+
/* *
|
|
1282
|
+
*
|
|
1283
|
+
* Default Export
|
|
1284
|
+
*
|
|
1285
|
+
* */
|
|
1175
1286
|
|
|
1176
|
-
return
|
|
1287
|
+
return MultipleLinesComposition;
|
|
1177
1288
|
});
|
|
1178
|
-
_registerModule(_modules, 'Stock/Indicators/Aroon/AroonIndicator.js', [_modules['
|
|
1289
|
+
_registerModule(_modules, 'Stock/Indicators/Aroon/AroonIndicator.js', [_modules['Stock/Indicators/MultipleLinesComposition.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (MultipleLinesComposition, SeriesRegistry, U) {
|
|
1179
1290
|
/* *
|
|
1180
1291
|
*
|
|
1181
1292
|
* License: www.highcharts.com/license
|
|
@@ -1364,12 +1475,9 @@
|
|
|
1364
1475
|
linesApiNames: ['aroonDown'],
|
|
1365
1476
|
nameBase: 'Aroon',
|
|
1366
1477
|
pointArrayMap: ['y', 'aroonDown'],
|
|
1367
|
-
pointValKey: 'y'
|
|
1368
|
-
drawGraph: MultipleLinesMixin.drawGraph,
|
|
1369
|
-
getTranslatedLinesNames: MultipleLinesMixin.getTranslatedLinesNames,
|
|
1370
|
-
toYData: MultipleLinesMixin.toYData,
|
|
1371
|
-
translate: MultipleLinesMixin.translate
|
|
1478
|
+
pointValKey: 'y'
|
|
1372
1479
|
});
|
|
1480
|
+
MultipleLinesComposition.compose(AroonIndicator);
|
|
1373
1481
|
SeriesRegistry.registerSeriesType('aroon', AroonIndicator);
|
|
1374
1482
|
/* *
|
|
1375
1483
|
*
|
|
@@ -1394,7 +1502,7 @@
|
|
|
1394
1502
|
|
|
1395
1503
|
return AroonIndicator;
|
|
1396
1504
|
});
|
|
1397
|
-
_registerModule(_modules, 'Stock/Indicators/AroonOscillator/AroonOscillatorIndicator.js', [_modules['
|
|
1505
|
+
_registerModule(_modules, 'Stock/Indicators/AroonOscillator/AroonOscillatorIndicator.js', [_modules['Stock/Indicators/MultipleLinesComposition.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (MultipleLinesComposition, SeriesRegistry, U) {
|
|
1398
1506
|
/* *
|
|
1399
1507
|
*
|
|
1400
1508
|
* License: www.highcharts.com/license
|
|
@@ -1439,6 +1547,11 @@
|
|
|
1439
1547
|
var AroonOscillatorIndicator = /** @class */ (function (_super) {
|
|
1440
1548
|
__extends(AroonOscillatorIndicator, _super);
|
|
1441
1549
|
function AroonOscillatorIndicator() {
|
|
1550
|
+
/* *
|
|
1551
|
+
*
|
|
1552
|
+
* Static Properties
|
|
1553
|
+
*
|
|
1554
|
+
* */
|
|
1442
1555
|
var _this = _super !== null && _super.apply(this,
|
|
1443
1556
|
arguments) || this;
|
|
1444
1557
|
/* *
|
|
@@ -1481,14 +1594,6 @@
|
|
|
1481
1594
|
yData: yData
|
|
1482
1595
|
};
|
|
1483
1596
|
};
|
|
1484
|
-
AroonOscillatorIndicator.prototype.init = function () {
|
|
1485
|
-
var args = arguments,
|
|
1486
|
-
ctx = this;
|
|
1487
|
-
requiredIndicator.isParentLoaded(AROON, 'aroon', ctx.type, function (indicator) {
|
|
1488
|
-
indicator.prototype.init.apply(ctx, args);
|
|
1489
|
-
return;
|
|
1490
|
-
});
|
|
1491
|
-
};
|
|
1492
1597
|
/**
|
|
1493
1598
|
* Aroon Oscillator. This series requires the `linkedTo` option to be set
|
|
1494
1599
|
* and should be loaded after the `stock/indicators/indicators.js` and
|
|
@@ -1516,12 +1621,13 @@
|
|
|
1516
1621
|
});
|
|
1517
1622
|
return AroonOscillatorIndicator;
|
|
1518
1623
|
}(AroonIndicator));
|
|
1519
|
-
extend(AroonOscillatorIndicator.prototype,
|
|
1624
|
+
extend(AroonOscillatorIndicator.prototype, {
|
|
1520
1625
|
nameBase: 'Aroon Oscillator',
|
|
1626
|
+
linesApiNames: [],
|
|
1521
1627
|
pointArrayMap: ['y'],
|
|
1522
|
-
pointValKey: 'y'
|
|
1523
|
-
|
|
1524
|
-
|
|
1628
|
+
pointValKey: 'y'
|
|
1629
|
+
});
|
|
1630
|
+
MultipleLinesComposition.compose(AroonIndicator);
|
|
1525
1631
|
SeriesRegistry.registerSeriesType('aroonoscillator', AroonOscillatorIndicator);
|
|
1526
1632
|
/* *
|
|
1527
1633
|
*
|
|
@@ -1733,7 +1839,7 @@
|
|
|
1733
1839
|
|
|
1734
1840
|
return ATRIndicator;
|
|
1735
1841
|
});
|
|
1736
|
-
_registerModule(_modules, 'Stock/Indicators/BB/BBIndicator.js', [_modules['
|
|
1842
|
+
_registerModule(_modules, 'Stock/Indicators/BB/BBIndicator.js', [_modules['Stock/Indicators/MultipleLinesComposition.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (MultipleLinesComposition, SeriesRegistry, U) {
|
|
1737
1843
|
/**
|
|
1738
1844
|
*
|
|
1739
1845
|
* License: www.highcharts.com/license
|
|
@@ -1761,6 +1867,11 @@
|
|
|
1761
1867
|
var extend = U.extend,
|
|
1762
1868
|
isArray = U.isArray,
|
|
1763
1869
|
merge = U.merge;
|
|
1870
|
+
/* *
|
|
1871
|
+
*
|
|
1872
|
+
* Functions
|
|
1873
|
+
*
|
|
1874
|
+
* */
|
|
1764
1875
|
/* eslint-disable valid-jsdoc */
|
|
1765
1876
|
// Utils:
|
|
1766
1877
|
/**
|
|
@@ -1780,7 +1891,11 @@
|
|
|
1780
1891
|
std = Math.sqrt(variance);
|
|
1781
1892
|
return std;
|
|
1782
1893
|
}
|
|
1783
|
-
/*
|
|
1894
|
+
/* *
|
|
1895
|
+
*
|
|
1896
|
+
* Class
|
|
1897
|
+
*
|
|
1898
|
+
* */
|
|
1784
1899
|
/**
|
|
1785
1900
|
* Bollinger Bands series type.
|
|
1786
1901
|
*
|
|
@@ -1793,18 +1908,28 @@
|
|
|
1793
1908
|
var BBIndicator = /** @class */ (function (_super) {
|
|
1794
1909
|
__extends(BBIndicator, _super);
|
|
1795
1910
|
function BBIndicator() {
|
|
1911
|
+
/* *
|
|
1912
|
+
*
|
|
1913
|
+
* Static Properties
|
|
1914
|
+
*
|
|
1915
|
+
* */
|
|
1796
1916
|
var _this = _super !== null && _super.apply(this,
|
|
1797
1917
|
arguments) || this;
|
|
1798
1918
|
/* *
|
|
1799
|
-
|
|
1800
|
-
|
|
1801
|
-
|
|
1802
|
-
|
|
1919
|
+
*
|
|
1920
|
+
* Properties
|
|
1921
|
+
*
|
|
1922
|
+
* */
|
|
1803
1923
|
_this.data = void 0;
|
|
1804
1924
|
_this.options = void 0;
|
|
1805
1925
|
_this.points = void 0;
|
|
1806
1926
|
return _this;
|
|
1807
1927
|
}
|
|
1928
|
+
/* *
|
|
1929
|
+
*
|
|
1930
|
+
* Functions
|
|
1931
|
+
*
|
|
1932
|
+
* */
|
|
1808
1933
|
BBIndicator.prototype.init = function () {
|
|
1809
1934
|
SeriesRegistry.seriesTypes.sma.prototype.init.apply(this, arguments);
|
|
1810
1935
|
// Set default color for lines:
|
|
@@ -1942,12 +2067,9 @@
|
|
|
1942
2067
|
pointArrayMap: ['top', 'middle', 'bottom'],
|
|
1943
2068
|
pointValKey: 'middle',
|
|
1944
2069
|
nameComponents: ['period', 'standardDeviation'],
|
|
1945
|
-
linesApiNames: ['topLine', 'bottomLine']
|
|
1946
|
-
drawGraph: MultipleLinesMixin.drawGraph,
|
|
1947
|
-
getTranslatedLinesNames: MultipleLinesMixin.getTranslatedLinesNames,
|
|
1948
|
-
translate: MultipleLinesMixin.translate,
|
|
1949
|
-
toYData: MultipleLinesMixin.toYData
|
|
2070
|
+
linesApiNames: ['topLine', 'bottomLine']
|
|
1950
2071
|
});
|
|
2072
|
+
MultipleLinesComposition.compose(BBIndicator);
|
|
1951
2073
|
SeriesRegistry.registerSeriesType('bb', BBIndicator);
|
|
1952
2074
|
/* *
|
|
1953
2075
|
*
|
|
@@ -2390,7 +2512,7 @@
|
|
|
2390
2512
|
|
|
2391
2513
|
return CMFIndicator;
|
|
2392
2514
|
});
|
|
2393
|
-
_registerModule(_modules, 'Stock/Indicators/DMI/DMIIndicator.js', [_modules['
|
|
2515
|
+
_registerModule(_modules, 'Stock/Indicators/DMI/DMIIndicator.js', [_modules['Stock/Indicators/MultipleLinesComposition.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (MultipleLinesComposition, SeriesRegistry, U) {
|
|
2394
2516
|
/* *
|
|
2395
2517
|
* (c) 2010-2021 Rafal Sebestjanski
|
|
2396
2518
|
*
|
|
@@ -2439,7 +2561,20 @@
|
|
|
2439
2561
|
var DMIIndicator = /** @class */ (function (_super) {
|
|
2440
2562
|
__extends(DMIIndicator, _super);
|
|
2441
2563
|
function DMIIndicator() {
|
|
2442
|
-
|
|
2564
|
+
/* *
|
|
2565
|
+
*
|
|
2566
|
+
* Static Properties
|
|
2567
|
+
*
|
|
2568
|
+
* */
|
|
2569
|
+
var _this = _super !== null && _super.apply(this,
|
|
2570
|
+
arguments) || this;
|
|
2571
|
+
/* *
|
|
2572
|
+
*
|
|
2573
|
+
* Properties
|
|
2574
|
+
*
|
|
2575
|
+
* */
|
|
2576
|
+
_this.options = void 0;
|
|
2577
|
+
return _this;
|
|
2443
2578
|
}
|
|
2444
2579
|
/* *
|
|
2445
2580
|
*
|
|
@@ -2609,7 +2744,7 @@
|
|
|
2609
2744
|
*
|
|
2610
2745
|
* @type {Highcharts.ColorString}
|
|
2611
2746
|
*/
|
|
2612
|
-
lineColor:
|
|
2747
|
+
lineColor: "#06b535" /* positiveColor */ // green-ish
|
|
2613
2748
|
}
|
|
2614
2749
|
},
|
|
2615
2750
|
/**
|
|
@@ -2629,7 +2764,7 @@
|
|
|
2629
2764
|
*
|
|
2630
2765
|
* @type {Highcharts.ColorString}
|
|
2631
2766
|
*/
|
|
2632
|
-
lineColor:
|
|
2767
|
+
lineColor: "#f21313" /* negativeColor */ // red-ish
|
|
2633
2768
|
}
|
|
2634
2769
|
},
|
|
2635
2770
|
dataGrouping: {
|
|
@@ -2640,15 +2775,12 @@
|
|
|
2640
2775
|
}(SMAIndicator));
|
|
2641
2776
|
extend(DMIIndicator.prototype, {
|
|
2642
2777
|
nameBase: 'DMI',
|
|
2778
|
+
linesApiNames: ['plusDILine', 'minusDILine'],
|
|
2643
2779
|
pointArrayMap: ['y', 'plusDI', 'minusDI'],
|
|
2644
2780
|
parallelArrays: ['x', 'y', 'plusDI', 'minusDI'],
|
|
2645
|
-
pointValKey: 'y'
|
|
2646
|
-
linesApiNames: ['plusDILine', 'minusDILine'],
|
|
2647
|
-
drawGraph: MultipleLinesMixin.drawGraph,
|
|
2648
|
-
getTranslatedLinesNames: MultipleLinesMixin.getTranslatedLinesNames,
|
|
2649
|
-
translate: MultipleLinesMixin.translate,
|
|
2650
|
-
toYData: MultipleLinesMixin.toYData
|
|
2781
|
+
pointValKey: 'y'
|
|
2651
2782
|
});
|
|
2783
|
+
MultipleLinesComposition.compose(DMIIndicator);
|
|
2652
2784
|
SeriesRegistry.registerSeriesType('dmi', DMIIndicator);
|
|
2653
2785
|
/* *
|
|
2654
2786
|
*
|
|
@@ -2785,261 +2917,82 @@
|
|
|
2785
2917
|
periodIndex = j + period - 1;
|
|
2786
2918
|
rangeIndex = j + range - 1;
|
|
2787
2919
|
// adding the last period point
|
|
2788
|
-
sum = accumulatePoints(sum, yVal, periodIndex, index);
|
|
2789
|
-
price = pick(yVal[rangeIndex][index], yVal[rangeIndex]);
|
|
2790
|
-
oscillator = price - sum / period;
|
|
2791
|
-
// substracting the first period point
|
|
2792
|
-
sum = accumulatePoints(sum, yVal, j, index, true);
|
|
2793
|
-
DPO.push([xVal[rangeIndex], oscillator]);
|
|
2794
|
-
xData.push(xVal[rangeIndex]);
|
|
2795
|
-
yData.push(oscillator);
|
|
2796
|
-
}
|
|
2797
|
-
return {
|
|
2798
|
-
values: DPO,
|
|
2799
|
-
xData: xData,
|
|
2800
|
-
yData: yData
|
|
2801
|
-
};
|
|
2802
|
-
};
|
|
2803
|
-
/**
|
|
2804
|
-
* Detrended Price Oscillator. This series requires the `linkedTo` option to
|
|
2805
|
-
* be set and should be loaded after the `stock/indicators/indicators.js`.
|
|
2806
|
-
*
|
|
2807
|
-
* @sample {highstock} stock/indicators/dpo
|
|
2808
|
-
* Detrended Price Oscillator
|
|
2809
|
-
*
|
|
2810
|
-
* @extends plotOptions.sma
|
|
2811
|
-
* @since 7.0.0
|
|
2812
|
-
* @product highstock
|
|
2813
|
-
* @excluding allAreas, colorAxis, compare, compareBase, joinBy, keys,
|
|
2814
|
-
* navigatorOptions, pointInterval, pointIntervalUnit,
|
|
2815
|
-
* pointPlacement, pointRange, pointStart, showInNavigator,
|
|
2816
|
-
* stacking
|
|
2817
|
-
* @requires stock/indicators/indicators
|
|
2818
|
-
* @requires stock/indicators/dpo
|
|
2819
|
-
* @optionparent plotOptions.dpo
|
|
2820
|
-
*/
|
|
2821
|
-
DPOIndicator.defaultOptions = merge(SMAIndicator.defaultOptions, {
|
|
2822
|
-
/**
|
|
2823
|
-
* Parameters used in calculation of Detrended Price Oscillator series
|
|
2824
|
-
* points.
|
|
2825
|
-
*/
|
|
2826
|
-
params: {
|
|
2827
|
-
index: 0,
|
|
2828
|
-
/**
|
|
2829
|
-
* Period for Detrended Price Oscillator
|
|
2830
|
-
*/
|
|
2831
|
-
period: 21
|
|
2832
|
-
}
|
|
2833
|
-
});
|
|
2834
|
-
return DPOIndicator;
|
|
2835
|
-
}(SMAIndicator));
|
|
2836
|
-
extend(DPOIndicator.prototype, {
|
|
2837
|
-
nameBase: 'DPO'
|
|
2838
|
-
});
|
|
2839
|
-
SeriesRegistry.registerSeriesType('dpo', DPOIndicator);
|
|
2840
|
-
/* *
|
|
2841
|
-
*
|
|
2842
|
-
* Default Export
|
|
2843
|
-
*
|
|
2844
|
-
* */
|
|
2845
|
-
/**
|
|
2846
|
-
* A Detrended Price Oscillator. If the [type](#series.dpo.type) option is not
|
|
2847
|
-
* specified, it is inherited from [chart.type](#chart.type).
|
|
2848
|
-
*
|
|
2849
|
-
* @extends series,plotOptions.dpo
|
|
2850
|
-
* @since 7.0.0
|
|
2851
|
-
* @product highstock
|
|
2852
|
-
* @excluding allAreas, colorAxis, compare, compareBase, dataParser, dataURL,
|
|
2853
|
-
* joinBy, keys, navigatorOptions, pointInterval, pointIntervalUnit,
|
|
2854
|
-
* pointPlacement, pointRange, pointStart, showInNavigator, stacking
|
|
2855
|
-
* @requires stock/indicators/indicators
|
|
2856
|
-
* @requires stock/indicators/dpo
|
|
2857
|
-
* @apioption series.dpo
|
|
2858
|
-
*/
|
|
2859
|
-
''; // to include the above in the js output'
|
|
2860
|
-
|
|
2861
|
-
return DPOIndicator;
|
|
2862
|
-
});
|
|
2863
|
-
_registerModule(_modules, 'Stock/Indicators/EMA/EMAIndicator.js', [_modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (SeriesRegistry, U) {
|
|
2864
|
-
/* *
|
|
2865
|
-
*
|
|
2866
|
-
* License: www.highcharts.com/license
|
|
2867
|
-
*
|
|
2868
|
-
* !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
|
|
2869
|
-
*
|
|
2870
|
-
* */
|
|
2871
|
-
var __extends = (this && this.__extends) || (function () {
|
|
2872
|
-
var extendStatics = function (d,
|
|
2873
|
-
b) {
|
|
2874
|
-
extendStatics = Object.setPrototypeOf ||
|
|
2875
|
-
({ __proto__: [] } instanceof Array && function (d,
|
|
2876
|
-
b) { d.__proto__ = b; }) ||
|
|
2877
|
-
function (d,
|
|
2878
|
-
b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
|
|
2879
|
-
return extendStatics(d, b);
|
|
2880
|
-
};
|
|
2881
|
-
return function (d, b) {
|
|
2882
|
-
extendStatics(d, b);
|
|
2883
|
-
function __() { this.constructor = d; }
|
|
2884
|
-
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
2885
|
-
};
|
|
2886
|
-
})();
|
|
2887
|
-
var SMAIndicator = SeriesRegistry.seriesTypes.sma;
|
|
2888
|
-
var correctFloat = U.correctFloat,
|
|
2889
|
-
isArray = U.isArray,
|
|
2890
|
-
merge = U.merge;
|
|
2891
|
-
/* *
|
|
2892
|
-
*
|
|
2893
|
-
* Class
|
|
2894
|
-
*
|
|
2895
|
-
* */
|
|
2896
|
-
/**
|
|
2897
|
-
* The EMA series type.
|
|
2898
|
-
*
|
|
2899
|
-
* @private
|
|
2900
|
-
* @class
|
|
2901
|
-
* @name Highcharts.seriesTypes.ema
|
|
2902
|
-
*
|
|
2903
|
-
* @augments Highcharts.Series
|
|
2904
|
-
*/
|
|
2905
|
-
var EMAIndicator = /** @class */ (function (_super) {
|
|
2906
|
-
__extends(EMAIndicator, _super);
|
|
2907
|
-
function EMAIndicator() {
|
|
2908
|
-
var _this = _super !== null && _super.apply(this,
|
|
2909
|
-
arguments) || this;
|
|
2910
|
-
/* *
|
|
2911
|
-
*
|
|
2912
|
-
* Properties
|
|
2913
|
-
*
|
|
2914
|
-
* */
|
|
2915
|
-
_this.data = void 0;
|
|
2916
|
-
_this.options = void 0;
|
|
2917
|
-
_this.points = void 0;
|
|
2918
|
-
return _this;
|
|
2919
|
-
}
|
|
2920
|
-
/* *
|
|
2921
|
-
*
|
|
2922
|
-
* Functions
|
|
2923
|
-
*
|
|
2924
|
-
* */
|
|
2925
|
-
EMAIndicator.prototype.accumulatePeriodPoints = function (period, index, yVal) {
|
|
2926
|
-
var sum = 0,
|
|
2927
|
-
i = 0,
|
|
2928
|
-
y = 0;
|
|
2929
|
-
while (i < period) {
|
|
2930
|
-
y = index < 0 ? yVal[i] : yVal[i][index];
|
|
2931
|
-
sum = sum + y;
|
|
2932
|
-
i++;
|
|
2933
|
-
}
|
|
2934
|
-
return sum;
|
|
2935
|
-
};
|
|
2936
|
-
EMAIndicator.prototype.calculateEma = function (xVal, yVal, i, EMApercent, calEMA, index, SMA) {
|
|
2937
|
-
var x = xVal[i - 1],
|
|
2938
|
-
yValue = index < 0 ?
|
|
2939
|
-
yVal[i - 1] :
|
|
2940
|
-
yVal[i - 1][index],
|
|
2941
|
-
y;
|
|
2942
|
-
y = typeof calEMA === 'undefined' ?
|
|
2943
|
-
SMA : correctFloat((yValue * EMApercent) +
|
|
2944
|
-
(calEMA * (1 - EMApercent)));
|
|
2945
|
-
return [x, y];
|
|
2946
|
-
};
|
|
2947
|
-
EMAIndicator.prototype.getValues = function (series, params) {
|
|
2948
|
-
var period = params.period,
|
|
2949
|
-
xVal = series.xData,
|
|
2950
|
-
yVal = series.yData,
|
|
2951
|
-
yValLen = yVal ? yVal.length : 0,
|
|
2952
|
-
EMApercent = 2 / (period + 1),
|
|
2953
|
-
sum = 0,
|
|
2954
|
-
EMA = [],
|
|
2955
|
-
xData = [],
|
|
2956
|
-
yData = [],
|
|
2957
|
-
index = -1,
|
|
2958
|
-
SMA = 0,
|
|
2959
|
-
calEMA,
|
|
2960
|
-
EMAPoint,
|
|
2961
|
-
i;
|
|
2962
|
-
// Check period, if bigger than points length, skip
|
|
2963
|
-
if (yValLen < period) {
|
|
2964
|
-
return;
|
|
2965
|
-
}
|
|
2966
|
-
// Switch index for OHLC / Candlestick / Arearange
|
|
2967
|
-
if (isArray(yVal[0])) {
|
|
2968
|
-
index = params.index ? params.index : 0;
|
|
2969
|
-
}
|
|
2970
|
-
// Accumulate first N-points
|
|
2971
|
-
sum = this.accumulatePeriodPoints(period, index, yVal);
|
|
2972
|
-
// first point
|
|
2973
|
-
SMA = sum / period;
|
|
2974
|
-
// Calculate value one-by-one for each period in visible data
|
|
2975
|
-
for (i = period; i < yValLen + 1; i++) {
|
|
2976
|
-
EMAPoint = this.calculateEma(xVal, yVal, i, EMApercent, calEMA, index, SMA);
|
|
2977
|
-
EMA.push(EMAPoint);
|
|
2978
|
-
xData.push(EMAPoint[0]);
|
|
2979
|
-
yData.push(EMAPoint[1]);
|
|
2980
|
-
calEMA = EMAPoint[1];
|
|
2920
|
+
sum = accumulatePoints(sum, yVal, periodIndex, index);
|
|
2921
|
+
price = pick(yVal[rangeIndex][index], yVal[rangeIndex]);
|
|
2922
|
+
oscillator = price - sum / period;
|
|
2923
|
+
// substracting the first period point
|
|
2924
|
+
sum = accumulatePoints(sum, yVal, j, index, true);
|
|
2925
|
+
DPO.push([xVal[rangeIndex], oscillator]);
|
|
2926
|
+
xData.push(xVal[rangeIndex]);
|
|
2927
|
+
yData.push(oscillator);
|
|
2981
2928
|
}
|
|
2982
2929
|
return {
|
|
2983
|
-
values:
|
|
2930
|
+
values: DPO,
|
|
2984
2931
|
xData: xData,
|
|
2985
2932
|
yData: yData
|
|
2986
2933
|
};
|
|
2987
2934
|
};
|
|
2988
2935
|
/**
|
|
2989
|
-
*
|
|
2990
|
-
*
|
|
2936
|
+
* Detrended Price Oscillator. This series requires the `linkedTo` option to
|
|
2937
|
+
* be set and should be loaded after the `stock/indicators/indicators.js`.
|
|
2991
2938
|
*
|
|
2992
|
-
* @sample stock/indicators/
|
|
2993
|
-
*
|
|
2939
|
+
* @sample {highstock} stock/indicators/dpo
|
|
2940
|
+
* Detrended Price Oscillator
|
|
2994
2941
|
*
|
|
2995
2942
|
* @extends plotOptions.sma
|
|
2996
|
-
* @since
|
|
2943
|
+
* @since 7.0.0
|
|
2997
2944
|
* @product highstock
|
|
2945
|
+
* @excluding allAreas, colorAxis, compare, compareBase, joinBy, keys,
|
|
2946
|
+
* navigatorOptions, pointInterval, pointIntervalUnit,
|
|
2947
|
+
* pointPlacement, pointRange, pointStart, showInNavigator,
|
|
2948
|
+
* stacking
|
|
2998
2949
|
* @requires stock/indicators/indicators
|
|
2999
|
-
* @requires stock/indicators/
|
|
3000
|
-
* @optionparent plotOptions.
|
|
2950
|
+
* @requires stock/indicators/dpo
|
|
2951
|
+
* @optionparent plotOptions.dpo
|
|
3001
2952
|
*/
|
|
3002
|
-
|
|
2953
|
+
DPOIndicator.defaultOptions = merge(SMAIndicator.defaultOptions, {
|
|
2954
|
+
/**
|
|
2955
|
+
* Parameters used in calculation of Detrended Price Oscillator series
|
|
2956
|
+
* points.
|
|
2957
|
+
*/
|
|
3003
2958
|
params: {
|
|
2959
|
+
index: 0,
|
|
3004
2960
|
/**
|
|
3005
|
-
*
|
|
3006
|
-
* example using OHLC data, index=2 means the indicator will be
|
|
3007
|
-
* calculated using Low values.
|
|
3008
|
-
*
|
|
3009
|
-
* By default index value used to be set to 0. Since
|
|
3010
|
-
* Highcharts Stock 7 by default index is set to 3
|
|
3011
|
-
* which means that the ema indicator will be
|
|
3012
|
-
* calculated using Close values.
|
|
2961
|
+
* Period for Detrended Price Oscillator
|
|
3013
2962
|
*/
|
|
3014
|
-
|
|
3015
|
-
period: 9 // @merge 14 in v6.2
|
|
2963
|
+
period: 21
|
|
3016
2964
|
}
|
|
3017
2965
|
});
|
|
3018
|
-
return
|
|
2966
|
+
return DPOIndicator;
|
|
3019
2967
|
}(SMAIndicator));
|
|
3020
|
-
|
|
2968
|
+
extend(DPOIndicator.prototype, {
|
|
2969
|
+
nameBase: 'DPO'
|
|
2970
|
+
});
|
|
2971
|
+
SeriesRegistry.registerSeriesType('dpo', DPOIndicator);
|
|
3021
2972
|
/* *
|
|
3022
2973
|
*
|
|
3023
2974
|
* Default Export
|
|
3024
2975
|
*
|
|
3025
2976
|
* */
|
|
3026
2977
|
/**
|
|
3027
|
-
* A
|
|
2978
|
+
* A Detrended Price Oscillator. If the [type](#series.dpo.type) option is not
|
|
3028
2979
|
* specified, it is inherited from [chart.type](#chart.type).
|
|
3029
2980
|
*
|
|
3030
|
-
* @extends series,plotOptions.
|
|
3031
|
-
* @since
|
|
2981
|
+
* @extends series,plotOptions.dpo
|
|
2982
|
+
* @since 7.0.0
|
|
3032
2983
|
* @product highstock
|
|
3033
|
-
* @excluding dataParser, dataURL
|
|
2984
|
+
* @excluding allAreas, colorAxis, compare, compareBase, dataParser, dataURL,
|
|
2985
|
+
* joinBy, keys, navigatorOptions, pointInterval, pointIntervalUnit,
|
|
2986
|
+
* pointPlacement, pointRange, pointStart, showInNavigator, stacking
|
|
3034
2987
|
* @requires stock/indicators/indicators
|
|
3035
|
-
* @requires stock/indicators/
|
|
3036
|
-
* @apioption series.
|
|
2988
|
+
* @requires stock/indicators/dpo
|
|
2989
|
+
* @apioption series.dpo
|
|
3037
2990
|
*/
|
|
3038
|
-
''; //
|
|
2991
|
+
''; // to include the above in the js output'
|
|
3039
2992
|
|
|
3040
|
-
return
|
|
2993
|
+
return DPOIndicator;
|
|
3041
2994
|
});
|
|
3042
|
-
_registerModule(_modules, 'Stock/Indicators/Chaikin/ChaikinIndicator.js', [_modules['
|
|
2995
|
+
_registerModule(_modules, 'Stock/Indicators/Chaikin/ChaikinIndicator.js', [_modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (SeriesRegistry, U) {
|
|
3043
2996
|
/* *
|
|
3044
2997
|
*
|
|
3045
2998
|
* License: www.highcharts.com/license
|
|
@@ -3087,6 +3040,11 @@
|
|
|
3087
3040
|
var ChaikinIndicator = /** @class */ (function (_super) {
|
|
3088
3041
|
__extends(ChaikinIndicator, _super);
|
|
3089
3042
|
function ChaikinIndicator() {
|
|
3043
|
+
/* *
|
|
3044
|
+
*
|
|
3045
|
+
* Static Properties
|
|
3046
|
+
*
|
|
3047
|
+
* */
|
|
3090
3048
|
var _this = _super !== null && _super.apply(this,
|
|
3091
3049
|
arguments) || this;
|
|
3092
3050
|
/* *
|
|
@@ -3104,14 +3062,6 @@
|
|
|
3104
3062
|
* Functions
|
|
3105
3063
|
*
|
|
3106
3064
|
* */
|
|
3107
|
-
ChaikinIndicator.prototype.init = function () {
|
|
3108
|
-
var args = arguments,
|
|
3109
|
-
ctx = this;
|
|
3110
|
-
RequiredIndicatorMixin.isParentLoaded(EMAIndicator, 'ema', ctx.type, function (indicator) {
|
|
3111
|
-
indicator.prototype.init.apply(ctx, args);
|
|
3112
|
-
return;
|
|
3113
|
-
});
|
|
3114
|
-
};
|
|
3115
3065
|
ChaikinIndicator.prototype.getValues = function (series, params) {
|
|
3116
3066
|
var periods = params.periods,
|
|
3117
3067
|
period = params.period,
|
|
@@ -3168,8 +3118,7 @@
|
|
|
3168
3118
|
};
|
|
3169
3119
|
/**
|
|
3170
3120
|
* Chaikin Oscillator. This series requires the `linkedTo` option to
|
|
3171
|
-
* be set and should be loaded after the `stock/indicators/indicators.js
|
|
3172
|
-
* and `stock/indicators/ema.js`.
|
|
3121
|
+
* be set and should be loaded after the `stock/indicators/indicators.js`.
|
|
3173
3122
|
*
|
|
3174
3123
|
* @sample {highstock} stock/indicators/chaikin
|
|
3175
3124
|
* Chaikin Oscillator
|
|
@@ -3181,7 +3130,6 @@
|
|
|
3181
3130
|
* pointInterval, pointIntervalUnit, pointPlacement,
|
|
3182
3131
|
* pointRange, pointStart, showInNavigator, stacking
|
|
3183
3132
|
* @requires stock/indicators/indicators
|
|
3184
|
-
* @requires stock/indicators/ema
|
|
3185
3133
|
* @requires stock/indicators/chaikin
|
|
3186
3134
|
* @optionparent plotOptions.chaikin
|
|
3187
3135
|
*/
|
|
@@ -3238,7 +3186,6 @@
|
|
|
3238
3186
|
* navigatorOptions, pointInterval, pointIntervalUnit,
|
|
3239
3187
|
* pointPlacement, pointRange, pointStart, stacking, showInNavigator
|
|
3240
3188
|
* @requires stock/indicators/indicators
|
|
3241
|
-
* @requires stock/indicators/ema
|
|
3242
3189
|
* @requires stock/indicators/chaikin
|
|
3243
3190
|
* @apioption series.chaikin
|
|
3244
3191
|
*/
|
|
@@ -3428,7 +3375,7 @@
|
|
|
3428
3375
|
|
|
3429
3376
|
return CMOIndicator;
|
|
3430
3377
|
});
|
|
3431
|
-
_registerModule(_modules, 'Stock/Indicators/DEMA/DEMAIndicator.js', [_modules['
|
|
3378
|
+
_registerModule(_modules, 'Stock/Indicators/DEMA/DEMAIndicator.js', [_modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (SeriesRegistry, U) {
|
|
3432
3379
|
/* *
|
|
3433
3380
|
*
|
|
3434
3381
|
* License: www.highcharts.com/license
|
|
@@ -3476,14 +3423,6 @@
|
|
|
3476
3423
|
_this.points = void 0;
|
|
3477
3424
|
return _this;
|
|
3478
3425
|
}
|
|
3479
|
-
DEMAIndicator.prototype.init = function () {
|
|
3480
|
-
var args = arguments,
|
|
3481
|
-
ctx = this;
|
|
3482
|
-
RequiredIndicatorMixin.isParentLoaded(EMAIndicator, 'ema', ctx.type, function (indicator) {
|
|
3483
|
-
indicator.prototype.init.apply(ctx, args);
|
|
3484
|
-
return;
|
|
3485
|
-
});
|
|
3486
|
-
};
|
|
3487
3426
|
DEMAIndicator.prototype.getEMA = function (yVal, prevEMA, SMA, index, i, xVal) {
|
|
3488
3427
|
return EMAIndicator.prototype.calculateEma(xVal || [], yVal, typeof i === 'undefined' ? 1 : i, this.EMApercent, prevEMA, typeof index === 'undefined' ? -1 : index, SMA);
|
|
3489
3428
|
};
|
|
@@ -3562,7 +3501,7 @@
|
|
|
3562
3501
|
/**
|
|
3563
3502
|
* Double exponential moving average (DEMA) indicator. This series requires
|
|
3564
3503
|
* `linkedTo` option to be set and should be loaded after the
|
|
3565
|
-
* `stock/indicators/indicators.js
|
|
3504
|
+
* `stock/indicators/indicators.js`.
|
|
3566
3505
|
*
|
|
3567
3506
|
* @sample {highstock} stock/indicators/dema
|
|
3568
3507
|
* DEMA indicator
|
|
@@ -3575,7 +3514,6 @@
|
|
|
3575
3514
|
* pointPlacement, pointRange, pointStart, showInNavigator,
|
|
3576
3515
|
* stacking
|
|
3577
3516
|
* @requires stock/indicators/indicators
|
|
3578
|
-
* @requires stock/indicators/ema
|
|
3579
3517
|
* @requires stock/indicators/dema
|
|
3580
3518
|
* @optionparent plotOptions.dema
|
|
3581
3519
|
*/
|
|
@@ -3599,7 +3537,6 @@
|
|
|
3599
3537
|
* joinBy, keys, navigatorOptions, pointInterval, pointIntervalUnit,
|
|
3600
3538
|
* pointPlacement, pointRange, pointStart, showInNavigator, stacking
|
|
3601
3539
|
* @requires stock/indicators/indicators
|
|
3602
|
-
* @requires stock/indicators/ema
|
|
3603
3540
|
* @requires stock/indicators/dema
|
|
3604
3541
|
* @apioption series.dema
|
|
3605
3542
|
*/
|
|
@@ -3607,7 +3544,7 @@
|
|
|
3607
3544
|
|
|
3608
3545
|
return DEMAIndicator;
|
|
3609
3546
|
});
|
|
3610
|
-
_registerModule(_modules, 'Stock/Indicators/TEMA/TEMAIndicator.js', [_modules['
|
|
3547
|
+
_registerModule(_modules, 'Stock/Indicators/TEMA/TEMAIndicator.js', [_modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (SeriesRegistry, U) {
|
|
3611
3548
|
/* *
|
|
3612
3549
|
*
|
|
3613
3550
|
* License: www.highcharts.com/license
|
|
@@ -3635,6 +3572,11 @@
|
|
|
3635
3572
|
var correctFloat = U.correctFloat,
|
|
3636
3573
|
isArray = U.isArray,
|
|
3637
3574
|
merge = U.merge;
|
|
3575
|
+
/* *
|
|
3576
|
+
*
|
|
3577
|
+
* Class
|
|
3578
|
+
*
|
|
3579
|
+
* */
|
|
3638
3580
|
/**
|
|
3639
3581
|
* The TEMA series type.
|
|
3640
3582
|
*
|
|
@@ -3647,22 +3589,29 @@
|
|
|
3647
3589
|
var TEMAIndicator = /** @class */ (function (_super) {
|
|
3648
3590
|
__extends(TEMAIndicator, _super);
|
|
3649
3591
|
function TEMAIndicator() {
|
|
3592
|
+
/* *
|
|
3593
|
+
*
|
|
3594
|
+
* Static Properties
|
|
3595
|
+
*
|
|
3596
|
+
* */
|
|
3650
3597
|
var _this = _super !== null && _super.apply(this,
|
|
3651
3598
|
arguments) || this;
|
|
3599
|
+
/* *
|
|
3600
|
+
*
|
|
3601
|
+
* Properties
|
|
3602
|
+
*
|
|
3603
|
+
* */
|
|
3652
3604
|
_this.EMApercent = void 0;
|
|
3653
3605
|
_this.data = void 0;
|
|
3654
3606
|
_this.options = void 0;
|
|
3655
3607
|
_this.points = void 0;
|
|
3656
3608
|
return _this;
|
|
3657
3609
|
}
|
|
3658
|
-
|
|
3659
|
-
|
|
3660
|
-
|
|
3661
|
-
|
|
3662
|
-
|
|
3663
|
-
return;
|
|
3664
|
-
});
|
|
3665
|
-
};
|
|
3610
|
+
/* *
|
|
3611
|
+
*
|
|
3612
|
+
* Functions
|
|
3613
|
+
*
|
|
3614
|
+
* */
|
|
3666
3615
|
TEMAIndicator.prototype.getEMA = function (yVal, prevEMA, SMA, index, i, xVal) {
|
|
3667
3616
|
return EMAIndicator.prototype.calculateEma(xVal || [], yVal, typeof i === 'undefined' ? 1 : i, this.EMApercent, prevEMA, typeof index === 'undefined' ? -1 : index, SMA);
|
|
3668
3617
|
};
|
|
@@ -3776,7 +3725,7 @@
|
|
|
3776
3725
|
/**
|
|
3777
3726
|
* Triple exponential moving average (TEMA) indicator. This series requires
|
|
3778
3727
|
* `linkedTo` option to be set and should be loaded after the
|
|
3779
|
-
* `stock/indicators/indicators.js
|
|
3728
|
+
* `stock/indicators/indicators.js`.
|
|
3780
3729
|
*
|
|
3781
3730
|
* @sample {highstock} stock/indicators/tema
|
|
3782
3731
|
* TEMA indicator
|
|
@@ -3789,7 +3738,6 @@
|
|
|
3789
3738
|
* pointPlacement, pointRange, pointStart, showInNavigator,
|
|
3790
3739
|
* stacking
|
|
3791
3740
|
* @requires stock/indicators/indicators
|
|
3792
|
-
* @requires stock/indicators/ema
|
|
3793
3741
|
* @requires stock/indicators/tema
|
|
3794
3742
|
* @optionparent plotOptions.tema
|
|
3795
3743
|
*/
|
|
@@ -3802,6 +3750,11 @@
|
|
|
3802
3750
|
* Default Export
|
|
3803
3751
|
*
|
|
3804
3752
|
* */
|
|
3753
|
+
/* *
|
|
3754
|
+
*
|
|
3755
|
+
* API Options
|
|
3756
|
+
*
|
|
3757
|
+
* */
|
|
3805
3758
|
/**
|
|
3806
3759
|
* A `TEMA` series. If the [type](#series.tema.type) option is not
|
|
3807
3760
|
* specified, it is inherited from [chart.type](#chart.type).
|
|
@@ -3813,7 +3766,6 @@
|
|
|
3813
3766
|
* joinBy, keys, navigatorOptions, pointInterval, pointIntervalUnit,
|
|
3814
3767
|
* pointPlacement, pointRange, pointStart, showInNavigator, stacking
|
|
3815
3768
|
* @requires stock/indicators/indicators
|
|
3816
|
-
* @requires stock/indicators/ema
|
|
3817
3769
|
* @requires stock/indicators/tema
|
|
3818
3770
|
* @apioption series.tema
|
|
3819
3771
|
*/
|
|
@@ -3821,7 +3773,7 @@
|
|
|
3821
3773
|
|
|
3822
3774
|
return TEMAIndicator;
|
|
3823
3775
|
});
|
|
3824
|
-
_registerModule(_modules, 'Stock/Indicators/TRIX/TRIXIndicator.js', [_modules['
|
|
3776
|
+
_registerModule(_modules, 'Stock/Indicators/TRIX/TRIXIndicator.js', [_modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (SeriesRegistry, U) {
|
|
3825
3777
|
/* *
|
|
3826
3778
|
*
|
|
3827
3779
|
* License: www.highcharts.com/license
|
|
@@ -3867,14 +3819,6 @@
|
|
|
3867
3819
|
_this.points = void 0;
|
|
3868
3820
|
return _this;
|
|
3869
3821
|
}
|
|
3870
|
-
TRIXIndicator.prototype.init = function () {
|
|
3871
|
-
var args = arguments,
|
|
3872
|
-
ctx = this;
|
|
3873
|
-
RequiredIndicatorMixin.isParentLoaded(SeriesRegistry.seriesTypes.tema, 'tema', ctx.type, function (indicator) {
|
|
3874
|
-
indicator.prototype.init.apply(ctx, args);
|
|
3875
|
-
return;
|
|
3876
|
-
});
|
|
3877
|
-
};
|
|
3878
3822
|
// TRIX is calculated using TEMA so we just extend getTemaPoint method.
|
|
3879
3823
|
TRIXIndicator.prototype.getTemaPoint = function (xVal, tripledPeriod, EMAlevels, i) {
|
|
3880
3824
|
if (i > tripledPeriod) {
|
|
@@ -3890,11 +3834,8 @@
|
|
|
3890
3834
|
* Triple exponential average (TRIX) oscillator. This series requires
|
|
3891
3835
|
* `linkedTo` option to be set.
|
|
3892
3836
|
*
|
|
3893
|
-
* Requires https://code.highcharts.com/stock/indicators/ema.js
|
|
3894
|
-
* and https://code.highcharts.com/stock/indicators/tema.js.
|
|
3895
|
-
*
|
|
3896
3837
|
* @sample {highstock} stock/indicators/trix
|
|
3897
|
-
*
|
|
3838
|
+
* TRIX indicator
|
|
3898
3839
|
*
|
|
3899
3840
|
* @extends plotOptions.tema
|
|
3900
3841
|
* @since 7.0.0
|
|
@@ -3903,6 +3844,9 @@
|
|
|
3903
3844
|
* navigatorOptions, pointInterval, pointIntervalUnit,
|
|
3904
3845
|
* pointPlacement, pointRange, pointStart, showInNavigator,
|
|
3905
3846
|
* stacking
|
|
3847
|
+
* @requires stock/indicators/indicators
|
|
3848
|
+
* @requires stock/indicators/tema
|
|
3849
|
+
* @requires stock/indicators/trix
|
|
3906
3850
|
* @optionparent plotOptions.trix
|
|
3907
3851
|
*/
|
|
3908
3852
|
TRIXIndicator.defaultOptions = merge(TEMAIndicator.defaultOptions);
|
|
@@ -3924,13 +3868,15 @@
|
|
|
3924
3868
|
* @excluding allAreas, colorAxis, compare, compareBase, dataParser, dataURL,
|
|
3925
3869
|
* joinBy, keys, navigatorOptions, pointInterval, pointIntervalUnit,
|
|
3926
3870
|
* pointPlacement, pointRange, pointStart, showInNavigator, stacking
|
|
3871
|
+
* @requires stock/indicators/indicators
|
|
3872
|
+
* @requires stock/indicators/tema
|
|
3927
3873
|
* @apioption series.trix
|
|
3928
3874
|
*/
|
|
3929
3875
|
''; // to include the above in the js output
|
|
3930
3876
|
|
|
3931
3877
|
return TRIXIndicator;
|
|
3932
3878
|
});
|
|
3933
|
-
_registerModule(_modules, 'Stock/Indicators/APO/APOIndicator.js', [_modules['
|
|
3879
|
+
_registerModule(_modules, 'Stock/Indicators/APO/APOIndicator.js', [_modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (SeriesRegistry, U) {
|
|
3934
3880
|
/* *
|
|
3935
3881
|
*
|
|
3936
3882
|
* License: www.highcharts.com/license
|
|
@@ -3975,23 +3921,28 @@
|
|
|
3975
3921
|
var APOIndicator = /** @class */ (function (_super) {
|
|
3976
3922
|
__extends(APOIndicator, _super);
|
|
3977
3923
|
function APOIndicator() {
|
|
3924
|
+
/* *
|
|
3925
|
+
*
|
|
3926
|
+
* Static Properties
|
|
3927
|
+
*
|
|
3928
|
+
* */
|
|
3978
3929
|
var _this = _super !== null && _super.apply(this,
|
|
3979
3930
|
arguments) || this;
|
|
3980
3931
|
/* *
|
|
3981
|
-
|
|
3982
|
-
|
|
3983
|
-
|
|
3984
|
-
|
|
3932
|
+
*
|
|
3933
|
+
* Properties
|
|
3934
|
+
*
|
|
3935
|
+
* */
|
|
3985
3936
|
_this.data = void 0;
|
|
3986
3937
|
_this.options = void 0;
|
|
3987
3938
|
_this.points = void 0;
|
|
3988
3939
|
return _this;
|
|
3989
3940
|
}
|
|
3990
3941
|
/* *
|
|
3991
|
-
|
|
3992
|
-
|
|
3993
|
-
|
|
3994
|
-
|
|
3942
|
+
*
|
|
3943
|
+
* Functions
|
|
3944
|
+
*
|
|
3945
|
+
* */
|
|
3995
3946
|
APOIndicator.prototype.getValues = function (series, params) {
|
|
3996
3947
|
var periods = params.periods,
|
|
3997
3948
|
index = params.index,
|
|
@@ -4038,18 +3989,9 @@
|
|
|
4038
3989
|
yData: yData
|
|
4039
3990
|
};
|
|
4040
3991
|
};
|
|
4041
|
-
APOIndicator.prototype.init = function () {
|
|
4042
|
-
var args = arguments,
|
|
4043
|
-
ctx = this;
|
|
4044
|
-
RequiredIndicatorMixin.isParentLoaded(EMAIndicator, 'ema', ctx.type, function (indicator) {
|
|
4045
|
-
indicator.prototype.init.apply(ctx, args);
|
|
4046
|
-
return;
|
|
4047
|
-
});
|
|
4048
|
-
};
|
|
4049
3992
|
/**
|
|
4050
3993
|
* Absolute Price Oscillator. This series requires the `linkedTo` option to
|
|
4051
|
-
* be set and should be loaded after the `stock/indicators/indicators.js
|
|
4052
|
-
* and `stock/indicators/ema.js`.
|
|
3994
|
+
* be set and should be loaded after the `stock/indicators/indicators.js`.
|
|
4053
3995
|
*
|
|
4054
3996
|
* @sample {highstock} stock/indicators/apo
|
|
4055
3997
|
* Absolute Price Oscillator
|
|
@@ -4061,7 +4003,6 @@
|
|
|
4061
4003
|
* pointInterval, pointIntervalUnit, pointPlacement,
|
|
4062
4004
|
* pointRange, pointStart, showInNavigator, stacking
|
|
4063
4005
|
* @requires stock/indicators/indicators
|
|
4064
|
-
* @requires stock/indicators/ema
|
|
4065
4006
|
* @requires stock/indicators/apo
|
|
4066
4007
|
* @optionparent plotOptions.apo
|
|
4067
4008
|
*/
|
|
@@ -4107,7 +4048,6 @@
|
|
|
4107
4048
|
* navigatorOptions, pointInterval, pointIntervalUnit,
|
|
4108
4049
|
* pointPlacement, pointRange, pointStart, showInNavigator, stacking
|
|
4109
4050
|
* @requires stock/indicators/indicators
|
|
4110
|
-
* @requires stock/indicators/ema
|
|
4111
4051
|
* @requires stock/indicators/apo
|
|
4112
4052
|
* @apioption series.apo
|
|
4113
4053
|
*/
|
|
@@ -4868,7 +4808,7 @@
|
|
|
4868
4808
|
|
|
4869
4809
|
return IKHIndicator;
|
|
4870
4810
|
});
|
|
4871
|
-
_registerModule(_modules, 'Stock/Indicators/KeltnerChannels/KeltnerChannelsIndicator.js', [_modules['
|
|
4811
|
+
_registerModule(_modules, 'Stock/Indicators/KeltnerChannels/KeltnerChannelsIndicator.js', [_modules['Stock/Indicators/MultipleLinesComposition.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (MultipleLinesComposition, SeriesRegistry, U) {
|
|
4872
4812
|
/* *
|
|
4873
4813
|
*
|
|
4874
4814
|
* License: www.highcharts.com/license
|
|
@@ -4892,10 +4832,7 @@
|
|
|
4892
4832
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
4893
4833
|
};
|
|
4894
4834
|
})();
|
|
4895
|
-
var
|
|
4896
|
-
SMAIndicator = _a.sma,
|
|
4897
|
-
EMAIndicator = _a.ema,
|
|
4898
|
-
ATRIndicator = _a.atr;
|
|
4835
|
+
var SMAIndicator = SeriesRegistry.seriesTypes.sma;
|
|
4899
4836
|
var correctFloat = U.correctFloat,
|
|
4900
4837
|
extend = U.extend,
|
|
4901
4838
|
merge = U.merge;
|
|
@@ -5002,6 +4939,12 @@
|
|
|
5002
4939
|
*/
|
|
5003
4940
|
KeltnerChannelsIndicator.defaultOptions = merge(SMAIndicator.defaultOptions, {
|
|
5004
4941
|
params: {
|
|
4942
|
+
/**
|
|
4943
|
+
* The point index which indicator calculations will base. For
|
|
4944
|
+
* example using OHLC data, index=2 means the indicator will be
|
|
4945
|
+
* calculated using Low values.
|
|
4946
|
+
*/
|
|
4947
|
+
index: 0,
|
|
5005
4948
|
period: 20,
|
|
5006
4949
|
/**
|
|
5007
4950
|
* The ATR period.
|
|
@@ -5058,17 +5001,13 @@
|
|
|
5058
5001
|
return KeltnerChannelsIndicator;
|
|
5059
5002
|
}(SMAIndicator));
|
|
5060
5003
|
extend(KeltnerChannelsIndicator.prototype, {
|
|
5061
|
-
pointArrayMap: ['top', 'middle', 'bottom'],
|
|
5062
|
-
pointValKey: 'middle',
|
|
5063
5004
|
nameBase: 'Keltner Channels',
|
|
5064
5005
|
nameComponents: ['period', 'periodATR', 'multiplierATR'],
|
|
5065
5006
|
linesApiNames: ['topLine', 'bottomLine'],
|
|
5066
|
-
|
|
5067
|
-
|
|
5068
|
-
getTranslatedLinesNames: MultipleLinesMixin.getTranslatedLinesNames,
|
|
5069
|
-
translate: MultipleLinesMixin.translate,
|
|
5070
|
-
toYData: MultipleLinesMixin.toYData
|
|
5007
|
+
pointArrayMap: ['top', 'middle', 'bottom'],
|
|
5008
|
+
pointValKey: 'middle'
|
|
5071
5009
|
});
|
|
5010
|
+
MultipleLinesComposition.compose(KeltnerChannelsIndicator);
|
|
5072
5011
|
SeriesRegistry.registerSeriesType('keltnerchannels', KeltnerChannelsIndicator);
|
|
5073
5012
|
/* *
|
|
5074
5013
|
*
|
|
@@ -5094,7 +5033,7 @@
|
|
|
5094
5033
|
|
|
5095
5034
|
return KeltnerChannelsIndicator;
|
|
5096
5035
|
});
|
|
5097
|
-
_registerModule(_modules, 'Stock/Indicators/Klinger/KlingerIndicator.js', [_modules['
|
|
5036
|
+
_registerModule(_modules, 'Stock/Indicators/Klinger/KlingerIndicator.js', [_modules['Stock/Indicators/MultipleLinesComposition.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (MultipleLinesComposition, SeriesRegistry, U) {
|
|
5098
5037
|
/* *
|
|
5099
5038
|
*
|
|
5100
5039
|
* License: www.highcharts.com/license
|
|
@@ -5138,6 +5077,11 @@
|
|
|
5138
5077
|
var KlingerIndicator = /** @class */ (function (_super) {
|
|
5139
5078
|
__extends(KlingerIndicator, _super);
|
|
5140
5079
|
function KlingerIndicator() {
|
|
5080
|
+
/* *
|
|
5081
|
+
*
|
|
5082
|
+
* Static Properties
|
|
5083
|
+
*
|
|
5084
|
+
* */
|
|
5141
5085
|
var _this = _super !== null && _super.apply(this,
|
|
5142
5086
|
arguments) || this;
|
|
5143
5087
|
/* *
|
|
@@ -5156,15 +5100,6 @@
|
|
|
5156
5100
|
* Functions
|
|
5157
5101
|
*
|
|
5158
5102
|
* */
|
|
5159
|
-
KlingerIndicator.prototype.init = function () {
|
|
5160
|
-
var args = arguments,
|
|
5161
|
-
ctx = this;
|
|
5162
|
-
// Check if the EMA module is added.
|
|
5163
|
-
RequiredIndicatorMixin.isParentLoaded(EMAIndicator, 'ema', ctx.type, function (indicator) {
|
|
5164
|
-
indicator.prototype.init.apply(ctx, args);
|
|
5165
|
-
return;
|
|
5166
|
-
});
|
|
5167
|
-
};
|
|
5168
5103
|
KlingerIndicator.prototype.calculateTrend = function (yVal, i) {
|
|
5169
5104
|
var isUpward = yVal[i][1] + yVal[i][2] + yVal[i][3] >
|
|
5170
5105
|
yVal[i - 1][1] + yVal[i - 1][2] + yVal[i - 1][3];
|
|
@@ -5370,12 +5305,9 @@
|
|
|
5370
5305
|
nameComponents: ['fastAvgPeriod', 'slowAvgPeriod'],
|
|
5371
5306
|
pointArrayMap: ['y', 'signal'],
|
|
5372
5307
|
parallelArrays: ['x', 'y', 'signal'],
|
|
5373
|
-
pointValKey: 'y'
|
|
5374
|
-
drawGraph: MultipleLinesMixin.drawGraph,
|
|
5375
|
-
getTranslatedLinesNames: MultipleLinesMixin.getTranslatedLinesNames,
|
|
5376
|
-
translate: MultipleLinesMixin.translate,
|
|
5377
|
-
toYData: MultipleLinesMixin.toYData
|
|
5308
|
+
pointValKey: 'y'
|
|
5378
5309
|
});
|
|
5310
|
+
MultipleLinesComposition.compose(KlingerIndicator);
|
|
5379
5311
|
SeriesRegistry.registerSeriesType('klinger', KlingerIndicator);
|
|
5380
5312
|
/* *
|
|
5381
5313
|
*
|
|
@@ -5390,7 +5322,6 @@
|
|
|
5390
5322
|
* @since 9.1.0
|
|
5391
5323
|
* @product highstock
|
|
5392
5324
|
* @requires stock/indicators/indicators
|
|
5393
|
-
* @requires stock/indicators/ema
|
|
5394
5325
|
* @requires stock/indicators/klinger
|
|
5395
5326
|
* @apioption series.klinger
|
|
5396
5327
|
*/
|
|
@@ -5688,7 +5619,7 @@
|
|
|
5688
5619
|
/**
|
|
5689
5620
|
* Moving Average Convergence Divergence (MACD). This series requires
|
|
5690
5621
|
* `linkedTo` option to be set and should be loaded after the
|
|
5691
|
-
* `stock/indicators/indicators.js
|
|
5622
|
+
* `stock/indicators/indicators.js`.
|
|
5692
5623
|
*
|
|
5693
5624
|
* @sample stock/indicators/macd
|
|
5694
5625
|
* MACD indicator
|
|
@@ -5793,7 +5724,6 @@
|
|
|
5793
5724
|
}(SMAIndicator));
|
|
5794
5725
|
extend(MACDIndicator.prototype, {
|
|
5795
5726
|
nameComponents: ['longPeriod', 'shortPeriod', 'signalPeriod'],
|
|
5796
|
-
requiredIndicators: ['ema'],
|
|
5797
5727
|
// "y" value is treated as Histogram data
|
|
5798
5728
|
pointArrayMap: ['y', 'signal', 'MACD'],
|
|
5799
5729
|
parallelArrays: ['x', 'y', 'signal', 'MACD'],
|
|
@@ -6287,9 +6217,6 @@
|
|
|
6287
6217
|
});
|
|
6288
6218
|
return NATRIndicator;
|
|
6289
6219
|
}(ATRIndicator));
|
|
6290
|
-
extend(NATRIndicator.prototype, {
|
|
6291
|
-
requiredIndicators: ['atr']
|
|
6292
|
-
});
|
|
6293
6220
|
SeriesRegistry.registerSeriesType('natr', NATRIndicator);
|
|
6294
6221
|
/* *
|
|
6295
6222
|
*
|
|
@@ -6305,6 +6232,7 @@
|
|
|
6305
6232
|
* @product highstock
|
|
6306
6233
|
* @excluding dataParser, dataURL
|
|
6307
6234
|
* @requires stock/indicators/indicators
|
|
6235
|
+
* @requires stock/indicators/atr
|
|
6308
6236
|
* @requires stock/indicators/natr
|
|
6309
6237
|
* @apioption series.natr
|
|
6310
6238
|
*/
|
|
@@ -6943,7 +6871,7 @@
|
|
|
6943
6871
|
|
|
6944
6872
|
return PivotPointsIndicator;
|
|
6945
6873
|
});
|
|
6946
|
-
_registerModule(_modules, 'Stock/Indicators/PPO/PPOIndicator.js', [_modules['
|
|
6874
|
+
_registerModule(_modules, 'Stock/Indicators/PPO/PPOIndicator.js', [_modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (SeriesRegistry, U) {
|
|
6947
6875
|
/* *
|
|
6948
6876
|
*
|
|
6949
6877
|
* License: www.highcharts.com/license
|
|
@@ -7006,14 +6934,6 @@
|
|
|
7006
6934
|
* Functions
|
|
7007
6935
|
*
|
|
7008
6936
|
* */
|
|
7009
|
-
PPOIndicator.prototype.init = function () {
|
|
7010
|
-
var args = arguments,
|
|
7011
|
-
ctx = this;
|
|
7012
|
-
RequiredIndicatorMixin.isParentLoaded(EMAIndicator, 'ema', ctx.type, function (indicator) {
|
|
7013
|
-
indicator.prototype.init.apply(ctx, args);
|
|
7014
|
-
return;
|
|
7015
|
-
});
|
|
7016
|
-
};
|
|
7017
6937
|
PPOIndicator.prototype.getValues = function (series, params) {
|
|
7018
6938
|
var periods = params.periods,
|
|
7019
6939
|
index = params.index,
|
|
@@ -7065,7 +6985,7 @@
|
|
|
7065
6985
|
/**
|
|
7066
6986
|
* Percentage Price Oscillator. This series requires the
|
|
7067
6987
|
* `linkedTo` option to be set and should be loaded after the
|
|
7068
|
-
* `stock/indicators/indicators.js
|
|
6988
|
+
* `stock/indicators/indicators.js`.
|
|
7069
6989
|
*
|
|
7070
6990
|
* @sample {highstock} stock/indicators/ppo
|
|
7071
6991
|
* Percentage Price Oscillator
|
|
@@ -7077,7 +6997,6 @@
|
|
|
7077
6997
|
* pointInterval, pointIntervalUnit, pointPlacement,
|
|
7078
6998
|
* pointRange, pointStart, showInNavigator, stacking
|
|
7079
6999
|
* @requires stock/indicators/indicators
|
|
7080
|
-
* @requires stock/indicators/ema
|
|
7081
7000
|
* @requires stock/indicators/ppo
|
|
7082
7001
|
* @optionparent plotOptions.ppo
|
|
7083
7002
|
*/
|
|
@@ -7122,7 +7041,6 @@
|
|
|
7122
7041
|
* navigatorOptions, pointInterval, pointIntervalUnit,
|
|
7123
7042
|
* pointPlacement, pointRange, pointStart, showInNavigator, stacking
|
|
7124
7043
|
* @requires stock/indicators/indicators
|
|
7125
|
-
* @requires stock/indicators/ema
|
|
7126
7044
|
* @requires stock/indicators/ppo
|
|
7127
7045
|
* @apioption series.ppo
|
|
7128
7046
|
*/
|
|
@@ -7130,7 +7048,7 @@
|
|
|
7130
7048
|
|
|
7131
7049
|
return PPOIndicator;
|
|
7132
7050
|
});
|
|
7133
|
-
_registerModule(_modules, '
|
|
7051
|
+
_registerModule(_modules, 'Stock/Indicators/ArrayUtilities.js', [], function () {
|
|
7134
7052
|
/**
|
|
7135
7053
|
*
|
|
7136
7054
|
* (c) 2010-2021 Pawel Fus & Daniel Studencki
|
|
@@ -7140,55 +7058,46 @@
|
|
|
7140
7058
|
* !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
|
|
7141
7059
|
*
|
|
7142
7060
|
* */
|
|
7143
|
-
|
|
7144
|
-
|
|
7145
|
-
|
|
7146
|
-
|
|
7147
|
-
|
|
7148
|
-
|
|
7149
|
-
|
|
7150
|
-
|
|
7151
|
-
|
|
7152
|
-
|
|
7153
|
-
|
|
7154
|
-
|
|
7155
|
-
|
|
7156
|
-
|
|
7157
|
-
|
|
7158
|
-
|
|
7159
|
-
|
|
7160
|
-
|
|
7161
|
-
|
|
7162
|
-
|
|
7163
|
-
|
|
7164
|
-
|
|
7165
|
-
|
|
7166
|
-
|
|
7167
|
-
|
|
7168
|
-
|
|
7169
|
-
|
|
7170
|
-
|
|
7171
|
-
|
|
7172
|
-
|
|
7173
|
-
|
|
7174
|
-
|
|
7175
|
-
|
|
7176
|
-
|
|
7177
|
-
|
|
7178
|
-
|
|
7179
|
-
getArrayExtremes: function (arr, minIndex, maxIndex) {
|
|
7180
|
-
return arr.reduce(function (prev, target) {
|
|
7181
|
-
return [
|
|
7182
|
-
Math.min(prev[0], target[minIndex]),
|
|
7183
|
-
Math.max(prev[1], target[maxIndex])
|
|
7184
|
-
];
|
|
7185
|
-
}, [Number.MAX_VALUE, -Number.MAX_VALUE]);
|
|
7186
|
-
}
|
|
7187
|
-
};
|
|
7061
|
+
/* *
|
|
7062
|
+
*
|
|
7063
|
+
* Functions
|
|
7064
|
+
*
|
|
7065
|
+
* */
|
|
7066
|
+
/**
|
|
7067
|
+
* Get extremes of array filled by OHLC data.
|
|
7068
|
+
*
|
|
7069
|
+
* @private
|
|
7070
|
+
*
|
|
7071
|
+
* @param {Array<Array<number>>} arr
|
|
7072
|
+
* Array of OHLC points (arrays).
|
|
7073
|
+
*
|
|
7074
|
+
* @param {number} minIndex
|
|
7075
|
+
* Index of "low" value in point array.
|
|
7076
|
+
*
|
|
7077
|
+
* @param {number} maxIndex
|
|
7078
|
+
* Index of "high" value in point array.
|
|
7079
|
+
*
|
|
7080
|
+
* @return {Array<number,number>}
|
|
7081
|
+
* Returns array with min and max value.
|
|
7082
|
+
*/
|
|
7083
|
+
function getArrayExtremes(arr, minIndex, maxIndex) {
|
|
7084
|
+
return arr.reduce(function (prev, target) { return [
|
|
7085
|
+
Math.min(prev[0], target[minIndex]),
|
|
7086
|
+
Math.max(prev[1], target[maxIndex])
|
|
7087
|
+
]; }, [Number.MAX_VALUE, -Number.MAX_VALUE]);
|
|
7088
|
+
}
|
|
7089
|
+
/* *
|
|
7090
|
+
*
|
|
7091
|
+
* Default Export
|
|
7092
|
+
*
|
|
7093
|
+
* */
|
|
7094
|
+
var ArrayUtilities = {
|
|
7095
|
+
getArrayExtremes: getArrayExtremes
|
|
7096
|
+
};
|
|
7188
7097
|
|
|
7189
|
-
return
|
|
7098
|
+
return ArrayUtilities;
|
|
7190
7099
|
});
|
|
7191
|
-
_registerModule(_modules, 'Stock/Indicators/PC/PCIndicator.js', [_modules['
|
|
7100
|
+
_registerModule(_modules, 'Stock/Indicators/PC/PCIndicator.js', [_modules['Stock/Indicators/ArrayUtilities.js'], _modules['Stock/Indicators/MultipleLinesComposition.js'], _modules['Core/Color/Palettes.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (AU, MultipleLinesComposition, Palettes, SeriesRegistry, U) {
|
|
7192
7101
|
/* *
|
|
7193
7102
|
*
|
|
7194
7103
|
* License: www.highcharts.com/license
|
|
@@ -7215,7 +7124,6 @@
|
|
|
7215
7124
|
var SMAIndicator = SeriesRegistry.seriesTypes.sma;
|
|
7216
7125
|
var merge = U.merge,
|
|
7217
7126
|
extend = U.extend;
|
|
7218
|
-
var getArrayExtremes = ReduceArrayMixin.getArrayExtremes;
|
|
7219
7127
|
/* *
|
|
7220
7128
|
*
|
|
7221
7129
|
* Class
|
|
@@ -7233,6 +7141,11 @@
|
|
|
7233
7141
|
var PCIndicator = /** @class */ (function (_super) {
|
|
7234
7142
|
__extends(PCIndicator, _super);
|
|
7235
7143
|
function PCIndicator() {
|
|
7144
|
+
/* *
|
|
7145
|
+
*
|
|
7146
|
+
* Static Properties
|
|
7147
|
+
*
|
|
7148
|
+
* */
|
|
7236
7149
|
var _this = _super !== null && _super.apply(this,
|
|
7237
7150
|
arguments) || this;
|
|
7238
7151
|
/* *
|
|
@@ -7275,7 +7188,7 @@
|
|
|
7275
7188
|
for (i = period; i <= yValLen; i++) {
|
|
7276
7189
|
date = xVal[i - 1];
|
|
7277
7190
|
slicedY = yVal.slice(i - period, i);
|
|
7278
|
-
extremes = getArrayExtremes(slicedY, low, high);
|
|
7191
|
+
extremes = AU.getArrayExtremes(slicedY, low, high);
|
|
7279
7192
|
TL = extremes[1];
|
|
7280
7193
|
BL = extremes[0];
|
|
7281
7194
|
ML = (TL + BL) / 2;
|
|
@@ -7324,7 +7237,7 @@
|
|
|
7324
7237
|
*
|
|
7325
7238
|
* @type {Highcharts.ColorString}
|
|
7326
7239
|
*/
|
|
7327
|
-
lineColor:
|
|
7240
|
+
lineColor: Palettes.colors[2],
|
|
7328
7241
|
/**
|
|
7329
7242
|
* Pixel width of the line.
|
|
7330
7243
|
*/
|
|
@@ -7339,7 +7252,7 @@
|
|
|
7339
7252
|
*
|
|
7340
7253
|
* @type {Highcharts.ColorString}
|
|
7341
7254
|
*/
|
|
7342
|
-
lineColor:
|
|
7255
|
+
lineColor: Palettes.colors[8],
|
|
7343
7256
|
/**
|
|
7344
7257
|
* Pixel width of the line.
|
|
7345
7258
|
*/
|
|
@@ -7353,16 +7266,13 @@
|
|
|
7353
7266
|
return PCIndicator;
|
|
7354
7267
|
}(SMAIndicator));
|
|
7355
7268
|
extend(PCIndicator.prototype, {
|
|
7356
|
-
getTranslatedLinesNames: MultipleLinesMixin.getTranslatedLinesNames,
|
|
7357
|
-
drawGraph: MultipleLinesMixin.drawGraph,
|
|
7358
|
-
toYData: MultipleLinesMixin.toYData,
|
|
7359
|
-
pointArrayMap: ['top', 'middle', 'bottom'],
|
|
7360
|
-
pointValKey: 'middle',
|
|
7361
7269
|
nameBase: 'Price Channel',
|
|
7362
7270
|
nameComponents: ['period'],
|
|
7363
7271
|
linesApiNames: ['topLine', 'bottomLine'],
|
|
7364
|
-
|
|
7272
|
+
pointArrayMap: ['top', 'middle', 'bottom'],
|
|
7273
|
+
pointValKey: 'middle'
|
|
7365
7274
|
});
|
|
7275
|
+
MultipleLinesComposition.compose(PCIndicator);
|
|
7366
7276
|
SeriesRegistry.registerSeriesType('pc', PCIndicator);
|
|
7367
7277
|
/* *
|
|
7368
7278
|
*
|
|
@@ -8346,7 +8256,7 @@
|
|
|
8346
8256
|
|
|
8347
8257
|
return RSIIndicator;
|
|
8348
8258
|
});
|
|
8349
|
-
_registerModule(_modules, 'Stock/Indicators/Stochastic/StochasticIndicator.js', [_modules['
|
|
8259
|
+
_registerModule(_modules, 'Stock/Indicators/Stochastic/StochasticIndicator.js', [_modules['Stock/Indicators/ArrayUtilities.js'], _modules['Stock/Indicators/MultipleLinesComposition.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (AU, MultipleLinesComposition, SeriesRegistry, U) {
|
|
8350
8260
|
/* *
|
|
8351
8261
|
*
|
|
8352
8262
|
* License: www.highcharts.com/license
|
|
@@ -8374,6 +8284,11 @@
|
|
|
8374
8284
|
var extend = U.extend,
|
|
8375
8285
|
isArray = U.isArray,
|
|
8376
8286
|
merge = U.merge;
|
|
8287
|
+
/* *
|
|
8288
|
+
*
|
|
8289
|
+
* Class
|
|
8290
|
+
*
|
|
8291
|
+
* */
|
|
8377
8292
|
/**
|
|
8378
8293
|
* The Stochastic series type.
|
|
8379
8294
|
*
|
|
@@ -8386,6 +8301,11 @@
|
|
|
8386
8301
|
var StochasticIndicator = /** @class */ (function (_super) {
|
|
8387
8302
|
__extends(StochasticIndicator, _super);
|
|
8388
8303
|
function StochasticIndicator() {
|
|
8304
|
+
/* *
|
|
8305
|
+
*
|
|
8306
|
+
* Static Properties
|
|
8307
|
+
*
|
|
8308
|
+
* */
|
|
8389
8309
|
var _this = _super !== null && _super.apply(this,
|
|
8390
8310
|
arguments) || this;
|
|
8391
8311
|
_this.data = void 0;
|
|
@@ -8438,7 +8358,7 @@
|
|
|
8438
8358
|
for (i = periodK - 1; i < yValLen; i++) {
|
|
8439
8359
|
slicedY = yVal.slice(i - periodK + 1, i + 1);
|
|
8440
8360
|
// Calculate %K
|
|
8441
|
-
extremes =
|
|
8361
|
+
extremes = AU.getArrayExtremes(slicedY, low, high);
|
|
8442
8362
|
LL = extremes[0]; // Lowest low in %K periods
|
|
8443
8363
|
CL = yVal[i][close] - LL;
|
|
8444
8364
|
HL = extremes[1] - LL;
|
|
@@ -8537,12 +8457,9 @@
|
|
|
8537
8457
|
pointArrayMap: ['y', 'smoothed'],
|
|
8538
8458
|
parallelArrays: ['x', 'y', 'smoothed'],
|
|
8539
8459
|
pointValKey: 'y',
|
|
8540
|
-
linesApiNames: ['smoothedLine']
|
|
8541
|
-
drawGraph: MultipleLinesMixin.drawGraph,
|
|
8542
|
-
getTranslatedLinesNames: MultipleLinesMixin.getTranslatedLinesNames,
|
|
8543
|
-
translate: MultipleLinesMixin.translate,
|
|
8544
|
-
toYData: MultipleLinesMixin.toYData
|
|
8460
|
+
linesApiNames: ['smoothedLine']
|
|
8545
8461
|
});
|
|
8462
|
+
MultipleLinesComposition.compose(StochasticIndicator);
|
|
8546
8463
|
SeriesRegistry.registerSeriesType('stochastic', StochasticIndicator);
|
|
8547
8464
|
/* *
|
|
8548
8465
|
*
|
|
@@ -8567,7 +8484,7 @@
|
|
|
8567
8484
|
|
|
8568
8485
|
return StochasticIndicator;
|
|
8569
8486
|
});
|
|
8570
|
-
_registerModule(_modules, 'Stock/Indicators/SlowStochastic/SlowStochasticIndicator.js', [_modules['
|
|
8487
|
+
_registerModule(_modules, 'Stock/Indicators/SlowStochastic/SlowStochasticIndicator.js', [_modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (SeriesRegistry, U) {
|
|
8571
8488
|
/* *
|
|
8572
8489
|
*
|
|
8573
8490
|
* License: www.highcharts.com/license
|
|
@@ -8614,14 +8531,6 @@
|
|
|
8614
8531
|
_this.points = void 0;
|
|
8615
8532
|
return _this;
|
|
8616
8533
|
}
|
|
8617
|
-
SlowStochasticIndicator.prototype.init = function () {
|
|
8618
|
-
var args = arguments,
|
|
8619
|
-
ctx = this;
|
|
8620
|
-
RequiredIndicatorMixin.isParentLoaded(seriesTypes.stochastic, 'stochastic', ctx.type, function (indicator) {
|
|
8621
|
-
indicator.prototype.init.apply(ctx, args);
|
|
8622
|
-
return;
|
|
8623
|
-
});
|
|
8624
|
-
};
|
|
8625
8534
|
SlowStochasticIndicator.prototype.getValues = function (series, params) {
|
|
8626
8535
|
var periods = params.periods,
|
|
8627
8536
|
fastValues = seriesTypes.stochastic.prototype.getValues.call(this,
|
|
@@ -8718,7 +8627,7 @@
|
|
|
8718
8627
|
|
|
8719
8628
|
return SlowStochasticIndicator;
|
|
8720
8629
|
});
|
|
8721
|
-
_registerModule(_modules, 'Stock/Indicators/Supertrend/SupertrendIndicator.js', [_modules['Core/
|
|
8630
|
+
_registerModule(_modules, 'Stock/Indicators/Supertrend/SupertrendIndicator.js', [_modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js'], _modules['Core/Chart/StockChart.js']], function (SeriesRegistry, U, StockChart) {
|
|
8722
8631
|
/* *
|
|
8723
8632
|
*
|
|
8724
8633
|
* License: www.highcharts.com/license
|
|
@@ -9169,7 +9078,7 @@
|
|
|
9169
9078
|
*
|
|
9170
9079
|
* @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
|
|
9171
9080
|
*/
|
|
9172
|
-
risingTrendColor:
|
|
9081
|
+
risingTrendColor: "#06b535" /* positiveColor */,
|
|
9173
9082
|
/**
|
|
9174
9083
|
* Color of the Supertrend series line that is above the main series.
|
|
9175
9084
|
*
|
|
@@ -9178,7 +9087,7 @@
|
|
|
9178
9087
|
*
|
|
9179
9088
|
* @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
|
|
9180
9089
|
*/
|
|
9181
|
-
fallingTrendColor:
|
|
9090
|
+
fallingTrendColor: "#f21313" /* negativeColor */,
|
|
9182
9091
|
/**
|
|
9183
9092
|
* The styles for the Supertrend line that intersect main series.
|
|
9184
9093
|
*
|
|
@@ -9196,7 +9105,7 @@
|
|
|
9196
9105
|
*
|
|
9197
9106
|
* @type {Highcharts.ColorString}
|
|
9198
9107
|
*/
|
|
9199
|
-
lineColor:
|
|
9108
|
+
lineColor: "#333333" /* neutralColor80 */,
|
|
9200
9109
|
/**
|
|
9201
9110
|
* The dash or dot style of the grid lines. For possible
|
|
9202
9111
|
* values, see
|
|
@@ -9218,8 +9127,7 @@
|
|
|
9218
9127
|
}(SMAIndicator));
|
|
9219
9128
|
extend(SupertrendIndicator.prototype, {
|
|
9220
9129
|
nameBase: 'Supertrend',
|
|
9221
|
-
nameComponents: ['multiplier', 'period']
|
|
9222
|
-
requiredIndicators: ['atr']
|
|
9130
|
+
nameComponents: ['multiplier', 'period']
|
|
9223
9131
|
});
|
|
9224
9132
|
SeriesRegistry.registerSeriesType('supertrend', SupertrendIndicator);
|
|
9225
9133
|
/* *
|
|
@@ -9334,6 +9242,7 @@
|
|
|
9334
9242
|
arrayMax = U.arrayMax,
|
|
9335
9243
|
arrayMin = U.arrayMin,
|
|
9336
9244
|
correctFloat = U.correctFloat,
|
|
9245
|
+
defined = U.defined,
|
|
9337
9246
|
error = U.error,
|
|
9338
9247
|
extend = U.extend,
|
|
9339
9248
|
isArray = U.isArray,
|
|
@@ -9641,7 +9550,15 @@
|
|
|
9641
9550
|
j = 1,
|
|
9642
9551
|
rangeStep,
|
|
9643
9552
|
zoneStartsLength;
|
|
9644
|
-
|
|
9553
|
+
// If the compare mode is set on the main series, change the VBP
|
|
9554
|
+
// zones to fit new extremes, #16277.
|
|
9555
|
+
var mainSeries = indicator.linkedParent;
|
|
9556
|
+
if (!indicator.options.compareToMain &&
|
|
9557
|
+
mainSeries.dataModify) {
|
|
9558
|
+
lowRange = mainSeries.dataModify.modifyValue(lowRange);
|
|
9559
|
+
highRange = mainSeries.dataModify.modifyValue(highRange);
|
|
9560
|
+
}
|
|
9561
|
+
if (!defined(lowRange) || !defined(highRange)) {
|
|
9645
9562
|
if (this.points.length) {
|
|
9646
9563
|
this.setData([]);
|
|
9647
9564
|
this.zoneStarts = [];
|
|
@@ -9711,6 +9628,15 @@
|
|
|
9711
9628
|
yValues[i - 1][3] :
|
|
9712
9629
|
yValues[i - 1]) :
|
|
9713
9630
|
value;
|
|
9631
|
+
// If the compare mode is set on the main series,
|
|
9632
|
+
// change the VBP zones to fit new extremes, #16277.
|
|
9633
|
+
var mainSeries = indicator.linkedParent;
|
|
9634
|
+
if (!indicator.options.compareToMain &&
|
|
9635
|
+
mainSeries.dataModify) {
|
|
9636
|
+
value = mainSeries.dataModify.modifyValue(value);
|
|
9637
|
+
previousValue = mainSeries.dataModify
|
|
9638
|
+
.modifyValue(previousValue);
|
|
9639
|
+
}
|
|
9714
9640
|
// Checks if this is the point with the
|
|
9715
9641
|
// lowest close value and if so, adds it calculations
|
|
9716
9642
|
if (value <= zone.start && zone.index === 0) {
|
|
@@ -9905,7 +9831,7 @@
|
|
|
9905
9831
|
* @extends series,plotOptions.vbp
|
|
9906
9832
|
* @since 6.0.0
|
|
9907
9833
|
* @product highstock
|
|
9908
|
-
* @excluding dataParser, dataURL
|
|
9834
|
+
* @excluding dataParser, dataURL, compare, compareBase, compareStart
|
|
9909
9835
|
* @requires stock/indicators/indicators
|
|
9910
9836
|
* @requires stock/indicators/volume-by-price
|
|
9911
9837
|
* @apioption series.vbp
|
|
@@ -10120,7 +10046,7 @@
|
|
|
10120
10046
|
|
|
10121
10047
|
return VWAPIndicator;
|
|
10122
10048
|
});
|
|
10123
|
-
_registerModule(_modules, 'Stock/Indicators/WilliamsR/WilliamsRIndicator.js', [_modules['
|
|
10049
|
+
_registerModule(_modules, 'Stock/Indicators/WilliamsR/WilliamsRIndicator.js', [_modules['Stock/Indicators/ArrayUtilities.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (AU, SeriesRegistry, U) {
|
|
10124
10050
|
/* *
|
|
10125
10051
|
*
|
|
10126
10052
|
* License: www.highcharts.com/license
|
|
@@ -10144,7 +10070,6 @@
|
|
|
10144
10070
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
10145
10071
|
};
|
|
10146
10072
|
})();
|
|
10147
|
-
var getArrayExtremes = ReduceArrayMixin.getArrayExtremes;
|
|
10148
10073
|
var SMAIndicator = SeriesRegistry.seriesTypes.sma;
|
|
10149
10074
|
var extend = U.extend,
|
|
10150
10075
|
isArray = U.isArray,
|
|
@@ -10197,7 +10122,7 @@
|
|
|
10197
10122
|
// with (+1)
|
|
10198
10123
|
for (i = period - 1; i < yValLen; i++) {
|
|
10199
10124
|
slicedY = yVal.slice(i - period + 1, i + 1);
|
|
10200
|
-
extremes = getArrayExtremes(slicedY, low, high);
|
|
10125
|
+
extremes = AU.getArrayExtremes(slicedY, low, high);
|
|
10201
10126
|
LL = extremes[0];
|
|
10202
10127
|
HH = extremes[1];
|
|
10203
10128
|
CC = yVal[i][close];
|
|
@@ -10899,7 +10824,7 @@
|
|
|
10899
10824
|
* @since 7.0.0
|
|
10900
10825
|
* @product highstock
|
|
10901
10826
|
* @requires stock/indicators/indicators
|
|
10902
|
-
* @requires stock/indicators/
|
|
10827
|
+
* @requires stock/indicators/regressions
|
|
10903
10828
|
* @optionparent plotOptions.linearregression
|
|
10904
10829
|
*/
|
|
10905
10830
|
LinearRegressionIndicator.defaultOptions = merge(SMAIndicator.defaultOptions, {
|
|
@@ -10978,7 +10903,7 @@
|
|
|
10978
10903
|
* @product highstock
|
|
10979
10904
|
* @excluding dataParser,dataURL
|
|
10980
10905
|
* @requires stock/indicators/indicators
|
|
10981
|
-
* @requires stock/indicators/
|
|
10906
|
+
* @requires stock/indicators/regressions
|
|
10982
10907
|
* @apioption series.linearregression
|
|
10983
10908
|
*/
|
|
10984
10909
|
''; // to include the above in the js output
|
|
@@ -11062,7 +10987,7 @@
|
|
|
11062
10987
|
* @since 7.0.0
|
|
11063
10988
|
* @product highstock
|
|
11064
10989
|
* @requires stock/indicators/indicators
|
|
11065
|
-
* @requires
|
|
10990
|
+
* @requires stock/indicators/regressions
|
|
11066
10991
|
* @optionparent plotOptions.linearregressionslope
|
|
11067
10992
|
*/
|
|
11068
10993
|
LinearRegressionSlopesIndicator.defaultOptions = merge(LinearRegressionIndicator.defaultOptions);
|
|
@@ -11087,7 +11012,7 @@
|
|
|
11087
11012
|
* @product highstock
|
|
11088
11013
|
* @excluding dataParser,dataURL
|
|
11089
11014
|
* @requires stock/indicators/indicators
|
|
11090
|
-
* @requires stock/indicators/
|
|
11015
|
+
* @requires stock/indicators/regressions
|
|
11091
11016
|
* @apioption series.linearregressionslope
|
|
11092
11017
|
*/
|
|
11093
11018
|
''; // to include the above in the js output
|
|
@@ -11171,7 +11096,7 @@
|
|
|
11171
11096
|
* @since 7.0.0
|
|
11172
11097
|
* @product highstock
|
|
11173
11098
|
* @requires stock/indicators/indicators
|
|
11174
|
-
* @requires
|
|
11099
|
+
* @requires stock/indicators/regressions
|
|
11175
11100
|
* @optionparent plotOptions.linearregressionintercept
|
|
11176
11101
|
*/
|
|
11177
11102
|
LinearRegressionInterceptIndicator.defaultOptions = merge(LinearRegressionIndicator.defaultOptions);
|
|
@@ -11196,7 +11121,7 @@
|
|
|
11196
11121
|
* @product highstock
|
|
11197
11122
|
* @excluding dataParser,dataURL
|
|
11198
11123
|
* @requires stock/indicators/indicators
|
|
11199
|
-
* @requires stock/indicators/
|
|
11124
|
+
* @requires stock/indicators/regressions
|
|
11200
11125
|
* @apioption series.linearregressionintercept
|
|
11201
11126
|
*/
|
|
11202
11127
|
''; // to include the above in the js output
|
|
@@ -11290,7 +11215,7 @@
|
|
|
11290
11215
|
* @since 7.0.0
|
|
11291
11216
|
* @product highstock
|
|
11292
11217
|
* @requires stock/indicators/indicators
|
|
11293
|
-
* @requires
|
|
11218
|
+
* @requires stock/indicators/regressions
|
|
11294
11219
|
* @optionparent plotOptions.linearregressionangle
|
|
11295
11220
|
*/
|
|
11296
11221
|
LinearRegressionAngleIndicator.defaultOptions = merge(LinearRegressionIndicator.defaultOptions, {
|
|
@@ -11320,14 +11245,14 @@
|
|
|
11320
11245
|
* @product highstock
|
|
11321
11246
|
* @excluding dataParser,dataURL
|
|
11322
11247
|
* @requires stock/indicators/indicators
|
|
11323
|
-
* @requires stock/indicators/
|
|
11248
|
+
* @requires stock/indicators/regressions
|
|
11324
11249
|
* @apioption series.linearregressionangle
|
|
11325
11250
|
*/
|
|
11326
11251
|
''; // to include the above in the js output
|
|
11327
11252
|
|
|
11328
11253
|
return LinearRegressionAngleIndicator;
|
|
11329
11254
|
});
|
|
11330
|
-
_registerModule(_modules, 'Stock/Indicators/ABands/ABandsIndicator.js', [_modules['
|
|
11255
|
+
_registerModule(_modules, 'Stock/Indicators/ABands/ABandsIndicator.js', [_modules['Stock/Indicators/MultipleLinesComposition.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (MultipleLinesComposition, SeriesRegistry, U) {
|
|
11331
11256
|
/* *
|
|
11332
11257
|
*
|
|
11333
11258
|
* License: www.highcharts.com/license
|
|
@@ -11545,16 +11470,13 @@
|
|
|
11545
11470
|
return ABandsIndicator;
|
|
11546
11471
|
}(SMAIndicator));
|
|
11547
11472
|
extend(ABandsIndicator.prototype, {
|
|
11548
|
-
drawGraph: MultipleLinesMixin.drawGraph,
|
|
11549
|
-
getTranslatedLinesNames: MultipleLinesMixin.getTranslatedLinesNames,
|
|
11550
11473
|
linesApiNames: ['topLine', 'bottomLine'],
|
|
11551
11474
|
nameBase: 'Acceleration Bands',
|
|
11552
11475
|
nameComponents: ['period', 'factor'],
|
|
11553
11476
|
pointArrayMap: ['top', 'middle', 'bottom'],
|
|
11554
|
-
pointValKey: 'middle'
|
|
11555
|
-
toYData: MultipleLinesMixin.toYData,
|
|
11556
|
-
translate: MultipleLinesMixin.translate
|
|
11477
|
+
pointValKey: 'middle'
|
|
11557
11478
|
});
|
|
11479
|
+
MultipleLinesComposition.compose(ABandsIndicator);
|
|
11558
11480
|
SeriesRegistry.registerSeriesType('abands', ABandsIndicator);
|
|
11559
11481
|
/* *
|
|
11560
11482
|
*
|
|
@@ -11754,7 +11676,7 @@
|
|
|
11754
11676
|
|
|
11755
11677
|
return TrendLineIndicator;
|
|
11756
11678
|
});
|
|
11757
|
-
_registerModule(_modules, 'Stock/Indicators/DisparityIndex/DisparityIndexIndicator.js', [_modules['
|
|
11679
|
+
_registerModule(_modules, 'Stock/Indicators/DisparityIndex/DisparityIndexIndicator.js', [_modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (SeriesRegistry, U) {
|
|
11758
11680
|
/* *
|
|
11759
11681
|
* (c) 2010-2021 Rafal Sebestjanski
|
|
11760
11682
|
*
|
|
@@ -11804,6 +11726,11 @@
|
|
|
11804
11726
|
var DisparityIndexIndicator = /** @class */ (function (_super) {
|
|
11805
11727
|
__extends(DisparityIndexIndicator, _super);
|
|
11806
11728
|
function DisparityIndexIndicator() {
|
|
11729
|
+
/* *
|
|
11730
|
+
*
|
|
11731
|
+
* Static Properties
|
|
11732
|
+
*
|
|
11733
|
+
* */
|
|
11807
11734
|
var _this = _super !== null && _super.apply(this,
|
|
11808
11735
|
arguments) || this;
|
|
11809
11736
|
/* *
|
|
@@ -11827,13 +11754,8 @@
|
|
|
11827
11754
|
ctx = this, // Disparity Index indicator
|
|
11828
11755
|
params = args[1].params, // options.params
|
|
11829
11756
|
averageType = params && params.average ? params.average : void 0;
|
|
11830
|
-
ctx.averageIndicator =
|
|
11831
|
-
|
|
11832
|
-
// Check if the required average indicator modules is loaded
|
|
11833
|
-
RequiredIndicatorMixin.isParentLoaded(ctx.averageIndicator, averageType, ctx.type, function (indicator) {
|
|
11834
|
-
indicator.prototype.init.apply(ctx, args);
|
|
11835
|
-
return;
|
|
11836
|
-
});
|
|
11757
|
+
ctx.averageIndicator = SeriesRegistry.seriesTypes[averageType] || SMAIndicator;
|
|
11758
|
+
ctx.averageIndicator.prototype.init.apply(ctx, args);
|
|
11837
11759
|
};
|
|
11838
11760
|
DisparityIndexIndicator.prototype.calculateDisparityIndex = function (curPrice, periodAverage) {
|
|
11839
11761
|
return correctFloat(curPrice - periodAverage) / periodAverage * 100;
|
|
@@ -11899,10 +11821,12 @@
|
|
|
11899
11821
|
params: {
|
|
11900
11822
|
/**
|
|
11901
11823
|
* The average used to calculate the Disparity Index indicator.
|
|
11902
|
-
* By default it uses SMA. To use other
|
|
11903
|
-
* the `stock/indicators/
|
|
11824
|
+
* By default it uses SMA, with EMA as an option. To use other
|
|
11825
|
+
* averages, e.g. TEMA, the `stock/indicators/tema.js` file needs to
|
|
11826
|
+
* be loaded.
|
|
11904
11827
|
*
|
|
11905
|
-
* If value is different than ema
|
|
11828
|
+
* If value is different than `ema`, `dema`, `tema` or `wma`,
|
|
11829
|
+
* then sma is used.
|
|
11906
11830
|
*/
|
|
11907
11831
|
average: 'sma',
|
|
11908
11832
|
index: 3
|
|
@@ -11926,6 +11850,11 @@
|
|
|
11926
11850
|
* Default Export
|
|
11927
11851
|
*
|
|
11928
11852
|
* */
|
|
11853
|
+
/* *
|
|
11854
|
+
*
|
|
11855
|
+
* API Options
|
|
11856
|
+
*
|
|
11857
|
+
* */
|
|
11929
11858
|
/**
|
|
11930
11859
|
* The Disparity Index indicator series.
|
|
11931
11860
|
* If the [type](#series.disparityindex.type) option is not
|