Exemplo n.º 1
0
        private void rsiParameterNext_Click(object sender, EventArgs e)
        {
            rsiResultTitle.Text = Code + " için Relative Strength Index sonucu";
            RSIPeriod           = (int)rsiPeriod.Value;

            rsiDataResultChart.Series.Clear();
            rsiIndicatorResultChart.Series.Clear();

            var closeSeries = new Series
            {
                Name      = "Kapanış",
                Color     = System.Drawing.Color.Black,
                ChartType = SeriesChartType.Line
            };

            var rsiSeries = new Series
            {
                Name      = "Relative Strength Index",
                Color     = System.Drawing.Color.Blue,
                ChartType = SeriesChartType.Line
            };

            rsiDataResultChart.Series.Add(closeSeries);
            rsiIndicatorResultChart.Series.Add(rsiSeries);

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

            double[] rsi;
            if (MapReduceAllowed)
            {
                rsi = RelativeStrengthIndex.RsiMR(Code, TargetDate, RSIPeriod, NumberOfData);
            }
            else
            {
                rsi = RelativeStrengthIndex.Rsi(Code, TargetDate, RSIPeriod, NumberOfData);
            }

            DateTime date;

            for (int i = 0; i < rsi.Length; i++)
            {
                var close = closeData.ElementAt(i);
                date = close.GetElement("Tarih").Value.AsBsonDateTime.ToLocalTime();
                closeSeries.Points.AddXY(date, close.GetElement("Kapanis").Value.ToDouble());
                rsiSeries.Points.AddXY(date, rsi[i]);
            }

            rsiDataResultChart.ChartAreas[0].AxisY.Minimum = Math.Floor(closeData.Select(p => p.GetElement("Kapanis").Value.ToDouble()).Min());
            rsiDataResultChart.ChartAreas[0].AxisY.Maximum = Math.Ceiling(closeData.Select(p => p.GetElement("Kapanis").Value.ToDouble()).Max());

            rsiIndicatorResultChart.ChartAreas[0].AxisY.Minimum = 0;
            rsiIndicatorResultChart.ChartAreas[0].AxisY.Maximum = 100;

            rsiDataResultChart.Invalidate();
            rsiIndicatorResultChart.Invalidate();

            rsiResultPanel.BringToFront();
        }