Beispiel #1
0
        private RadCartesianChartView createChart()
        {
            RadCartesianChartView chart = new RadCartesianChartView(this.Activity);

            DateTimeCategoricalAxis horizontalAxis = new DateTimeCategoricalAxis();

            horizontalAxis.DateTimeFormat    = new SimpleDateFormat("MM/dd");
            horizontalAxis.DateTimeComponent = DateTimeComponent.Date;

            LinearAxis verticalAxis = new LinearAxis();

            DataPointBinding categoryBinding = new CategoryBinding();
            DataPointBinding openBinding     = new OpenValueBinding();
            DataPointBinding highBinding     = new HighValueBinding();
            DataPointBinding lowBinding      = new LowValueBinding();
            DataPointBinding closeBinding    = new CloseValueBinding();

            ArrayList data = this.getData();

            CandlestickSeries series = new CandlestickSeries();

            series.CategoryBinding = categoryBinding;
            series.OpenBinding     = openBinding;
            series.HighBinding     = highBinding;
            series.LowBinding      = lowBinding;
            series.CloseBinding    = closeBinding;
            series.Data            = data;

            BollingerBandsIndicator bollingerBands = new BollingerBandsIndicator();

            bollingerBands.CategoryBinding    = categoryBinding;
            bollingerBands.ValueBinding       = closeBinding;
            bollingerBands.Period             = 5;
            bollingerBands.StandardDeviations = 2;
            bollingerBands.Data = data;

            MovingAverageIndicator movingAverage = new MovingAverageIndicator();

            movingAverage.CategoryBinding = categoryBinding;
            movingAverage.ValueBinding    = closeBinding;
            movingAverage.Period          = 5;
            movingAverage.Data            = data;

            chart.VerticalAxis   = verticalAxis;
            chart.HorizontalAxis = horizontalAxis;
            chart.Series.Add(series);
            chart.Series.Add(bollingerBands);
            chart.Series.Add(movingAverage);

            // irrelevant
            horizontalAxis.LabelFitMode = AxisLabelFitMode.Rotate;

            return(chart);
        }
Beispiel #2
0
        private IndicatorBase CreateMAIndicator(string indicatorType)
        {
            IndicatorBase indicator;

            if (indicatorType.StartsWith("MA ("))
            {
                indicator      = new MovingAverageIndicator();
                indicator.Name = "MA";
            }
            else if (indicatorType.StartsWith("Exponential MA"))
            {
                indicator      = new ExponentialMovingAverageIndicator();
                indicator.Name = "EMA";
            }
            else if (indicatorType.StartsWith("Modified MA"))
            {
                indicator      = new ModifiedMovingAverageIndicator();
                indicator.Name = "MMA";
            }
            else if (indicatorType.StartsWith("Modified Exponential MA"))
            {
                indicator      = new ModifiedExponentialMovingAverageIndicator();
                indicator.Name = "MEMA";
            }
            else if (indicatorType.StartsWith("Weighted MA"))
            {
                indicator      = new WeightedMovingAverageIndicator();
                indicator.Name = "WMA";
            }
            else if (indicatorType.StartsWith("Adaptive MA"))
            {
                indicator      = new AdaptiveMovingAverageKaufmanIndicator();
                indicator.Name = "KAMA";
                ((AdaptiveMovingAverageKaufmanIndicator)indicator).SlowPeriod = 10;
                ((AdaptiveMovingAverageKaufmanIndicator)indicator).FastPeriod = 4;
            }
            else
            {
                indicator      = new BollingerBandsIndicator();
                indicator.Name = "BOLL";
                ((BollingerBandsIndicator)indicator).StandardDeviations = 2;
            }

            ((ValuePeriodIndicatorBase)indicator).Period = 5;
            indicator.CategoryMember = "Date";
            indicator.ValueMember    = "Close";
            indicator.DataSource     = viewModel.Data;

            return(indicator);
        }
        private RadCartesianChartView createChart()
        {
            RadCartesianChartView chart = new RadCartesianChartView(this.Activity);

            DateTimeCategoricalAxis horizontalAxis = new DateTimeCategoricalAxis();
            horizontalAxis.SetDateTimeFormat(new SimpleDateFormat("MM/dd"));
            horizontalAxis.DateTimeComponent = DateTimeComponent.Date;

            LinearAxis verticalAxis = new LinearAxis();

            DataPointBinding categoryBinding = new CategoryBinding();
            DataPointBinding openBinding = new OpenValueBinding();
            DataPointBinding highBinding = new HighValueBinding();
            DataPointBinding lowBinding = new LowValueBinding();
            DataPointBinding closeBinding = new CloseValueBinding();

            ArrayList data = this.getData();

            CandlestickSeries series = new CandlestickSeries();
            series.CategoryBinding = categoryBinding;
            series.OpenBinding = openBinding;
            series.HighBinding = highBinding;
            series.LowBinding = lowBinding;
            series.CloseBinding = closeBinding;
            series.Data = data;

            BollingerBandsIndicator bollingerBands = new BollingerBandsIndicator();
            bollingerBands.CategoryBinding = categoryBinding;
            bollingerBands.ValueBinding = closeBinding;
            bollingerBands.Period = 5;
            bollingerBands.StandardDeviations = 2;
            bollingerBands.Data = data;

            MovingAverageIndicator movingAverage = new MovingAverageIndicator();
            movingAverage.CategoryBinding = categoryBinding;
            movingAverage.ValueBinding = closeBinding;
            movingAverage.Period = 5;
            movingAverage.Data = data;

            chart.VerticalAxis = verticalAxis;
            chart.HorizontalAxis = horizontalAxis;
            chart.Series.Add(series);
            chart.Series.Add(bollingerBands);
            chart.Series.Add(movingAverage);

            // irrelevant
            horizontalAxis.LabelFitMode = AxisLabelFitMode.Rotate;

            return chart;
        }
Beispiel #4
0
        private void GenerarSerie()
        {
            var Aux = PageView.SelectedPage;

            try {
                if (oSeries.Count > 0)
                {
                    ChartPanZoomController panZoomController = new ChartPanZoomController();
                    panZoomController.PanZoomMode = ChartPanZoomMode.Horizontal;
                    chart1.View.Palette           = KnownPalette.Material;

                    chart = chart1;
                    chart.Series.Clear();
                    chart.Title       = Aux.Text;
                    chart.ShowPanZoom = true;
                    chart.Controllers.Add(panZoomController);

                    //Create and add Moving Average indicator
                    BollingerBandsIndicator maIndicator = new BollingerBandsIndicator();
                    maIndicator.CategoryMember     = "Fecha";
                    maIndicator.DataSource         = oSeries;
                    maIndicator.Period             = 1;
                    maIndicator.StandardDeviations = 1;

                    //Create and add hlc series
                    HlcSeries series = new HlcSeries();

                    if (Aux.Tag.ToString() == "Cav1")
                    {
                        maIndicator.ValueMember = "Val1";
                        series.CloseValueMember = "Val1";
                        series.HighValueMember  = "Max1";
                        series.LowValueMember   = "Min1";
                    }
                    if (Aux.Tag.ToString() == "Cav2")
                    {
                        maIndicator.ValueMember = "Val2";
                        series.CloseValueMember = "Val2";
                        series.HighValueMember  = "Max2";
                        series.LowValueMember   = "Min2";
                    }
                    if (Aux.Tag.ToString() == "Cav3")
                    {
                        maIndicator.ValueMember = "Val3";
                        series.CloseValueMember = "Val3";
                        series.HighValueMember  = "Max3";
                        series.LowValueMember   = "Min3";
                    }
                    if (Aux.Tag.ToString() == "Cav4")
                    {
                        maIndicator.ValueMember = "Val4";
                        series.CloseValueMember = "Val4";
                        series.HighValueMember  = "Max4";
                        series.LowValueMember   = "Min4";
                    }
                    if (Aux.Tag.ToString() == "Cav5")
                    {
                        maIndicator.ValueMember = "Val5";
                        series.CloseValueMember = "Val5";
                        series.HighValueMember  = "Max5";
                        series.LowValueMember   = "Min5";
                    }
                    if (Aux.Tag.ToString() == "Cav6")
                    {
                        maIndicator.ValueMember = "Val6";
                        series.CloseValueMember = "Val6";
                        series.HighValueMember  = "Max6";
                        series.LowValueMember   = "Min6";
                    }
                    if (Aux.Tag.ToString() == "Cav7")
                    {
                        maIndicator.ValueMember = "Val7";
                        series.CloseValueMember = "Val7";
                        series.HighValueMember  = "Max7";
                        series.LowValueMember   = "Min7";
                    }
                    if (Aux.Tag.ToString() == "Cav8")
                    {
                        maIndicator.ValueMember = "Val8";
                        series.CloseValueMember = "Val8";
                        series.HighValueMember  = "Max8";
                        series.LowValueMember   = "Min8";
                    }
                    maIndicator.BorderColor = Color.Red;
                    maIndicator.PointSize   = SizeF.Empty;

                    chart.Series.Add(maIndicator);

                    series.CategoryMember = "Fecha";
                    series.DataSource     = oSeries;
                    series.BorderColor    = Color.Green;

                    chart.ShowLegend = false;
                    chart.Dock       = DockStyle.Fill;
                    chart.Series.Add(series);
                    Aux.Controls.Add(chart);
                }
            } catch (Exception ex) {
                RadMessageBox.Show("Ocurrio un error al generar la gráfica\n" + ex.Message, this.Text, MessageBoxButtons.OK, RadMessageIcon.Error);
            } finally {
                oEnsamble = null;
            }
        }
