RocIndicator<T, D> class

Renders the ROC indicator.

It's commonly used in technical analysis to identify trends and potential reversal points, and it suggests increasing momentum in the direction of the trend. A positive ROC indicates that the price is increasing, a negative ROC indicates that the price is decreasing, and the magnitude of the ROC indicates the strength of the price change.

The indicator elements are:

  • The dataSource, which is used provide data for the technical indicators without any series.
  • The xValueMapper, which is a value mapper to map the x values with the technical indicator.
  • The highValueMapper, which is a value mapper to map the high values with the technical indicator.
  • The lowValueMapper, which is a value mapper to map the low values with the technical indicator.
  • The openValueMapper, which is a value mapper to map the open values with the technical indicator.
  • The closeValueMapper, which is a value mapper to map the close values with the technical indicator.
  • The xAxisName and yAxisName, which is used map the technical indicator with the multiple axes.
  • The seriesName, which is used map the technical indicator with the series based on names.
  • The centerLineColor and centerLineWidth, which is used to customize center line color and its width.
  • The period, which is used determines the start point for the rendering of technical indicator.

Formula

Data (Closing Prices for Each Day):

  • Day 1: $100
  • Day 2: $105
  • Day 3: $110
  • Day 4: $120
  • Day 5: $103
  • ...
  • Day 15: $110
  • Day 16: $108
  • Day 29: $110
  • Day 30: $120

Calculation of ROC:

  • ROC = ((currentPrice - priceNPeriodsAgo) / priceNPeriodsAgo) * 100;

  • ROC on Day 3:

  • If we need to calculate the 3rd day ROC, the current value is 110, and previous 2nd day value is 105 (110-105/105) × 100 = 4.76%

  • ROC on Day 16:

  • If we need to calculate the 16th day ROC, the current value is 108, the previous 15th day value is 110 (108-110/110) × 100 = -1.8%

  • ROC on Day 30:

  • (120−110/110) × 100 = 9.09%

Example

This snippet shows how to create a RocIndicator by mapping the series data source.


 @override
 Widget build(BuildContext context) {
   return MaterialApp(
     home: Scaffold(
       body: Center(
         child: SfCartesianChart(
           primaryXAxis: const DateTimeAxis(),
           primaryYAxis: const NumericAxis(),
           axes: const <ChartAxis>[
             NumericAxis(
               majorGridLines: MajorGridLines(width: 0),
               opposedPosition: true,
               name: 'yAxis',
             ),
           ],
           indicators: <TechnicalIndicator<ChartSampleData, DateTime>>[
             RocIndicator<ChartSampleData, DateTime>(
               seriesName: 'AAPL',
               yAxisName: 'yAxis',
               period: 15,
             ),
           ],
           series: <CartesianSeries<ChartSampleData, DateTime>>[
             HiloOpenCloseSeries<ChartSampleData, DateTime>(
               dataSource: getChartData(),
               xValueMapper: (ChartSampleData sales, _) => sales.x as DateTime,
               lowValueMapper: (ChartSampleData sales, _) => sales.low,
               highValueMapper: (ChartSampleData sales, _) => sales.high,
               openValueMapper: (ChartSampleData sales, _) => sales.open,
               closeValueMapper: (ChartSampleData sales, _) => sales.close,
               name: 'AAPL',
             ),
           ],
         ),
       ),
     ),
   );
 }

This snippet shows how to create a RocIndicator using a direct data source.


 @override
 Widget build(BuildContext context) {
   return MaterialApp(
     home: Scaffold(
       body: Center(
         child: SfCartesianChart(
           primaryXAxis: const DateTimeAxis(),
           primaryYAxis: const NumericAxis(),
           axes: const <ChartAxis>[
             NumericAxis(
               majorGridLines: MajorGridLines(width: 0),
               opposedPosition: true,
               name: 'yAxis',
             ),
           ],
           indicators: <TechnicalIndicator<ChartSampleData, DateTime>>[
             RocIndicator<ChartSampleData, DateTime>(
               dataSource: getChartData(),
               xValueMapper: (ChartSampleData sales, _) => sales.x as DateTime,
               lowValueMapper: (ChartSampleData sales, _) => sales.low,
               highValueMapper: (ChartSampleData sales, _) => sales.high,
               openValueMapper: (ChartSampleData sales, _) => sales.open,
               closeValueMapper: (ChartSampleData sales, _) => sales.close,
               yAxisName: 'yAxis',
               period: 15,
             ),
           ],
         ),
       ),
     ),
   );
 }
