private MasterBarTickLookup FindMasterBar(int tick)
{
var bars = MasterBars;
var bottom = 0;
var top = bars.Count - 1;
while (bottom <= top)
{
var middle = (top + bottom) / 2;
var bar = bars[middle];
// found?
if (tick >= bar.Start && tick < bar.End)
{
return bar;
}
// search in lower half
if (tick < bar.Start)
{
top = middle - 1;
}
// search in upper half
else
{
bottom = middle + 1;
}
}
return null;
}