Функция рассчитывает уровень цены, на которой прибыль и убыток будут равны в сетке ордеров. Конечно, с учетом объема каждого ордера.
//+------------------------------------------------------------------+
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);
}
//+------------------------------------------------------------------+