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); }