Функция вычисляет уровень безубытка в сетке ордеров в зависимости от цен установки ордеров и их объема.
double NullPriceForGread(int type)//функция нулевой цены (безубыток) сетки ордеров
{
double lots = 0;
double totaLots = 0;
double openPrice = 0;
double prom = 0;
double NullPrice = 0;
for(int i=OrdersTotal()-1; i>=0; i--)
{
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
{
if(OrderType() == type)
{
lots = OrderLots();
totaLots += OrderLots();
openPrice = OrderOpenPrice();
prom += lots * openPrice;
}
}
}
}
if(prom > 0 && totaLots > 0)
NullPrice = NormalizeDouble(prom/totaLots, _Digits);
return(NullPrice);
}