Beispiel #1
0
        public bool HasSameResistanceLevel(double value)
        {
            if (Resistance.Count == 0)
            {
                return(false);
            }
            SRValue lastItem = Resistance.Last();

            return(Math.Abs(value - lastItem.Average) / lastItem.Average < (ThresoldPerc * 0.01));
        }
Beispiel #2
0
        private bool UpdateResistance(SRValue value)
        {
            value.Average = value.Value;
            if (Resistance.Count == 0)
            {
                return(true);
            }

            SRValue sr = (SRValue)Resistance.Last();

            value.ChangePc = (value.Value - sr.Value) / sr.Value * 100;
            if (!HasSameLevel(sr, value))
            {
                return(true);
            }

            sr.Average = (sr.Average * sr.Power + value.Value) / (sr.Power + 1);
            sr.Power++;
            sr.Value = Math.Max(sr.Value, value.Value);
            return(false);

            //while(true) {
            //    if(Resistance.Count == 0)
            //        return true;
            //    SRValue sr = (SRValue)Resistance.Last();
            //    if(!HasSameLevel(sr, value))
            //        return true;
            //    SRValue sr2 = Resistance.Count >= 2 ? Resistance[Resistance.Count - 2]: null;
            //    if(sr2 != null && !HasSameLevel(sr, sr2)) {
            //        sr.Power += 1.0;
            //        value.Power = sr.Power;
            //        value.Value = Math.Max(sr.Value, value.Value);
            //        return true;
            //    }
            //    //if(value.Value <= sr.Value) {
            //    //    value.Type = SupResType.None;
            //    //    sr.Power += value.Power;
            //    //    sr.Value = Math.Max(sr.Value, value.Value);
            //    //    return false;
            //    //}
            //    sr.Type = SupResType.None;
            //    Resistance.RemoveAt(Resistance.Count - 1);
            //    value.Power += sr.Power;
            //    value.Value = Math.Max(value.Value, sr.Value);
            //}
        }
Beispiel #3
0
 public bool BelongsSameResistanceLevel(SRValue res)
 {
     return(Resistance.Last() == res);
     //for(int i = Resistance.Count - 1; i >= 0; i --)
 }
Beispiel #4
0
 private SRValue GetLastResistance()
 {
     return(Resistance.Count > 0 ? Resistance.Last() : null);
 }