Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private static double MeanValue(string[] arr, int x, int y) //расчет среднего значения
- {
- double sum = 0;
- for (int i = x; i < y; i++)
- {
- sum = sum + Math.Abs(Convert.ToDouble(arr[i]));
- }
- return sum / (y - x);
- }
- private static double MeanValue(double[] arr, int x, int y) //расчет среднего значения
- {
- double sum = 0;
- for (int i = x; i < y; i++)
- {
- if (i >= arr.Length)
- {
- break;
- }
- sum = sum + arr[i];
- }
- return sum / (y - x);
- }
- private double Sk(double[] arr, int x, int y) //расчет среднего квадратичного
- {
- double sum = 0;
- for (int i = x; i < y; i++)
- {
- sum = sum + Math.Pow(arr[i], 2);
- }
- return sum / (y - x);
- }
- private double Sko(double[] arr, int x, int y) //расчет СКО
- {
- double sum = 0;
- for (int i = x; i < y; i++)
- {
- sum = sum + Math.Pow(arr[i], 2);
- }
- return Math.Sqrt(sum / (y - x));
- }
- private double SD(double[] arr, int x, int y) //расчет стандартного отклонения
- {
- double mid = 0;
- double result = 0;
- for (int i = x; i < y; i++)
- {
- mid = mid + arr[i];
- }
- mid = mid / (y - x);
- for (int i = x; i < y; i++)
- {
- result = result + Math.Pow(arr[i] - mid, 2);
- }
- return Math.Sqrt(result / (y - x));
- }
- private double Dispersion(double[] arr, int x, int y) //расчет дисперсии
- {
- double result;
- result = Math.Round(SD(arr, x, y), 4);
- return result * result;
- }
- private void DrawSingleGraph(GraphPane pane, string str_name_1, int index, int option)// index - номер обрабатываемого текстового поля (1 или 2). отображаем значения. option = 1 - по закрытию, option = 3 - по суточному колебанию, option = 5 - по объему
- {
- pane.CurveList.Clear();
- PointPairList list1 = new PointPairList();
- int flag = -1;
- double[] arr1 = new double[5];
- double[] xvalues = new double[5];//массив для преобразования даты в double
- int[] tempX = new int[5];//массив для заполнения структуры XDate
- XDate[] dates = new XDate[5];//даты для оси Х
- flag = url_list.IndexOf(str_name_1);
- if (str_name_1 == "EPU")
- {
- flag = -2;
- arr1 = new double[EPUArr_Value.Length];
- for (int i = 0; i < arr1.Length; i++)
- {
- arr1[i] = Convert.ToDouble(EPUArr_Value[i]);//получаем нужную статистику акций
- //xvalues[i] = tempX;
- }
- }
- if (flag != -1) //обработчик для EPU
- {
- xvalues = new double[EPUArr_Value.Length];
- dates = new XDate[EPUArr_Value.Length];
- for (int i = 0; i < EPUArr_Value.Length; i++)
- {
- string[] temparr = EPUArr_Date[i].Split('.');
- tempX = new int[temparr.Length];
- for (int j = 0; j < temparr.Length; j++)
- {
- tempX[j] = Convert.ToInt32(temparr[j]);
- }
- dates[i] = new XDate(tempX[2], tempX[1], tempX[0]);
- xvalues[i] = dates[i];
- }
- if (flag != -2) //обработчик для эмитентов
- {
- if (option == 3)
- {
- arr1 = MakeDayRangeArray(arr1, option, flag);
- }
- else
- {
- arr1 = new double[DataArray[flag].Length / n_stat];
- for (int i = 0; i < arr1.Length; i++)
- {
- arr1[i] = Convert.ToDouble(DataArray[flag][i, option]);//получаем нужную статистику акций
- }
- }
- }
- if (index == 1) //расчет основных статистик
- {
- stat1.Text = Convert.ToString(Math.Round(MeanValue(arr1, 0, arr1.Length), 4));
- stat2.Text = Convert.ToString(Math.Round(Sk(arr1, 0, arr1.Length), 4));
- stat3.Text = Convert.ToString(Math.Round(Sko(arr1, 0, arr1.Length), 4));
- stat4.Text = Convert.ToString(Math.Round(SD(arr1, 0, arr1.Length), 4));
- stat5.Text = Convert.ToString(Math.Round(Dispersion(arr1, 0, arr1.Length), 4));
- lCorr1.Text = Convert.ToString(Math.Round(LinCorr(arr1, EPUArr_Value, 0, EPUArr_Value.Length), 4));
- }
- else
- {
- stat6.Text = Convert.ToString(Math.Round(MeanValue(arr1, 0, arr1.Length), 4));
- stat7.Text = Convert.ToString(Math.Round(Sk(arr1, 0, arr1.Length), 4));
- stat8.Text = Convert.ToString(Math.Round(Sko(arr1, 0, arr1.Length), 4));
- stat9.Text = Convert.ToString(Math.Round(SD(arr1, 0, arr1.Length), 4));
- stat10.Text = Convert.ToString(Math.Round(Dispersion(arr1, 0, arr1.Length), 4));
- lCorr2.Text = Convert.ToString(Math.Round(LinCorr(arr1, EPUArr_Value, 0, EPUArr_Value.Length), 4));
- }
- for (int l = 0; l < arr1.Length; l++)
- list1.Add(l, arr1[l]);
- pane.YAxisList.Clear();
- int axis1 = pane.AddYAxis(str_name_1);
- LineItem myCurve1 = pane.AddCurve(str_name_1, xvalues, arr1, Color.Blue, SymbolType.None);
- pane.XAxis.Type = AxisType.Date;
- pane.XAxis.Scale.Format = "dd.MM.yyyy";
- myCurve1.YAxisIndex = axis1;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement