Exemplo n.º 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)
        {
            var cov = base.OnProcess(input);

            var value = input.GetValue <Tuple <decimal, decimal> >();

            var sourceDev = _source.Process(value.Item1);
            var otherDev  = _other.Process(value.Item2);

            return(new DecimalIndicatorValue(this, cov.GetValue <decimal>() / (sourceDev.GetValue <decimal>() * otherDev.GetValue <decimal>())));
        }
Exemplo n.º 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);
        }