public SignalAndValue Process(Candle candle) { var value = Macd.Process(candle); return(SignalMa.Process(new Candle { CloseBid = value.Value, IsComplete = candle.IsComplete })); }
/// <summary> /// Обработать входное значение. /// </summary> /// <param name="input">Входное значение.</param> /// <returns>Результирующее значение.</returns> protected override IIndicatorValue OnProcess(IIndicatorValue input) { var macdValue = Macd.Process(input); var signalValue = Macd.IsFormed ? SignalMa.Process(macdValue) : new DecimalIndicatorValue(this, 0); var value = new ComplexIndicatorValue(this); value.InnerValues.Add(Macd, input.SetValue(this, macdValue.GetValue <decimal>() - signalValue.GetValue <decimal>())); value.InnerValues.Add(SignalMa, signalValue); return(value); }