Skip to main content

CommodityChannelIndexIndicator Class

A commodity channel index (CCI) indicator.

Namespace: DevExpress.Maui.Charts

Assembly: DevExpress.Maui.Charts.dll

NuGet Package: DevExpress.Maui.Charts

Declaration

public class CommodityChannelIndexIndicator :
    CalculatedSeries

Remarks

This indicator looks as follows:

Commodity Channel Index 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 builds a commodity channel index indicator for a stock series. Associate this indicator with a separate Y axis and place it below the stock series.

  1. Add the CommodityChannelIndexIndicator 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:CommodityChannelIndexIndicator DisplayName="Commodity Channel Index"
                                            PointsCount="14">
            <dxc:CommodityChannelIndexIndicator.Data>
                <dxc:CalculatedSeriesDataAdapter Series="{Binding Series[0], Source={x:Reference chart}}"/>
            </dxc:CommodityChannelIndexIndicator.Data>
            <dxc:CommodityChannelIndexIndicator.AxisY>
                <dxc:NumericAxisY Position="Far" AlwaysShowZeroLevel="False" GridAlignment="600">
                    <dxc:NumericAxisY.Range>
                        <dxc:NumericRange Min="-900" Max="600"/>
                    </dxc:NumericAxisY.Range>
                    <dxc:NumericAxisY.Layout>
                        <dxc:AxisLayout Anchor1="0" Anchor2="0.3"/>
                    </dxc:NumericAxisY.Layout>
                </dxc:NumericAxisY>
            </dxc:CommodityChannelIndexIndicator.AxisY>
        </dxc:CommodityChannelIndexIndicator>
    </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 CommodityChannelIndexIndicator.Style property to the LineIndicatorStyle object with the specified Stroke and StrokeThickness properties.

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

    <!--Indicator Data-->
</dxc:CommodityChannelIndexIndicator>
See Also