Originally Posted By: jhgjrht
if (sec.Bars[i].Date.TimeOfDay == new TimeSpan( 10, 0, 0 ))
но так лучше не сравнивать, потому что бара в 10:00 может и не быть.


Теоретический может не быть. На практике не знаю, у меня мало опыта, но думаю на ликвидных инструментах это довольно безопасно. В отличие от измерения времени в барах - тут пропуски баров регулярные из-за клиринга.

Я бы нашел первый и последний бар предыдущего дня так:


var j = 0;
var lastBar =0;
var firstBar =0;
while (sec.Bars[i-j].Date.Day==sec.Bars[i].Date.Day)
{
j++;
lastBar = i-j;
}

j = 0;
while (sec.Bars[lastBar-j] .Date.Day==sec.Bars[lastBar].Date.Day)
{
firstBar = lastBar - j;
j++;
}