Originally Posted By: Nektodron

надо написать так
"!(pos.IsActive || pos.ExitBarNum > barNum)"

Вот вставил, получился код:

public class balanse : IPosition2Double
{
public double Execute(IPosition pos, int barNum)
{ if (pos == null || !(pos.IsActive || pos.ExitBarNum > barNum))
{
return 0;
} else
{return (pos.OpenProfit(barNum));}
}
}

Теперь он стал работать как стандартный блок "Доход" и протягивает значение до следующей позиции (а нужно только до конца собственной активной позиции), получается что на это выражение "!(pos.ExitBarNum > barNum)" нет должного реагирования, т.е. должен выводиться 0, когда номер exitбара <= текущего бара? Скрин прилагаю. По разному изголялся, даже писал pos.ExitBarNum-1..2..3 - в этом случае, при 1 продлевает(как в скрине), с 2 начинат рисовать по старому, т.е. без значения последнего бара перед выходом (как в первом посте этой темы).


Attachments
Блок пользовательский доход1.JPG (495 downloads)

_________________________