Пример #1
0
        /// <summary>
        /// Обработчик появления новых данных
        /// Вычисляет среднюю за период
        /// Вычисляет отклонение источника от средней за период
        /// </summary>
        ///// <param name="item">Bar</param>
        //public override void OnEvent(long id)
        public void Do(long id)
        {
            ///вычисляем новые занчения
            ///Input
            var    input             = Input.Value.ToList <Bar>();
            double iAverageTrueRange = TRx.Indicators.BarSource.Indicator.AverageTrueRange_i(
                input, input.Count - 1);

            AverageTrueRange.Add(iAverageTrueRange);

            ///вызываем обработчики значений
            foreach (var handler in HandlersAverageTrueRange)
            {
                handler.Invoke(AverageTrueRange.Last());
            }

            ///упаковка посчитанных значений
            ValueAverageTrueRange.Add(new ValueDouble()
            {
                Id = id,
                //DateTime = item.DateTime,
                //TODO 4. сейчас отрисовывается по имени MaFast, надо переделать на стороне отрисовки
                Name  = "AverageTrueRange",
                Value = iAverageTrueRange
            });

            ///отправка посчитанных значений
            foreach (var handler in HandlersValueAverageTrueRange)
            {
                handler.Invoke(ValueAverageTrueRange.Last());
            }
        }