«Нулевая» цена в сетке ордеров


MQL4-5: онлайн курс по программированию

Функция рассчитывает уровень цены, на которой прибыль и убыток будут равны в сетке ордеров. Конечно, с учетом объема каждого ордера.

//+------------------------------------------------------------------+
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);
  }
//+------------------------------------------------------------------+

Поделись с друзьями: