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); }
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; }
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; } }
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); } }