public override void pushIndicatorStatistics(LearningIndicator li)
        {
            string id   = li.getName();
            string algo = li.getName().Split('_')[0];

            double[] pp = li.getPredictivePowerArray();

            double score = 0;

            foreach (double d in pp)
            {
                if (double.IsNaN(d) == false && Math.Abs(d) < 1 && Math.Abs(d) > 0)
                {
                    score += Math.Abs(d);
                }
            }

            ValueAndIDPair pair = new ValueAndIDPair()
            {
                _id = id, _value = score
            };

            if (candidates.ContainsKey(algo) == false)
            {
                candidates.Add(algo, pair);
            }
            else if (candidates[algo]._value < score)
            {
                candidates[algo] = pair;
            }

            analysedIndicators++;
        }
        public override void pushIndicatorStatistics(LearningIndicator li)
        {
            string id   = li.getName();
            string algo = li.getName().Split('_')[0];

            double[] pp = li.getPredictivePowerArray();

            double buySellCodeScore = pp[(int)LearningIndicator.LearningIndicatorPredictivePowerIndecies.maxBuyCode] + pp[(int)LearningIndicator.LearningIndicatorPredictivePowerIndecies.maxSellCode];

            ValueAndIDPair pair = new ValueAndIDPair()
            {
                _id = id, _value = buySellCodeScore
            };

            if (candidates.ContainsKey(algo) == false)
            {
                candidates.Add(algo, pair);
            }
            else if (candidates[algo]._value < buySellCodeScore)
            {
                candidates[algo] = pair;
            }

            analysedIndicators++;
        }
Esempio n. 3
0
        public override void pushIndicatorStatistics(LearningIndicator li)
        {
            string id   = li.getName();
            string algo = li.getName().Split('_')[0];

            double[] pp = li.getPredictivePowerArray();

            double score = 0;

            double wightCode    = pp[(int)LearningIndicator.LearningIndicatorPredictivePowerIndecies.valuesOverMinPercentRatioCode];
            double wightOutcome = pp[(int)LearningIndicator.LearningIndicatorPredictivePowerIndecies.valuesOverMinPercentRatioOutcome];

            score = pp[(int)LearningIndicator.LearningIndicatorPredictivePowerIndecies.buySellCodeDistanceStD] * wightCode //Codeprop
                    + pp[(int)LearningIndicator.LearningIndicatorPredictivePowerIndecies.buyCodeStD] * wightCode           //Codeprop
                    + pp[(int)LearningIndicator.LearningIndicatorPredictivePowerIndecies.sellCodeStD] * wightCode          //Codeprop
                    + pp[(int)LearningIndicator.LearningIndicatorPredictivePowerIndecies.minStD] * wightOutcome            //Diff
                    + pp[(int)LearningIndicator.LearningIndicatorPredictivePowerIndecies.maxStD] * wightOutcome            //Diff
                    + pp[(int)LearningIndicator.LearningIndicatorPredictivePowerIndecies.minMaxDistanceStd] * wightOutcome //Diff
                    + pp[(int)LearningIndicator.LearningIndicatorPredictivePowerIndecies.actualStD] * wightOutcome;        //Pred

            if (double.IsNaN(score) || double.IsInfinity(score))
            {
                throw new Exception("Score is wired: " + score);
            }

            ValueAndIDPair pair = new ValueAndIDPair()
            {
                _id = id, _value = score
            };

            if (candidates.ContainsKey(algo) == false)
            {
                candidates.Add(algo, pair);
            }
            else if (candidates[algo]._value < score)
            {
                candidates[algo] = pair;
            }
        }