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)); }
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); //} }
public bool BelongsSameResistanceLevel(SRValue res) { return(Resistance.Last() == res); //for(int i = Resistance.Count - 1; i >= 0; i --) }
private SRValue GetLastResistance() { return(Resistance.Count > 0 ? Resistance.Last() : null); }