namespace TSLab_day_profit
{
[HandlerName("Day Profit")]
[HandlerCategory("777")]
public class ProfitFromFirst : IOneSourceHandler, IDoubleReturns, IValuesHandler, ISecurityInputs
{
public double Execute(ISecurity source, int barNum, double sum)
{
// берем дату текущего бара
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();
// возвращаем суммарный профит за день
if (list.Length >= 1)
{
for (int i = 0; i <= list.Length; i++)
{
sum += list[i].Profit();
}
return sum;
}
return 0;
}
}
}