Ошибка MQL4: «‘}’ — не все пути управления возвращают значение»

#mql4

Вопрос:

Выполнял этот код в файле «Включить». Но я сталкиваюсь с ошибкой «не все пути управления возвращают значение. Что мне делать?

 double CalculateTakeProfit (double entryPrice, int takeProfitPips, double GetPipValue)
   {
   if (bIsBuyPosition == True)
      {
      double result = 0;
      entryPrice = Ask;
      result = (entryPrice   takeProfitPips * GetPipValue());
      return resu<
      }
   else if (bIsBuyPosition == False)
      {
      double result = 0;
      entryPrice = Bid;
      result = (entryPrice - takeProfitPips * GetPipValue());
      return resu<
      }
   }
 

Ответ №1:

Вы if... else ошибаетесь, и вы также не используете переменные, переданные функции. Вместо этого вы ссылаетесь на другую функцию или перезаписываете их. Смешивание типов переменных в расчете также может привести к нежелательным результатам (тейкпрофитпипсы должны иметь тип double ). Вы также можете сократить несколько строк своего кода следующим образом

 double CalculateTakeProfit(double entryPrice, double takeProfitPips, double GetPipValue)
{
   if(bIsBuyPosition) return(entryPrice takeProfitPips*GetPipValue);
   else return(entryPrice-takeProfitPips*GetPipValue);
}