Ejemplo n.º 1
0
        /// <summary>
        /// Метод задания параметров линии
        /// </summary>
        /// <param name="tic">время прошедшее с запуска</param>
        /// <param name="DateT">????</param>
        /// <param name="NowTime">Текущее время</param>
        /// <param name=" DINET">?????</param>
        public int Update(int tic, List<DateTime> DateT, double NowTime, List<DateTime> DINET)
        {
            #region вызов Методов локализации формы
            tTip(); // локализация всплывающих подсказок
            Button(); // переводчик  кнопок
            Menu(); // переводчик меню 
            #endregion

            graphic.MouseWheel += new MouseEventHandler(this.chart1_MouseWheel); // событие вращения колесика
            List<List<double>> poinl = new List<List<double>>(); // Точки изменения тренда
            Setting();

            if (checkBoxLevelSupandResis.Checked == false)
            {
                graphic.Series[2].Points.Clear();
                graphic.Series[1].Points.Clear(); // Очистка точек линий
            }
           
            graphic.Series[0].XValueType = ChartValueType.Time; // установление типа по икс время

            #region Склейка даннях из файла с буфером
            Splice mReqest = new Splice();
            quotations.TimeD = mReqest.MainTime(DINET, DateT, tic, 100); // Загрузка времени из файла
            quotations.Sell = mReqest.MainValue(Buffer, massYInetSell, tic, 100); // Загрузка значения из файла ###Сделать загрузку данных изменяемой tic


            #endregion

            graphic.Series[0].Points.Clear();       
            graphic.Series[4].Points.AddXY(DateT[0].ToOADate(), Buffer[0]); // создаем костыль для графика чарт
            
            for (int hl = 0; quotations.TimeD.Count - 1 >= hl; hl++)
            {
                graphic.Series[0].Points.AddXY(quotations.TimeD[hl].ToOADate(), quotations.Sell[hl]); //  Построение главного графика             
            }           
           
            graphic.Update(); // обновление данных 

            // Получение точек смены тренда
            tInterval = Task.Run(() =>
            {
                poinl = IntervalResistance(tic, Buffer, NowTime);  
            });  

            List<double> sreds = new List<double>();
            // Вызов метода для построения SMA 
            sreds = SMA(quotations.TimeD, (int)numericUpDown1.Value, quotations.Sell);
            // Точки миниму и максимума
            List<List<double>> listMinMax = new List<List<double>>();

            // Минимумы и максимумы
            tMinMax = Task.Run(() =>
            {
                listMinMax = MinMax(quotations.Sell, quotations.TimeD);
            });

            // Ожидаем завершение
            Task.WaitAll(tMinMax, tInterval);
            DrawSMA(quotations.TimeD, (int)numericUpDown1.Value, quotations.Sell, sreds); // рисовать скользящую кривую
            DrawMinMax(listMinMax); // рисовать минимум максимум

            if (checkBoxLevelSupandResis.Checked == true)
            {
                Resis(poinl, tic, 0.0001, DateT); // рисуем уровни
            } 

            price.Text = Convert.ToString(BufferS[tic]); // вывод значений на кнопку  по времени
            buttonPriceSell.Text = Convert.ToString(BufferS[tic]); // вывод значений на кнопку  по времени
            buttonPriceBuy.Text = Convert.ToString(Buffer[tic]); // вывод значений на кнопку  по времени
            ZoomT(Zoom, tic); // Вызов метода  регулирования уровней времени
            tic++; // Подсчет тикового времени
            return tic;
        } // метод обновления данных
Ejemplo n.º 2
0
        /// <summary>
        /// Метод перевода меню
        /// </summary>

        /// <summary>
        /// Метод задания параметров линии и  обновления данных
        /// </summary>
        /// <param name="tic">время прошедшее с запуска</param>
        /// <param name="DateT">Время формате Date</param>
        /// <param name="NowTime">Текущее время</param>
        /// <param name=" DINET">Время в результате запуска</param>
        public int Update(int tic, List <DateTime> DateT, double NowTime, List <DateTime> DINET)
        {
            #region вызов Методов локализации формы
            tTip();   // локализация всплывающих подсказок
            Button(); // переводчик  кнопок
            #endregion
            // событие вращения колесика
            // graphic.MouseWheel += new MouseEventHandler(this.chart1_MouseWheel);
            // Точки изменения тренда
            List <List <double> > poinl  = new List <List <double> >();
            LineCoord             LCoord = new LineCoord(x, y, fX, fY, lab_Cur, label_Y, label_X, ref graphic);
            LCoord.Show(checkBoxLineCoord);

            if (checkBoxLevelSupandResis.Checked == false)
            {
                graphic.Series[2].Points.Clear();
                // Очистка точек линий
                graphic.Series[1].Points.Clear();
            }

            #region Склейка даннях из файла с буфером
            // все изменения с временными интервалами и тому подобным должны производиться через БД!!!
            // Загрузка времени из файла
            if (0 == tic)
            {
                // обработка данных
                Splice mReqestT = new Splice();
                Splice mReqestV = new Splice();
                graphic.Series[0].Points.Clear();
                // Получить лист времени 10000
                quotations.TimeD = mReqestT.glue(DINET, DateT, tic, 10000);
                // Загрузка значения из файла  10000
                quotations.Sell = mReqestV.glue(sellL, BufferS, tic, 10000);
                for (int index = 0; quotations.TimeD.Count - 1 > index; index++)
                {
                    graphic.Series[0].Points.AddXY(quotations.TimeD[index].ToOADate(), quotations.Sell[index]);
                }
            }
            else
            {
                quotations.TimeD.Add(DateT[DateT.Count - 1]);
                quotations.Sell.Add(BufferS[BufferS.Count - 1]);
                Console.WriteLine(quotations.Sell[quotations.Sell.Count - 1]);
                graphic.Series[0].Points.AddXY(DateT[DateT.Count - 1].ToOADate(), BufferS[BufferS.Count - 1]);
            }


            // запускаем в другом потоке вычисление нового графика zoom

            /* zooming = Task.Run(() =>
             * {
             *   // запускаем в другом потоке
             *   ZoomS z = new ZoomS(cEURUSD.ConvertU(quotations.TimeD), 60);
             * });
             */

            #endregion
            // создаем костыль для графика чарт
            graphic.Series[4].Points.AddXY(DateT[0].ToOADate(), BufferB[0]);

            // обновление данных графика
            graphic.Update();

            // Получение точек смены тренда
            tInterval = Task.Run(() =>
            {
                IntervalResistance IRes = new IntervalResistance(tic, BufferB, NowTime);;
                poinl = IRes.poin;
            });
            // рисуем уровни
            if (true == checkBoxLevelSupandResis.Checked)
            {
                Resis(poinl, tic, 0.0001, DateT);
            }


            if (true == checkBoxSMA.Checked)
            {
                // Определяем объеrnf
                ClassSMA Sred = new ClassSMA();
                // Добавление точек
                Sred.Add((int)numericUpDown1.Value, quotations.Sell);
                // рисовать скользящую кривую
                DrawSMA(quotations.TimeD, (int)numericUpDown1.Value, quotations.Sell, Sred.GetSred());
            }
            if (true == checkBox4.Checked)
            {
                MinMax LineMinMax = new MinMax();
                List <List <double> > listMinMax = new List <List <double> >();
                // Минимумы и максимумы
                tMinMax = Task.Run(() =>
                {
                    LineMinMax.AddMinMax(quotations.Sell, quotations.TimeD, danoe);
                });
                // Точки миниму и максимума
                Task.WaitAll(tMinMax, tInterval);
                // рисовать минимум максимум
                DrawMinMax(LineMinMax.Svoistvo_poin);
            }

            // вывод значений на кнопку  по времени
            price.Text = Convert.ToString(BufferS[tic]);
            // вывод значений на кнопку  по времени
            buttonPriceSell.Text = Convert.ToString(BufferS[tic]);
            // вывод значений на кнопку  по времени
            buttonPriceBuy.Text = Convert.ToString(BufferB[tic]);
            // Вызов метода  регулирования уровней времени
            ZoomT(Zoom, tic);
            // Подсчет тикового времени
            tic++;
            return(tic);
        }