using System;
using System.Linq;
using TSLab.Script.Realtime;
using System.Collections.Generic;
using TSLab.Script;
using TSLab.Script.Handlers;
// ReSharper disable UnusedAutoPropertyAccessor.Global
// ReSharper disable MemberCanBePrivate.Global
// ReSharper disable UnusedMember.Global
namespace TSLab.ScriptFrom777
{
[HandlerName("PosProfitПредпоследняяName")]
[HandlerCategory("777")]
public class Предпоследн_ProfitFromByName : IOneSourceHandler, IDoubleReturns, IValuesHandler, ISecurityInputs
{
[HandlerParameter(true, "", NotOptimized = true)]
public string Name { get; set; }
public double Execute(ISecurity source, int barNum)
{
// отбираем закрытые сделки с нужным именем закрытия, сортируем по дате закрытия
var list = source.Positions.Where(pos => !pos.IsActive && pos.ExitBarNum < barNum
&& pos.ExitSignalName == Name)
.OrderByDescending(pos => pos.ExitBar.Date).ToArray();
// возвращаем профит первой из найденных позиций
return list.Length < 2 ? 0 : list[1].Profit();
}
}}