Beispiel #1
0
        private void rollDetail(string pair, int offset, TimeFrame baseTimeFrame, 
            IAccumulator accumHi, IAccumulator accumLo, PriceComponent highComp, PriceComponent lowComp)
        {
            double high = Double.NaN;
            double low = Double.NaN;

            IAccumulator accumHi2 = getAccum(pair, baseTimeFrame, highComp);
            IAccumulator accumLo2 = getAccum(pair, baseTimeFrame, lowComp);

            List<double> ldh = accumHi2.getList();
            if (ldh.Count >= offset)
            {
                List<double> ldh2 = ldh.GetRange(ldh.Count - offset, offset);
                high = ldh2.Max();
            }
            List<double> ldl = accumLo2.getList();
            if (ldl.Count >= offset)
            {
                List<double> ldl2 = ldh.GetRange(ldh.Count - offset, offset);
                low = ldl2.Min();
            }
            if (!Double.IsNaN(high))
                accumHi.addLast(high);
            if (!Double.IsNaN(low))
                accumLo.addLast(low);
        }