protected override decimal Calculate() { var emaShort = Short.Calculate(); var emaLong = Long.Calculate(); var macd = emaShort - emaLong; Signal.Add(macd); var signalLine = Signal.Calculate(); currentmacd = macd; currentSignalLine = signalLine; return(macd - signalLine); }
//public decimal CurrentSpeed { get; set; } //private readonly FilterNearZero _filterNearZero = new FilterNearZero(); public override void Add(decimal value) { this.Short.Add(value); this.Long.Add(value); // CurrentSpeed = Derivative(value); if (!this.Signal.IsValid()) { var emaShort = Short.Calculate(); var emaLong = Long.Calculate(); var macd = emaShort - emaLong; Signal.Add(macd); } this.CurrentValue = Calculate(); Derivative.Add(this.CurrentValue); }