Beispiel #1
0
        /// <summary>
        /// To handle the input value.
        /// </summary>
        /// <param name="input">The input value.</param>
        /// <returns>The resulting value.</returns>
        protected override IIndicatorValue OnProcess(IIndicatorValue input)
        {
            // используем дополнительную переменную IsFormed,
            // т.к. нужна задержка в один период для корректной инициализации скользящей средней
            _isFormed = MovingAverage.IsFormed;

            return(MovingAverage.Process(TrueRange.Process(input)));
        }
Beispiel #2
0
        /// <summary>
        /// Обработать входное значение.
        /// </summary>
        /// <param name="input">Входное значение.</param>
        /// <returns>Результирующее значение.</returns>
        protected override IIndicatorValue OnProcess(IIndicatorValue input)
        {
            _dev.Process(input);
            var maValue = MovingAverage.Process(input);
            var value   = new ComplexIndicatorValue(this);

            value.InnerValues.Add(MovingAverage, maValue);
            value.InnerValues.Add(UpBand, UpBand.Process(input));
            value.InnerValues.Add(LowBand, LowBand.Process(input));
            return(value);
        }