Exemplo n.º 1
0
        public override SignalAndValue Process(Candle candle)
        {
            var newValue = candle.CloseAsk;
            var smaValue = _sma.Process(newValue, candle.IsComplete == 1);

            var buff = Buffer;

            if (candle.IsComplete == 0)
            {
                buff = Buffer.ToList();
            }

            buff.Add(newValue);

            if (buff.Count > Length)
            {
                buff.RemoveAt(0);
            }


            var std = buff.Select(t1 => t1 - smaValue.Value).Select(t => t * t).Sum();

            var ret = new SignalAndValue((float)Math.Sqrt((double)(std / Length)), IsFormed);

            CurrentValue = ret.Value;
            return(ret);
        }
        public SignalAndValue Process(float value, bool isComplete)
        {
            var buff = Buffer;

            if (!isComplete)
            {
                // Take copy
                buff = Buffer.ToList();
            }

            buff.Add(value);

            if (buff.Count > Length)
            {
                buff.RemoveAt(0);
            }

            SignalAndValue ret;

            ret = new SignalAndValue(Buffer.Sum() / Length, IsFormed);

            CurrentValue = ret.Value;
            return(ret);
        }