Beispiel #1
0
        private void mavParameterNext_Click(object sender, EventArgs e)
        {
            mavResultTitle.Text = Code + " için Moving Average sonucu";
            MAVPeriod           = (int)mavPeriod.Value;

            mavResultChart.Series.Clear();

            var closeSeries = new Series
            {
                Name      = "Kapanış",
                Color     = System.Drawing.Color.Black,
                ChartType = SeriesChartType.Line
            };
            var smaSeries = new Series
            {
                Name      = "Simple Moving Average",
                Color     = System.Drawing.Color.Red,
                ChartType = SeriesChartType.Line
            };
            var wmaSeries = new Series
            {
                Name      = "Weighted Moving Average",
                Color     = System.Drawing.Color.Green,
                ChartType = SeriesChartType.Line
            };
            var emaSeries = new Series
            {
                Name      = "Exponential Moving Average",
                Color     = System.Drawing.Color.Blue,
                ChartType = SeriesChartType.Line
            };

            var closeData = IndicatorService.GetData(Code, TargetDate, new string[] { "Tarih", "Kapanis" }, NumberOfData);

            double[] smaData, wmaData, emaData;
            if (MapReduceAllowed)
            {
                smaData = MovingAverage.SimpleMR(Code, TargetDate, MAVPeriod, NumberOfData);
                wmaData = MovingAverage.WeightedMR(Code, TargetDate, MAVPeriod, NumberOfData);
                emaData = MovingAverage.ExponentialMR(Code, TargetDate, MAVPeriod, NumberOfData);
            }
            else
            {
                smaData = MovingAverage.Simple(Code, TargetDate, MAVPeriod, NumberOfData);
                wmaData = MovingAverage.Weighted(Code, TargetDate, MAVPeriod, NumberOfData);
                emaData = MovingAverage.Exponential(Code, TargetDate, MAVPeriod, NumberOfData);
            }

            DateTime date;

            for (int i = 0; i < smaData.Length; i++)
            {
                var close = closeData.ElementAt(i);
                date = close.GetElement("Tarih").Value.AsBsonDateTime.ToLocalTime();

                closeSeries.Points.AddXY(date, close.GetElement("Kapanis").Value.ToDouble());
                smaSeries.Points.AddXY(date, smaData[i]);
                wmaSeries.Points.AddXY(date, wmaData[i]);
                emaSeries.Points.AddXY(date, emaData[i]);
            }

            mavResultChart.ChartAreas[0].AxisY.Minimum = Math.Floor(new double[] { closeData.Select(p => p.GetElement("Kapanis").Value.ToDouble()).Min(), smaData.Min(), wmaData.Min(), emaData.Min() }.Min());
            mavResultChart.ChartAreas[0].AxisY.Maximum = Math.Ceiling(new double[] { closeData.Select(p => p.GetElement("Kapanis").Value.ToDouble()).Max(), smaData.Max(), wmaData.Max(), emaData.Max() }.Max());

            mavResultChart.Series.Add(closeSeries);
            mavResultChart.Series.Add(smaSeries);
            mavResultChart.Series.Add(wmaSeries);
            mavResultChart.Series.Add(emaSeries);

            mavResultChart.Invalidate();

            mavResultPanel.BringToFront();
        }