diff --git a/finance/build.gradle b/finance/build.gradle index e9f2fc1..636d013 100644 --- a/finance/build.gradle +++ b/finance/build.gradle @@ -33,7 +33,7 @@ dependencies { api "com.tictactec:ta-lib:0.4.0" // you can reference aars from Maven repository - def sciChartVersion = '4.3.0.4686' + def sciChartVersion = '4.4.1.4804' api(group: 'com.scichart.library', name: 'core', version: "$sciChartVersion", ext: 'aar') api(group: 'com.scichart.library', name: 'data', version: "$sciChartVersion", ext: 'aar') api(group: 'com.scichart.library', name: 'drawing', version: "$sciChartVersion", ext: 'aar') diff --git a/finance/src/main/java/com/scitrader/finance/pane/MainPane.kt b/finance/src/main/java/com/scitrader/finance/pane/MainPane.kt index 367d26c..ee2f15c 100644 --- a/finance/src/main/java/com/scitrader/finance/pane/MainPane.kt +++ b/finance/src/main/java/com/scitrader/finance/pane/MainPane.kt @@ -8,7 +8,7 @@ import androidx.appcompat.widget.AppCompatButton import com.scichart.charting.modifiers.AxisDragModifierBase import com.scichart.charting.visuals.ISciChartSurface import com.scichart.charting.visuals.SciChartSurface -import com.scichart.charting.visuals.axes.DateAxis +import com.scichart.charting.visuals.axes.IndexDateAxis import com.scichart.charting.visuals.axes.IAxis import com.scichart.charting.visuals.layout.CanvasLayout import com.scichart.data.model.DateRange @@ -63,7 +63,7 @@ class MainPane( modifiers.modifierGroup.childModifiers.add(yAxisDragModifier) xRangeButton.setOnClickListener { - (chart.xAxes.firstOrNull() as? DateAxis)?.let { xAxis -> + (chart.xAxes.firstOrNull() as? IndexDateAxis)?.let { xAxis -> val currentRangeDiff = xAxis.visibleRange.diff.time.toDouble() val xAxisOffset = currentRangeDiff / 5 val max = System.currentTimeMillis() + xAxisOffset diff --git a/finance/src/main/java/com/scitrader/finance/pane/axes/FinanceDateXAxis.kt b/finance/src/main/java/com/scitrader/finance/pane/axes/FinanceDateXAxis.kt index f190a5c..9027593 100644 --- a/finance/src/main/java/com/scitrader/finance/pane/axes/FinanceDateXAxis.kt +++ b/finance/src/main/java/com/scitrader/finance/pane/axes/FinanceDateXAxis.kt @@ -6,12 +6,12 @@ import android.view.View import com.scichart.charting.numerics.labelProviders.CalendarDateLabelFormatter import com.scichart.charting.numerics.labelProviders.DateLabelProvider import com.scichart.charting.visuals.axes.AxisModifierSurface -import com.scichart.charting.visuals.axes.DateAxis +import com.scichart.charting.visuals.axes.IndexDateAxis import com.scichart.core.utility.StringUtil import com.scichart.data.model.DateRange import java.util.* -open class FinanceDateXAxis(context: Context?) : DateAxis(DateRange(), NonClippingXAxisModifierSurface(context)) { +open class FinanceDateXAxis(context: Context?) : IndexDateAxis(DateRange(), NonClippingXAxisModifierSurface(context)) { init { labelProvider = DateLabelProvider(CalendarDateLabelFormatter(Locale.getDefault(), TimeZone.getTimeZone("UTC"))) diff --git a/finance/src/main/java/com/scitrader/finance/study/studies/PriceSeriesStudy.kt b/finance/src/main/java/com/scitrader/finance/study/studies/PriceSeriesStudy.kt index a928b70..f1a61fa 100644 --- a/finance/src/main/java/com/scitrader/finance/study/studies/PriceSeriesStudy.kt +++ b/finance/src/main/java/com/scitrader/finance/study/studies/PriceSeriesStudy.kt @@ -8,6 +8,8 @@ import android.widget.TextView import androidx.annotation.StringRes import androidx.core.content.ContextCompat import com.scichart.charting.modifiers.SeriesValueModifier +import com.scichart.charting.numerics.indexDataProvider.DataSeriesIndexDataProvider +import com.scichart.charting.visuals.axes.IndexDateAxis import com.scichart.charting.visuals.axes.NumericAxis import com.scichart.charting.visuals.renderableSeries.FastColumnRenderableSeries import com.scichart.data.model.DoubleRange @@ -38,7 +40,7 @@ import java.text.DecimalFormat class PriceSeriesStudy( pane: PaneId, id: StudyId = StudyId.uniqueId("PriceSeries"), - ohlcvDataSourceId: OhlcvDataSourceId = OhlcvDataSourceId.DEFAULT_OHLCV_VALUES_IDS, + ohlcvDataSourceId: OhlcvDataSourceId = OhlcvDataSourceId.DEFAULT_OHLCV_VALUES_IDS ) : CandleStudyBase(pane, id) { @get:com.scitrader.finance.edit.annotations.EditableProperty val priceSeries: CandlestickFinanceSeries @@ -46,6 +48,8 @@ class PriceSeriesStudy( @get:com.scitrader.finance.edit.annotations.EditableProperty val volumeSeries: ColumnFinanceSeries + private var dataSeriesIndexDataProvider: DataSeriesIndexDataProvider? = null + private val volumeAxisId = AxisId(pane, id, "VolumeAxis") @get:com.scitrader.finance.edit.annotations.EditableProperty @@ -67,6 +71,7 @@ class PriceSeriesStudy( closeValuesId, yAxisId ) + dataSeriesIndexDataProvider = DataSeriesIndexDataProvider(priceSeries.dataSeries) volumeSeries = ColumnFinanceSeries( R.string.studyVolumeSeries, @@ -143,6 +148,9 @@ class PriceSeriesStudy( super.placeInto(pane) pane.chart.chartModifiers.add(seriesValueModifier) + (pane.chart.xAxes.firstOrNull() as? IndexDateAxis)?.apply { + setIndexDataProvider(dataSeriesIndexDataProvider) + } (pane as? MainPane)?.let { pane.excludeAutoRangeAxisId(volumeAxisId)