Exponential Moving Average (EMA)

Overview

An exponential moving average (EMA), sometimes also called an exponentially weighted moving average (EWMA), applies weighting factors which decrease exponentially. The weighting for each older data point decreases exponentially, giving much more importance to recent observations while still not discarding older observations entirely.

AnyChart Stock allows you to add EMA with desired period to any of your charts.

Mathematical description of the indicator please see at: Mathematical Description of Technical Indicators

to top

Adding indicator

To add any indicator to the chart, you need to use Data Provider with the fields required by the indicator. When such Data Provider is ready - you can add indicator to the chart.

Preparing Data Provider

EMA indicator needs Data Provider with Value or Close fields.

Sample XML of Data Provider, which can be used to create EMA indicator:

XML/JSON Syntax
Plain code
03     <data_provider data_set="dataSet1" id="dpMsft">
04       <fields>
05         <field type="Close" column="4" approximation_type="Close" />
06       </fields>
07     </data_provider>
01{
03    {
04      dataSet: "dataSet1",
05      id: "dpMsft",
06      fields: [
07        {
08          type: "Close",
09          column: 4,
10          approximationType: "Close"
11        }
12      ]
13    }
14  ]
15}

In case if you use Data Provider for OHLC or Candlestick XML looks like that:

XML/JSON Syntax
Plain code
03     <data_provider data_set="dataSet1" id="dp1">
04       <fields>
05         <field type="Open" column="1" approximation_type="Open" />
06         <field type="High" column="2" approximation_type="High" />
07         <field type="Low" column="3" approximation_type="Low" />
08         <field type="Close" column="4" approximation_type="Close" />
09       </fields>
10     </data_provider>
01{
03    {
04      dataSet: "dataSet1",
05      id: "dp1",
06      fields: [
07        {
08          type: "Open",
09          column: 1,
10          approximationType: "Open"
11        },
12        {
13          type: "High",
14          column: 2,
15          approximationType: "High"
16        },
17        {
18          type: "Low",
19          column: 3,
20          approximationType: "Low"
21        },
22        {
23          type: "Close",
24          column: 4,
25          approximationType: "Close"
26        }
27      ]
28    }
29  ]
30}

to top

Indicator Declaration

As soon as Data Provider is ready you can add it to the chart.

EMA indicator is usually used as an Overlay indicator and displayed on the same chart with data series (stock data). So we should declare it in the chart where series is displayed.

XML for EMA declaration:

XML/JSON Syntax
Plain code
01 <chart>
02   <series_list>
03     <series type="Line" data_provider="dpMsft" color="#0066DD">
04       <line_series thickness="2" />
05       <name><![CDATA[MSFT]]></name>
06     </series>
07   </series_list>
09     <technical_indicator type="EMA" data_provider="dpMsft" />
11 </chart>
01{
02  seriesList: [
03    {
04      type: "Line",
05      dataProvider: "dpMsft",
06      color: "#0066DD",
07      lineSeries: {
08        thickness: 2
09      },
10      name: "MSFT"
11    }
12  ],
14    {
15      type: "EMA",
16      dataProvider: "dpMsft"
17    }
18  ]
19}

As you can see EMA type is set to indicator using type attribute, and data_provider attribute specifies Data Provider with series and indicator data.

Live sample of the chart with EMA indicator:

Live Sample:  Technical Indicators - Adding EMA to a Chart

to top

Indicator parameters

Exponential Moving Average Indicator has only one type specific parameter - period. Period is set in <ema_indicator> node, where all settings for EMA indicator are set.

XML for setting EMA period:

XML/JSON Syntax
Plain code
01{
02  type: "EMA",
03  dataProvider: "dpMsft",
04  emaIndicator: {
05    period: 20
06  }
07}

As you can see you just need to set period attribute in <ema_indicator> node, this attribute accepts any integer greater than 1.

Live sample below shows two EMA: EMA(20) and EMA(80):

Live Sample:  Technical Indicators - EMA Parameters

to top

Visualization

To visualize and tune visualization of technical indicators AnyChart Stock Component uses the same methods as for the data series.

By default EMA is shown as series of Line type, but you can use almost any of available series types to show it on the chart - Spline, Area or Stick, for example.

EMA indicator settings are contained in <ema_indicator> node, also in this node you can put <series> subnode - this node defines how exactly indicator is displayed on the chart. This node is identical to <series> node used to describe data series, so you can do with indicator anything you can do with series.

Sample XML for changing indicator visualization:

XML/JSON Syntax
Plain code
01 <technical_indicator type="EMA" data_provider="dpMsft">
02   <ema_indicator period="50">
03     <series type="Spline" color="Green">
04       <line_series thickness="2" />
05       <name><![CDATA[EMA(50)]]></name>
06     </series>
07   </ema_indicator>
01{
02  type: "EMA",
03  dataProvider: "dpMsft",
04  emaIndicator: {
05    period: 50,
06    series: {
07      type: "Spline",
08      color: "Green",
09      lineSeries: {
10        thickness: 2
11      },
12      name: "EMA(50)"
13    }
14  }
15}

As you can see we set period, color, series type is set to Spline, line width is set to 2px, and name is set to EMA(50).

Live sample below shows settings described above:

Live Sample:  Technical Indicators - EMA Visualization Settings

Another example of changing visualization of EMA indicator - it is shown as SplineArea:

Live Sample:  Technical Indicators - EMA shown as SplineArea

to top