Inheritance
Annotations

Constructors

RocIndicator({bool isVisible = true, String? xAxisName, String? yAxisName, String? seriesName, List<double> dashArray = const <double>[0, 0], double animationDuration = 1500, double animationDelay = 0, List<T>? dataSource, ChartValueMapper<T, D>? xValueMapper, ChartValueMapper<T, num>? highValueMapper, ChartValueMapper<T, num>? lowValueMapper, ChartValueMapper<T, num>? openValueMapper, ChartValueMapper<T, num>? closeValueMapper, String? name, bool isVisibleInLegend = true, LegendIconType legendIconType = LegendIconType.seriesType, String? legendItemText, Color signalLineColor = Colors.blue, double signalLineWidth = 2, int period = 14, Color centerLineColor = Colors.red, double centerLineWidth = 2, ChartIndicatorRenderCallback? onRenderDetailsUpdate})
Creating an argument constructor of ROCIndicator class.

Properties

animationDelay double
Delay duration of the technical indicator's animation. It takes a millisecond value as input. By default, the technical indicator will get animated for the specified duration. If animationDelay is specified, then the technical indicator will begin to animate after the specified duration.
finalinherited
animationDuration double
Animation duration for the technical indicators.
finalinherited
centerLineColor Color
Center line color of the ROC indicator.
final
centerLineWidth double
Center line width of the ROC indicator.
final
closeValueMapper ChartIndexedValueMapper<num?>?
Value mapper to map the close values with technical indicators.
finalinherited
dashArray List<double>
Property to provide dash array for the technical indicators.
finalinherited
dataSource List<T>?
Property to provide data for the technical indicators without any series.
finalinherited
hashCode int
The hash code for this object.
no setteroverride
highValueMapper ChartIndexedValueMapper<num?>?
Value mapper to map the high values with technical indicators.
finalinherited
isVisible bool
Boolean property to change the visibility of the technical indicators.
finalinherited
isVisibleInLegend bool
Boolean property to determine the rendering of legends for the technical indicators.
finalinherited
legendIconType LegendIconType
Property to provide icon type for the technical indicators legend.
finalinherited
legendItemText String?
Property to provide the text for the technical indicators legend.
finalinherited
lowValueMapper ChartIndexedValueMapper<num?>?
Value mapper to map the low values with technical indicators.
finalinherited
name String?
Property to provide name for the technical indicators.
finalinherited
onRenderDetailsUpdate ChartIndicatorRenderCallback?
Callback which gets called while rendering the indicators.
finalinherited
openValueMapper ChartIndexedValueMapper<num?>?
Value mapper to map the open values with technical indicators.
finalinherited
period int
Period determines the start point for the rendering of technical indicators.
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
seriesName String?
Property to link indicators to a series based on names.
finalinherited
signalLineColor Color
Property to provide the color of the signal line in the technical indicators.
finalinherited
signalLineWidth double
Property to provide the width of the signal line in the technical indicators.
finalinherited
volumeValueMapper ChartIndexedValueMapper<num?>?
Volume of series.
finalinherited
xAxisName String?
Property to map the technical indicators with the axes.
finalinherited
xValueMapper ChartIndexedValueMapper<D>?
Value mapper to map the x values with technical indicators.
finalinherited
yAxisName String?
Property to map the technical indicators with the axes.
finalinherited

Methods

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() String
A string representation of this object.
override

Operators

operator ==(Object other) bool
The equality operator.
override