Beispiel #1
0
        public void GetStatistics(string pair, ServiceConfiguration.TimeFrame frame, int span, double confidence, ref double max, ref double average, ref double min, ref double test)
        {
            double[][] data = GetMonteCarlo(pair, frame, span, Index);
            double[]   values;

            if (Objects.IsNullOrEmpty(data))
            {
                return;
            }

            values = Doubles.ToArray(data.ToArray(), span - 1, true, false);

            if (Objects.IsNullOrEmpty(values))
            {
                return;
            }

            average = values.Average();
            double change = AMath.StandarConfidence(values, average, confidence, false);

            max = average + change;
            min = average - change;

            double success = 0;

            for (int i = 1; i < Indexes.Length; i++)
            {
                var pack = GetMonteCarlo(pair, frame, span, Indexes[i]);
                if (pack == null)
                {
                    success = 0;
                    break;
                }

                double[][] packet = pack.ToArray();
                values = Doubles.ToArray(packet, span - 1, true, false);


                if (Objects.IsNullOrEmpty(values))
                {
                    success = 0;
                    break;
                }

                double avg = values.Average();
                double ch  = AMath.StandarConfidence(values, avg, confidence, false);
                double mx  = avg + ch;
                double mn  = avg - ch;


                double value = TestData[Indexes[i] + span];

                if (value >= mn && value <= mx)
                {
                    ++success;
                }
            }

            test = ((double)success / (Indexes.Length - 1)) * 100;
        }