/// <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; } // метод обновления данных
/// <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); }