Пример #1
0
        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);
        }
Пример #2
0
        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);
        }