Skip to main content

AverageTrueRangeIndicator Class

An average true range (ATR) indicator.

Namespace: DevExpress.XamarinForms.Charts

Assembly: DevExpress.XamarinForms.Charts.dll

NuGet Package: DevExpress.XamarinForms.Charts

Declaration

public class AverageTrueRangeIndicator :
    CalculatedSeries

Remarks

This indicator looks as follows:

Average True Range Indicator

ChartView also supports the following oscillators (an oscillator is a trend indicator banded between two extreme values used to discover short-term overbought or oversold conditions):

Add an Indicator to a Series

This example demonstrates how to build an average true range indicator for a stock series. Associate this indicator with a separate Y axis and place it below the stock series.

  1. Add the AverageTrueRangeIndicator object to the chart’s collection of series (ChartView.Series).
  2. Set the indicator’s Data property to a CalculatedSeriesDataAdapter class instance. Use this object’s Series property to specify a series for which the indicator should be calculated.
  3. Use the PointsCount property to specify the number of data points used to calculate the indicator.
<dxc:ChartView x:Name="chart">
    <dxc:ChartView.Series>
        <dxc:StockSeries>
            <dxc:StockSeries.Data>
                <dxc:SeriesDataAdapter DataSource="{Binding StockPrices}" ArgumentDataMember="Date">
                    <dxc:ValueDataMember Type="High" Member="High" />
                    <dxc:ValueDataMember Type="Low" Member="Low" />
                    <dxc:ValueDataMember Type="Open" Member="Open" />
                    <dxc:ValueDataMember Type="Close" Member="Close" />
                </dxc:SeriesDataAdapter>
            </dxc:StockSeries.Data>
        </dxc:StockSeries>

        <dxc:AverageTrueRangeIndicator DisplayName="Average True Range"
                                       PointsCount="14">
            <dxc:AverageTrueRangeIndicator.Data>
                <dxc:CalculatedSeriesDataAdapter Series="{Binding Series[0], Source={x:Reference chart}}"/>
            </dxc:AverageTrueRangeIndicator.Data>
            <dxc:AverageTrueRangeIndicator.AxisY>
                <dxc:NumericAxisY Position="Far" AlwaysShowZeroLevel="False" GridAlignment="2">
                    <dxc:NumericAxisY.Range>
                        <dxc:NumericRange Min="8" Max="12"/>
                    </dxc:NumericAxisY.Range>
                    <dxc:NumericAxisY.Layout>
                        <dxc:AxisLayout Anchor1="0" Anchor2="0.3"/>
                    </dxc:NumericAxisY.Layout>
                </dxc:NumericAxisY>
            </dxc:AverageTrueRangeIndicator.AxisY>
        </dxc:AverageTrueRangeIndicator>
    </dxc:ChartView.Series>

    <dxc:ChartView.AxisY>
        <dxc:NumericAxisY Position="Far" AlwaysShowZeroLevel="false" AutoRangeMode="VisibleValues">
            <dxc:NumericAxisY.Layout>
                <dxc:AxisLayout Anchor1="0.4" Anchor2="1"/>
            </dxc:NumericAxisY.Layout>
            <dxc:NumericAxisY.Label>
                <dxc:AxisLabel Position="Outside" TextFormat="$#"/>
            </dxc:NumericAxisY.Label>
        </dxc:NumericAxisY>
    </dxc:ChartView.AxisY>
</dxc:ChartView>

Customize Indicator Appearance

To change the indicator line appearance, set the AverageTrueRangeIndicator.Style property to the LineIndicatorStyle object with the specified Stroke and StrokeThickness properties.

<dxc:AverageTrueRangeIndicator>
    <dxc:AverageTrueRangeIndicator.Style>
        <dxc:LineIndicatorStyle Stroke="#e95ddc" StrokeThickness="2"/>
    </dxc:AverageTrueRangeIndicator.Style>

    <!--Indicator Data-->
</dxc:AverageTrueRangeIndicator>

Inheritance

See Also