Доброго дня суток. Для реализации риск менеджмента потребовалось написать простую функцию которая возвращала бы максимальное значение зафиксированного П/У за какой либо период истории. Но вот не пойму почему значения различаются? На графике максимально высокая точка выдает одно значение, а функция совсем другое. Функция:
Code:
public static double MaxProfit(this IPositionsList positionsList, int bar)
{
var positions = positionsList.GetClosedForBar(bar);// Берем все закрытые позиции
var maxProfit = 0.0; // начальное значение профита
foreach (var p in positions) //Переберакм все позиции
{
//если профит с учетом предыдущего профита больше то записываем его в переменную maxProfit
//если меньше то возвращаем в переменную то же значение
maxProfit = maxProfit > maxProfit + p.Profit() ? maxProfit : maxProfit + p.Profit();
}
return maxProfit;
}