Индикаторы: ADX Extremum

 

ADX Extremum:

Индикатор на основе стандартного ADX - отображает экстремальные точки

ADX Extremum

Автор: Vladimir Karputov

 
Automated-Trading:

ADX Extremum:

Автор: Vladimir Karputov

А почему не записать так?

   if(Period()>PERIOD_D1)
     {
      string err_text=(TerminalInfoString(TERMINAL_LANGUAGE)=="Russian")?
                      "Таймфрейм не может быть больше D1!":
                      "Timeframe can not be greater than D1!";
      //--- when testing, we will only output to the log about incorrect input parameters
        Alert(__FUNCTION__,", ERROR: ",err_text);
      return(MQLInfoInteger(MQL_TESTER)?INIT_FAILED:INIT_PARAMETERS_INCORRECT);
     }
 
Vitaly Muzichenko:

А почему не записать так?

Нельзя выкидывать экперт из рынка по INIT_FAILED - мало ли что там пользователь напутал - всегда нужно оставлять ему шанс.

 
Vladimir Karputov:

Нельзя выкидывать экперт из рынка по INIT_FAILED - мало ли что там пользователь напутал - всегда нужно оставлять ему шанс.

Ну это-же аналогичная конструкция, выкидывает только если это тестер

 
Vitaly Muzichenko:

Ну это-же аналогичная конструкция, выкидывает только если это тестер

Выполните три шага: посмотрите мой код, перечитайте свой вопрос, прочтите мой ответ.

Если не поймёте - начните хоть что-то публиковать в КобоБазе. Понимание сразу появится.
 
Vladimir Karputov:
Выполните три шага: посмотрите мой код, перечитайте свой вопрос, прочтите мой ответ.

Если не поймёте - начните хоть что-то публиковать в КобоБазе. Понимание сразу появится.

Так а разница в итоговом коде какая?

Вот оригинал:

   if(Period()>PERIOD_D1)
     {
      string err_text=(TerminalInfoString(TERMINAL_LANGUAGE)=="Russian")?
                      "Таймфрейм не может быть больше D1!":
                      "Timeframe can not be greater than D1!";
      //--- when testing, we will only output to the log about incorrect input parameters
      if(MQLInfoInteger(MQL_TESTER))
        {
         Print(__FUNCTION__,", ERROR: ",err_text);
         return(INIT_FAILED);
        }
      else // if the Expert Advisor is run on the chart, tell the user about the error
        {
         Alert(__FUNCTION__,", ERROR: ",err_text);
         return(INIT_PARAMETERS_INCORRECT);
        }
     }

Вот уменьшенный:

   if(Period()>PERIOD_D1)
     {
      string err_text=(TerminalInfoString(TERMINAL_LANGUAGE)=="Russian")?
                      "Таймфрейм не может быть больше D1!":
                      "Timeframe can not be greater than D1!";
      //--- when testing, we will only output to the log about incorrect input parameters
        Alert(__FUNCTION__,", ERROR: ",err_text);
      return(MQLInfoInteger(MQL_TESTER)?INIT_FAILED:INIT_PARAMETERS_INCORRECT);
     }