public static GCandleSeries ToGCandleSeries(this OhlcData data, ResolutionSourceProvider resolver = null, string title = "") { var ohlcChartPointEvaluator = new OhlcInstantChartPointMapper(resolver ?? new ResolutionSourceProvider(data.Resolution)); var series = new GCandleSeries { Configuration = ohlcChartPointEvaluator, IncreaseBrush = Brushes.Aquamarine, DecreaseBrush = Brushes.LightCoral, Fill = Brushes.Transparent, Title = title }; if (data == null) { return(series); } var values = new GearedValues <OhlcInstantChartPoint>(); values.AddRange(data.OrderBy(x => x.DateTimeUtc).Select(i => new OhlcInstantChartPoint(i))); series.Values = values; return(series); }
public Series BuildSeries(SeriesDefinition sourceSeries) { Series series; switch (sourceSeries.SeriesType) { case SeriesType.Line: series = new GLineSeries { Configuration = ChartPointEvaluator, Fill = Brushes.Transparent }; break; case SeriesType.Bar: series = new GColumnSeries { Configuration = ChartPointEvaluator, }; break; case SeriesType.Candle: series = new GCandleSeries { Configuration = OhlcChartPointEvaluator, IncreaseBrush = Brushes.Aquamarine, DecreaseBrush = Brushes.LightCoral, Fill = Brushes.Transparent }; break; case SeriesType.Scatter: series = new GScatterSeries { Configuration = ChartPointEvaluator, StrokeThickness = 1, GearedPointGeometry = GetGearedPointGeometry(sourceSeries.ScatterMarkerSymbol) }; break; default: throw new NotSupportedException(); } series.Title = sourceSeries.Name; series.PointGeometry = GetPointGeometry(sourceSeries.ScatterMarkerSymbol); // Check whether the series has a color configured if (_defaultColors.All(c => !sourceSeries.Color.Equals(c))) { // No default color present. use it for the stroke var brush = new SolidColorBrush(sourceSeries.Color); brush.Freeze(); switch (sourceSeries.SeriesType) { case SeriesType.Candle: series.Fill = brush; break; default: series.Stroke = brush; break; } } return(series); }