Beispiel #5
0
        private IndicatorBase CreateTrendline(Trendlines trendlineToAdd)
        {
            switch (trendlineToAdd)
            {
            case Trendlines.MovingAverageIndicator:
                var maIndicator = new MovingAverageIndicator();
                maIndicator.SetBinding(CommodityChannelIndexIndicator.ItemsSourceProperty, new Binding("SeriesData"));
                maIndicator.CategoryBinding = new PropertyNameDataPointBinding("DateCategory");
                maIndicator.ValueBinding    = new PropertyNameDataPointBinding("Close");
                maIndicator.Period          = 12;
                maIndicator.Stroke          = Color.Orange;
                maIndicator.StrokeThickness = 1;
                return(maIndicator);

            case Trendlines.AdaptiveMovingAverageKaufmanIndicator:
                var amakIndicator = new AdaptiveMovingAverageKaufmanIndicator();
                amakIndicator.SetBinding(CommodityChannelIndexIndicator.ItemsSourceProperty, new Binding("SeriesData"));
                amakIndicator.CategoryBinding = new PropertyNameDataPointBinding("DateCategory");
                amakIndicator.ValueBinding    = new PropertyNameDataPointBinding("Close");
                amakIndicator.Period          = 10;
                amakIndicator.SlowPeriod      = 30;
                amakIndicator.FastPeriod      = 2;
                amakIndicator.Stroke          = Color.Orange;
                amakIndicator.StrokeThickness = 1;
                return(amakIndicator);

            case Trendlines.ExponentialMovingAverageIndicator:
                var emaIndicator = new ExponentialMovingAverageIndicator();
                emaIndicator.SetBinding(CommodityChannelIndexIndicator.ItemsSourceProperty, new Binding("SeriesData"));
                emaIndicator.CategoryBinding = new PropertyNameDataPointBinding("DateCategory");
                emaIndicator.ValueBinding    = new PropertyNameDataPointBinding("Close");
                emaIndicator.Period          = 8;
                emaIndicator.Stroke          = Color.Orange;
                emaIndicator.StrokeThickness = 1;
                return(emaIndicator);

            case Trendlines.BollingerBandsIndicator:
                var bbIndicator = new BollingerBandsIndicator();
                bbIndicator.SetBinding(CommodityChannelIndexIndicator.ItemsSourceProperty, new Binding("SeriesData"));
                bbIndicator.CategoryBinding    = new PropertyNameDataPointBinding("DateCategory");
                bbIndicator.ValueBinding       = new PropertyNameDataPointBinding("Close");
                bbIndicator.Period             = 5;
                bbIndicator.Stroke             = Color.Orange;
                bbIndicator.LowerBandStroke    = Color.Orange;
                bbIndicator.StandardDeviations = 3;
                bbIndicator.StrokeThickness    = 1;
                return(bbIndicator);

            case Trendlines.WeightedMovingAverageIndicator:
                var wmaIndicator = new WeightedMovingAverageIndicator();
                wmaIndicator.SetBinding(CommodityChannelIndexIndicator.ItemsSourceProperty, new Binding("SeriesData"));
                wmaIndicator.CategoryBinding = new PropertyNameDataPointBinding("DateCategory");
                wmaIndicator.ValueBinding    = new PropertyNameDataPointBinding("Close");
                wmaIndicator.Period          = 12;
                wmaIndicator.Stroke          = Color.Orange;
                wmaIndicator.StrokeThickness = 1;
                return(wmaIndicator);

            default:
                return(null);
            }
        }