Skip to content

blacklabel/indicators

Repository files navigation

#f03c15 We encourage you to use Highstock 6+ as it has a vast range of technical analysis indicators build in. This plugin was build for older versions of Highstock

Indicators - Highstock module

Indicators available in this plugin: SMA, EMA, ATR, RSI. You can use these indicators for free.

We also have other indicators available: Bollinger Bands, MACD, Momentum, CCI, Stochastic, Rate of Change (ROC), Accumulation / distribution (AD), Pivot Points, ZigZag, Weighted Moving Average (WMA), PSAR, MFI, Price Envelopes.
If you're are interested in purchasing them, developing new indicators or any other tools, please contact us at: [email protected]

You may also want to check our other demo here: http://demo.blacklabel.pl.

Go to project page to see this module in action: http://blacklabel.github.io/indicators/

Requirements

  • Version 2.0+ requires the latest Highstock (v2.1.5+)
  • Version 1.1 requires Highstock v2.1.5
  • Version <1.1 supported since Highstock v1.3.9 to Highstock v2.1.4

Versions

  • 2.x - Improved logic for calculations and performance. Values are based on initial points, not grouped. When points are grouped by dataGrouping then indicators values are grouped too.
  • 1.x - Initial version of Indicators.js. Calculations are based on grouped points (aka dataGrouping)

Installation

  • Like any other Highcharts module (e.g. exporting), add <script> tag pointing to indicators.js below Highcharts script tag. Then attach all required indicators (like ema.js, rsi.js).

  • For NPM users:

var Highcharts = require('highcharts/highstock');
    require('indicators')(Highcharts);
    require('sma')(Highcharts);
    require('ema')(Highcharts);
    require('rsi')(Highcharts);
    require('atr')(Highcharts);
  • For BOWER users:
bower install highcharts-indicators

Code

The latest code is available on github: https://github.com/blacklabel/indicators/

Usage and demos

indicators: [{
            id: 'AAPL',
            type: 'sma',
            params: {
                period: 5,
            },
            tooltip:{
                pointFormat: '<span style="color: {point.color}; ">pointFormat SMA: </span> {point.y}<br>'
            },
        }, {
            id: 'AAPL',
            type: 'ema',
            params: {
                period: 5,
                index: 0
            },
            styles: {
                strokeWidth: 2,
                stroke: 'green',
                dashstyle: 'solid'
            }
        }, {
            id: 'AAPL',
            type: 'atr',
            params: {
                period: 14,
            },
            styles: {
                strokeWidth: 2,
                stroke: 'orange',
                dashstyle: 'solid'
            },
            yAxis: {
                lineWidth:2,
                title: {
                    text:'My ATR title'
                }
            }   
        }, {
            id: 'AAPL',
            type: 'rsi',
            params: {
                period: 14,
                overbought: 70,
                oversold: 30
            },
            styles: {
                strokeWidth: 2,
                stroke: 'black',
                dashstyle: 'solid'
            },
            yAxis: {
                lineWidth:2,
                title: {
                    text:'My RSI title'
                }
            }   
}],
tooltip:{
    enabledIndicators: true
},

Parameters

Property Type Description
idStringid of series
typeStringtype of indicator (one of: sma, ema, atr, rsi)
showInLegendBooleandetermines if indicator should be visible in the legend. Defaults to false.
nameStringname is used in legend and tooltip to display indicator. By default it's the same as type.
stylesObjectcolor, dashstyle, width etc. for a indicator line
yAxis (ATR/RSI)ObjectyAxis object like in Highcharts, options for additional yAxis
paramsObjectconfig options for indicator
params.approximation (SMA/EMA/ATR/RSI)String/FunctionThe same property as in dataGrouping.approximation for Highstock. Supported since version 2.0.0. Defaults to "average".
params.period (SMA/EMA/ATR/RSI)Numberbase period for indicator (it's number of points to be calculated). Defaults to 14.
params.index (SMA/EMA)Numbery-value index. Useful when using candlestick/ohlc/range series to determine which value (open/high/low/close) should be used in indicator. Defaults to 0.
params.overbought (RSI)Numberoverbought value between 0-100. Defaults to 70.
params.oversold (RSI)Numberoversold value between 0-100. Defaults to 30.
tooltip.pointFormat String point.color and point.y return values from indicator. Disabled by default.

###New options/methods in Chart:

Method Version: Description
chart.addIndicator(options, [redraw]) v 1.0.0+ Add new indicator with given options. Optionally redraw chart.
chart.indicators.allItems v 1.0.0+ Array containing all indicators.
chart.alignAxes v 1.0.9+ true/false. When idicator requires separate yAxis (like ATR or RSI) then indicators plugin will update heights of the axes to fit plotting area. Disable it and set yAxis.top and yAxis.height when you want different heights for the y-axes. Defaults to true. Note: When disabled, top and height options need to be set for all axes for better view.
tooltip.enabledIndicators v 1.0.0+ true/false, show indicators in tooltip. Disabled by default.
Highcharts.approximations v 2.0.0+ Object containing built-in approximations (functions) in Highstock. For more details see dataGrouping.approximation

###Indicator object

Method Description
indicator.update(options) Update indicator with given options
indicator.destroy() Destroy indicator
indicator.setVisible(true|false) Hide or show indicator.