public double Resolute(string product, int minResolutions, int index) { ChartPointsPredition CPsPOriginal = DATA[product][index]; if (CPsPOriginal == null || CPsPOriginal.Type == ChartPointsPredition.Kind.Uncertain || CPsPOriginal.Type == ChartPointsPredition.Kind.Average || CPsPOriginal.Tendency == 50 || CPsPOriginal.TendencyToday == 50 || CPsPOriginal.TendencyComplementary == 50) { return(0); } List <ChartPointsPredition> LCPsPAll = this.ExtractType(DATA[product].GetRange(0, index), CPsPOriginal); //All of type //1 - 67%//ExtractTendencyToTendencyComplementary ExtractTendenciesDirectted ExtractTendencyUncertainity //1-3 - 67% LCPsPAll = this.ExtractTendencyToTendencyComplementary(LCPsPAll, CPsPOriginal); //0.87 ratio - ExtractTendencyToTendencyComplementary double[] DAParametersOryginal = CPsPOriginal.Parameters; List <double[]> LDAPStrikes = this.ExtractParameters(LCPsPAll, CPsPOriginal, true, false); List <double[]> LDAPFails = this.ExtractParameters(LCPsPAll, CPsPOriginal, false, false); double dRatio = ((double)LDAPStrikes.Count / LCPsPAll.Count()) * 100; if (LDAPStrikes.Count < minResolutions || LDAPFails.Count < minResolutions || dRatio < 25) { return(0); } double dSFS = ANALYSIS.SimilarityFactor(LDAPStrikes, DAParametersOryginal); double dSFF = ANALYSIS.SimilarityFactor(LDAPFails, DAParametersOryginal);// *((double)LDAPFails.Count() / LCPsPAll.Count()); if (dSFS > dSFF) { return(((double)dSFS / dSFF) * 100 * ((double)LDAPStrikes.Count() / LCPsPAll.Count())); } else { return(0); } }
public double ResoluteTest(string product, int minResolutions, int index) { ChartPointsPredition CPsPOriginal = DATA[product][index]; if (CPsPOriginal.Type == ChartPointsPredition.Kind.Uncertain || CPsPOriginal.Type == ChartPointsPredition.Kind.Average) { return(0); } //ExtractTypeExtremumTendencyTest List <ChartPointsPredition> LCPsPAll = this.ExtractTypeTest(DATA[product].GetRange(0, index), CPsPOriginal, false); //All of type List <ChartPointsPredition> LCPsPAllReversed = this.ExtractTypeTest(DATA[product].GetRange(0, index), CPsPOriginal, true); //All of type // LCPsPAll = this.ExtractSimilarityTest(LCPsPAll); LCPsPAllReversed = this.ExtractSimilarityTest(LCPsPAllReversed); // LCPsPAll = this.ExtractTypeExtremumTendencyTest(LCPsPAll); LCPsPAllReversed = this.ExtractTypeExtremumTendencyTest(LCPsPAllReversed); //LCPsPAll = this.ExtractTestContinuous(LCPsPAll); LCPsPAllReversed = this.ExtractTestContinuous(LCPsPAllReversed); //LCPsPAll = this.ExtractTestContinuousTendency(LCPsPAll); LCPsPAllReversed = this.ExtractTestContinuousTendency(LCPsPAllReversed); double[] DAParametersOryginal = CPsPOriginal.Parameters; List <double[]> LDAPStrikes = this.ExtractParameters(LCPsPAll, CPsPOriginal, true, false); List <double[]> LDAPFails = this.ExtractParameters(LCPsPAll, CPsPOriginal, false, false); List <double[]> LDAPStrikesReversed = this.ExtractParameters(LCPsPAllReversed, CPsPOriginal, true, true); List <double[]> LDAPFailsReversed = this.ExtractParameters(LCPsPAllReversed, CPsPOriginal, false, true); double dRatio = ((double)LDAPStrikes.Count / LCPsPAll.Count()) * 100; double dRatioReversed = ((double)LDAPStrikesReversed.Count / LCPsPAllReversed.Count()) * 100; //50.14-50.85 - clear if (LDAPStrikesReversed.Count < minResolutions || LDAPFailsReversed.Count < minResolutions) { return(0); } if (LDAPStrikes.Count < minResolutions || LDAPFails.Count < minResolutions) { return(0); } if (dRatio < 45 || dRatioReversed < 45) { //throw new Exception("Something is f****d up !"); } for (int i = 0; i < LDAPStrikes.Count; i++) { if (LDAPStrikes[i] == null) { var v = 0; var P = 1 + v; } } for (int i = 0; i < LDAPFails.Count; i++) { if (LDAPFails[i] == null) { var v = 0; var P = 1 + v; } } return(1); double dSFS = ANALYSIS.SimilarityFactor(LDAPStrikes, DAParametersOryginal); double dSFF = ANALYSIS.SimilarityFactor(LDAPFails, DAParametersOryginal);// *((double)LDAPFails.Count() / LCPsPAll.Count()); return(1); if (dSFS > dSFF) { return(((double)dSFS / dSFF) * 100 * ((double)LDAPStrikes.Count() / LCPsPAll.Count())); } else { return(0); } }