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
-
- Object
- TechnicalIndicator<
T, D> - RocIndicator
- 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