public MacdPaneViewModel(CreateMultiPaneStockChartsViewModel parentViewModel, PriceSeries prices) : base(parentViewModel) { IEnumerable <MacdPoint> macdPoints = prices.CloseData.Macd(12, 26, 9).ToList(); var histogramDataSeries = new XyDataSeries <DateTime, double>() { SeriesName = "Histogram" }; histogramDataSeries.Append(prices.TimeData, macdPoints.Select(x => x.Divergence)); ChartSeriesViewModels.Add(new ColumnRenderableSeriesViewModel { DataSeries = histogramDataSeries }); var macdDataSeries = new XyyDataSeries <DateTime, double>() { SeriesName = "MACD" }; macdDataSeries.Append(prices.TimeData, macdPoints.Select(x => x.Macd), macdPoints.Select(x => x.Signal)); ChartSeriesViewModels.Add(new BandRenderableSeriesViewModel { DataSeries = macdDataSeries, StrokeThickness = 2, }); YAxisTextFormatting = "0.00"; Height = 100; }
private void FanChartExampleViewLoaded(object sender, RoutedEventArgs e) { // Variance data is a 2D table containing actual values and several levels of projected high, low values IEnumerable <VarPoint> varianceData = GetVarianceData().ToArray(); // To render the Fan, we use an XyDataSeries and three band series' var actualDataSeries = new XyDataSeries <DateTime, double>(); var var3DataSeries = new XyyDataSeries <DateTime, double>(); var var2DataSeries = new XyyDataSeries <DateTime, double>(); var var1DataSeries = new XyyDataSeries <DateTime, double>(); // Append data values from the Variance table actualDataSeries.Append(varianceData.Select(x => x.Date), varianceData.Select(x => x.Actual)); var3DataSeries.Append(varianceData.Select(x => x.Date), varianceData.Select(x => x.VarMin), varianceData.Select(x => x.VarMax)); var2DataSeries.Append(varianceData.Select(x => x.Date), varianceData.Select(x => x.Var1), varianceData.Select(x => x.Var4)); var1DataSeries.Append(varianceData.Select(x => x.Date), varianceData.Select(x => x.Var2), varianceData.Select(x => x.Var3)); // Assign data to renderableseries lineSeries.DataSeries = actualDataSeries; projectedVar3.DataSeries = var3DataSeries; projectedVar2.DataSeries = var2DataSeries; projectedVar1.DataSeries = var1DataSeries; sciChart.ZoomExtents(); }
public MacdPaneModel(Context context, PriceSeries prices) : base(context, MACD, "0.0", false) { var macdPoints = prices.CloseData.Macd(12, 25, 9); var histogramSeries = new XyDataSeries <DateTime, double> { SeriesName = "Histogram" }; histogramSeries.Append(prices.TimeData, macdPoints.Select(x => x.Divergence)); AddRenderableSeries(new FastColumnRenderableSeries { DataSeries = histogramSeries, YAxisId = MACD }); var macdSeries = new XyyDataSeries <DateTime, double> { SeriesName = "MACD" }; macdSeries.Append(prices.TimeData, macdPoints.Select(x => x.Macd), macdPoints.Select(x => x.Signal)); AddRenderableSeries(new FastBandRenderableSeries { DataSeries = macdSeries, YAxisId = MACD }); Annotations.Add(new AxisMarkerAnnotation(context) { Y1 = (Java.Lang.IComparable)histogramSeries.YValues.Get(histogramSeries.Count - 1), YAxisId = MACD }); Annotations.Add(new AxisMarkerAnnotation(context) { Y1 = (Java.Lang.IComparable)macdSeries.YValues.Get(macdSeries.Count - 1), YAxisId = MACD }); }
protected override void InitExample() { var xAxis = new SCIDateTimeAxis { GrowBy = new SCIDoubleRange(0.1, 0.1), TextFormatting = "dd/MM/YYYY" }; var yAxis = new SCINumericAxis { GrowBy = new SCIDoubleRange(0.1, 0.1) }; var dataSeries = new XyDataSeries <DateTime, double> { DataDistributionCalculator = new SCIUserDefinedDistributionCalculator() }; var xyyDataSeries = new XyyDataSeries <DateTime, double> { DataDistributionCalculator = new SCIUserDefinedDistributionCalculator() }; var xyyDataSeries1 = new XyyDataSeries <DateTime, double> { DataDistributionCalculator = new SCIUserDefinedDistributionCalculator() }; var xyyDataSeries2 = new XyyDataSeries <DateTime, double> { DataDistributionCalculator = new SCIUserDefinedDistributionCalculator() }; DataManager.Instance.GetFanData(10, result => { dataSeries.Append(result.Date, result.ActualValue); xyyDataSeries.Append(result.Date, result.MaxValue, result.MinValue); xyyDataSeries1.Append(result.Date, result.Value1, result.Value4); xyyDataSeries2.Append(result.Date, result.Value2, result.Value3); }); var dataRenderSeries = new SCIFastLineRenderableSeries { DataSeries = dataSeries, StrokeStyle = new SCISolidPenStyle(UIColor.Red, 1.0f) }; var animation = new SCIWaveRenderableSeriesAnimation(3, SCIAnimationCurve.EaseOut); animation.StartAfterDelay(0.3f); dataRenderSeries.AddAnimation(animation); using (Surface.SuspendUpdates()) { Surface.XAxes.Add(xAxis); Surface.YAxes.Add(yAxis); Surface.RenderableSeries.Add(createRenderableSeriesWith(xyyDataSeries)); Surface.RenderableSeries.Add(createRenderableSeriesWith(xyyDataSeries1)); Surface.RenderableSeries.Add(createRenderableSeriesWith(xyyDataSeries2)); Surface.RenderableSeries.Add(dataRenderSeries); Surface.ChartModifiers = new SCIChartModifierCollection { new SCIZoomPanModifier(), new SCIPinchZoomModifier(), new SCIZoomExtentsModifier() }; } }
public DragThresholdMvvmViewModel() { _dataSeries = new XyyDataSeries <double, double>(); var someData = DataManager.Instance.GetDampedSinewave(1.0, 0.01, 300); _thresholdValue = 0.0; _dataSeries.Append(someData.XData, someData.YData, Enumerable.Repeat(_thresholdValue, someData.Count)); }
private static IXyyDataSeries <double, double> GetXyyDataSeries(IEnumerable <double> data) { var dataSeries = new XyyDataSeries <double, double>(); dataSeries.Append(data, data.Select(x => x % 2 == 0 ? 2 * x : x), data.Select(x => x % 2 == 1 ? 2 * x : x)); return(dataSeries); }
private void BandSeriesChartExampleView_OnLoaded(object sender, RoutedEventArgs e) { // Set a DataSeries of type x=DateTime, y0=Double, y1=double on the RenderableSeries declared in XAML var series = new XyyDataSeries <double, double>(); sciChart.RenderableSeries[0].DataSeries = series; // Get some data for the upper and lower band var data = DataManager.Instance.GetDampedSinewave(1.0, 0.01, 1000); var moreData = DataManager.Instance.GetDampedSinewave(1.0, 0.005, 1000, 12); // Append data to series. SciChart automatically redraws series.Append( data.XData, data.YData, moreData.YData); }
private void DigitalBandSeriesChartExampleView_OnLoaded(object sender, RoutedEventArgs e) { // Add a data series which handles X-Y0-Y1 data var dataSeries = new XyyDataSeries <double, double>(); // Get some reference data to display var data = DataManager.Instance.GetDampedSinewave(1.0, 0.01, 1000); var moreData = DataManager.Instance.GetDampedSinewave(1.0, 0.005, 1000, 12); // Append data to series. SciChart automatically redraws dataSeries.Append( data.XData, data.YData, moreData.YData); bandRenderSeries.DataSeries = dataSeries; }
private void ReloadChartSeries() { ohlcSeries = new OhlcDataSeries <DateTime, double>() { SeriesName = "Candles", FifoCapacity = 100 }; macdDataSeries = new XyyDataSeries <DateTime, double>() { SeriesName = "MACD" }; dataSeries = new XyDataSeries <DateTime, double> { SeriesName = "Histogram", FifoCapacity = 100 }; CandleSeries.DataSeries = ohlcSeries; MACD2.DataSeries = macdDataSeries; Histo.DataSeries = dataSeries; }
protected override void InitExample() { var xAxis = new NumericAxis(Activity) { VisibleRange = new DoubleRange(1.1, 2.7) }; var yAxis = new NumericAxis(Activity) { GrowBy = new DoubleRange(0.1, 0.1) }; var data = DataManager.Instance.GetDampedSinewave(1.0, 0.01, 1000); var moreData = DataManager.Instance.GetDampedSinewave(1.0, 0.005, 1000, 12); var dataSeries = new XyyDataSeries <double, double>(); dataSeries.Append(data.XData, data.YData, moreData.YData); var rSeries = new FastBandRenderableSeries { DataSeries = dataSeries, StrokeStyle = new SolidPenStyle(0xFFFF1919, 1f.ToDip(Activity)), StrokeY1Style = new SolidPenStyle(0xFF279B27, 1f.ToDip(Activity)), FillBrushStyle = new SolidBrushStyle(0x33279B27), FillY1BrushStyle = new SolidBrushStyle(0x33FF1919) }; using (Surface.SuspendUpdates()) { Surface.XAxes.Add(xAxis); Surface.YAxes.Add(yAxis); Surface.RenderableSeries.Add(rSeries); Surface.ChartModifiers = new ChartModifierCollection { new ZoomPanModifier(), new PinchZoomModifier(), new ZoomExtentsModifier(), }; new ScaleAnimatorBuilder(rSeries) { Interpolator = new OvershootInterpolator(), Duration = 1000, StartDelay = 600 }.Start(); } }
protected override void InitExampleInternal() { Surface = new SCIChartSurface(_exampleViewLayout.SciChartSurfaceView); StyleHelper.SetSurfaceDefaultStyle(Surface); var data0 = DataManager.Instance.GetDampedSinewave(1.0, 0.01, 1000); var data1 = DataManager.Instance.GetDampedSinewave(1.0, 0.005, 1000, 12); var dataSeries = new XyyDataSeries <double, double>(); dataSeries.Append(data0.XData, data0.YData, data1.YData); var axisStyle = StyleHelper.GetDefaultAxisStyle(); var xAxis = new SCINumericAxis { IsXAxis = true, VisibleRange = new SCIDoubleRange(1.1, 2.7), Style = axisStyle }; var yAxis = new SCINumericAxis { GrowBy = new SCIDoubleRange(0.1, 0.1), Style = axisStyle }; var renderSeries = new SCIBandRenderableSeries { DataSeries = dataSeries, Style = new SCIBandSeriesStyle { Pen1 = new SCIPenSolid(0xFFFF1919, 0.7f), Pen2 = new SCIPenSolid(0xFF279B27, 0.7f), Brush1 = new SCIBrushSolid(0x33279B27), Brush2 = new SCIBrushSolid(0x33FF1919) } }; Surface.AttachAxis(xAxis, true); Surface.AttachAxis(yAxis, false); Surface.AttachRenderableSeries(renderSeries); Surface.ChartModifier = new SCIModifierGroup(new ISCIChartModifierProtocol[] { new SCIZoomPanModifier(), new SCIPinchZoomModifier(), new SCIZoomExtentsModifier() }); Surface.InvalidateElement(); }
protected override void InitExample() { var data0 = DataManager.Instance.GetDampedSinewave(1.0, 0.01, 1000); var data1 = DataManager.Instance.GetDampedSinewave(1.0, 0.005, 1000, 12); var dataSeries = new XyyDataSeries <double, double>(); dataSeries.Append(data0.XData, data0.YData, data1.YData); var xAxis = new SCINumericAxis { VisibleRange = new SCIDoubleRange(1.1, 2.7) }; var yAxis = new SCINumericAxis { GrowBy = new SCIDoubleRange(0.1, 0.1) }; var renderSeries = new SCIFastBandRenderableSeries { DataSeries = dataSeries, StrokeStyle = new SCISolidPenStyle(0xFFFF1919, 0.7f), StrokeY1Style = new SCISolidPenStyle(0xFF279B27, 0.7f), FillBrushStyle = new SCISolidBrushStyle(0x33279B27), FillY1BrushStyle = new SCISolidBrushStyle(0x33FF1919) }; var animation = new SCIScaleRenderableSeriesAnimation(3, SCIAnimationCurve.EaseOutElastic); animation.StartAfterDelay(0.3f); renderSeries.AddAnimation(animation); using (Surface.SuspendUpdates()) { Surface.XAxes.Add(xAxis); Surface.YAxes.Add(yAxis); Surface.RenderableSeries.Add(renderSeries); Surface.ChartModifiers = new SCIChartModifierCollection { new SCIZoomPanModifier(), new SCIPinchZoomModifier(), new SCIZoomExtentsModifier() }; } }
public MacdPaneModel(PriceSeries prices) : base(MACD, "%.2f", false) { var macdPoints = prices.CloseData.Macd(12, 25, 9); var histogramSeries = new XyDataSeries <DateTime, double> { SeriesName = "Histogram" }; histogramSeries.Append(prices.TimeData, macdPoints.Select(x => x.Divergence)); AddRenderableSeries(new SCIFastColumnRenderableSeries { DataSeries = histogramSeries, YAxisId = MACD, StrokeStyle = new SCISolidPenStyle(UIColor.White, 1f) }); var macdSeries = new XyyDataSeries <DateTime, double> { SeriesName = "MACD" }; macdSeries.Append(prices.TimeData, macdPoints.Select(x => x.Macd), macdPoints.Select(x => x.Signal)); AddRenderableSeries(new SCIFastBandRenderableSeries { DataSeries = macdSeries, YAxisId = MACD, FillBrushStyle = new SCISolidBrushStyle(UIColor.Clear), StrokeStyle = new SCISolidPenStyle(0xffe26565, 1f), FillY1BrushStyle = new SCISolidBrushStyle(UIColor.Clear), StrokeY1Style = new SCISolidPenStyle(0xff52cc54, 1f) }); Annotations.Add(new SCIAxisMarkerAnnotation { Position = histogramSeries.YValues.ValueAt(histogramSeries.Count - 1).ToComparable(), YAxisId = MACD }); Annotations.Add(new SCIAxisMarkerAnnotation { Position = macdSeries.YValues.ValueAt(macdSeries.Count - 1).ToComparable(), YAxisId = MACD }); }
protected override void InitExample() { var data0 = DataManager.Instance.GetDampedSinewave(1.0, 0.01, 1000); var data1 = DataManager.Instance.GetDampedSinewave(1.0, 0.005, 1000, 12); var dataSeries = new XyyDataSeries <double, double>(); dataSeries.Append(data0.XData, data0.YData, data1.YData); var xAxis = new NumericAxis(Activity) { VisibleRange = new DoubleRange(1.1, 2.7) }; var yAxis = new NumericAxis(Activity) { GrowBy = new DoubleRange(0.1, 0.1) }; var rs = new FastBandRenderableSeries { DataSeries = dataSeries, StrokeStyle = new PenStyle.Builder(Activity).WithColor(Color.Argb(0xFF, 0xFF, 0x19, 0x19)).Build(), StrokeY1Style = new PenStyle.Builder(Activity).WithColor(Color.Argb(0xFF, 0x27, 0x9B, 0x27)).Build(), FillBrushStyle = new SolidBrushStyle(Color.Argb(0x33, 0x27, 0x9B, 0x27)), FillY1BrushStyle = new SolidBrushStyle(Color.Argb(0x33, 0xFF, 0x19, 0x19)) }; Surface.XAxes.Add(xAxis); Surface.YAxes.Add(yAxis); Surface.RenderableSeries.Add(rs); Surface.ChartModifiers = new ChartModifierCollection() { new ZoomPanModifier(), new PinchZoomModifier(), new ZoomExtentsModifier(), }; }