Дак это для первой позиции за день профит. Нужно же суммарно за день. В общем я ошибку нашел, код работает, правда он считает сумму уже закрытых сделок, а хотелось бы, чтобы к уже закрытым плюсовался профит по еще незакрытой позиции. Как это можно сделать? И еще гляньте корректность кода, в плане правильности диапазонов, а то, например, в начале дня до первой позиции вообще на графике нет величины, даже нуля..
Code:
 [HandlerName("Day Profit")]
    [HandlerCategory("777")]
    public class ProfitFromFirst : IOneSourceHandler, IDoubleReturns, IValuesHandler, ISecurityInputs
    {
        public double Execute(ISecurity source, int barNum)
        {
            // берем дату текущего бара
            var curBarDate = source.Bars[barNum].Date;
            // отбираем закрытые сделки с днем закрытия совпадающим с текущим, сортируем по дате закрытия
            var list = source.Positions.Where(pos => !pos.IsActive && pos.EntryBarNum < barNum
    && pos.ExitBar.Date.DayOfYear == curBarDate.DayOfYear
    && pos.ExitBar.Date.Year == curBarDate.Year)
    .OrderBy(pos => pos.ExitBar.Date).ToArray();
            double sum=0;
            if (list.Length >= 1)
            {
                for (int i = 0; i < list.Length; i++)
                {
                    sum += list[i].Profit();
                }
                // возвращаем суммарный профит за день
                return sum;
            }
            if (list.Length < 1)
            {
                return 0;
            }
            return 0;
        }
    }