Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 47

 
Artyom Trishkin:

Если добавить к каждой строке комментарии, то интереснее будет:

input    int      MetaQuotes1    =  30;         // Описание входного параметра 1
input    bool     MetaQuotes2    =  true;       // Описание входного параметра 2
input    double   MetaQuotes3    =  20.3;       // Описание входного параметра 3
input    string   MetaQuotes4    =  "Corp";     // Описание входного параметра 4

а если сделаете ещё перечисление, и будете его использовать вместо bool, то ещё интереснее будет:

enum enumYN
  {
   enYes =  1,    // Да
   enNo  =  0,    // Нет
  };

input    int      MetaQuotes1    =  30;         // Описание входного параметра 1
input    enumYN   MetaQuotes2    =  enYes;      // Описание входного параметра 2
input    double   MetaQuotes3    =  20.3;       // Описание входного параметра 3
input    string   MetaQuotes4    =  "Corp";     // Описание входного параметра 4

а sinput позволяет исключить переменную из списка переменных для оптимизации. Например, переменная MetaQuotes4 в данном контексте не нужна для оптимизации, и её можно исключить:

enum enumYN
  {
   enYes =  1,    // Да
   enNo  =  0,    // Нет
  };

input    int      MetaQuotes1    =  30;         // Описание входного параметра 1
input    enumYN   MetaQuotes2    =  enYes;      // Описание входного параметра 2
input    double   MetaQuotes3    =  20.3;       // Описание входного параметра 3
sinput   string   MetaQuotes4    =  "Corp";     // Описание входного параметра 4

С этим всё в порядке, требовалось  добавить только текст, что бы было понятно при оптимизации от и до какого параметра и шаг. 

 
Mikhail Goryunov:
С этим всё в порядке, требовалось  добавить только текст, что бы было понятно при оптимизации от и до какого параметра и шаг. 
Хорошо. Но есть другие, кому не известно было ;)
 
для чего так пишут, что присваивают? int tik=OrderSend
 
wishmast:
для чего так пишут, что присваивают? int tik=OrderSend
Потому что 
Возвращаемое значение

Возвращает номер тикета, который назначен ордеру торговым сервером или -1 в случае неудачи. Чтобы получить информацию об ошибке, необходимо вызвать функцию GetLastError().

соответственно дальше от значения этой переменной будет зависит дальнейшие действия. Например

      double ask=NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_ASK),digits);
      price=NormalizePrice(_Symbol,ask+Distance*_Point);
      t=OrderSend(_Symbol,OP_BUYSTOP,volume,price,Slippage,0,0,CommentOrder,Magic,0,clrBlue);
      if(t<0)
        {
         error=GetLastError();
         rezult=StringConcatenate(_Symbol,": error open order ",DoubleToString(volume,2)," ",TypeToStr(type)," №- ",error," ",ErrorDescription(error));
         Print(rezult);
        }
      else
        {
         tiket=t;
         rezult=StringConcatenate(_Symbol,": open order ",t," ",DoubleToString(volume,2)," ",TypeToStr(type));
         Print(rezult);
         SendNotification(rezult);
        }


 ....

 
Artyom Trishkin:

а sinput позволяет исключить переменную из списка переменных для оптимизации. Например, переменная MetaQuotes4 в данном контексте не нужна для оптимизации, и её можно исключить:


sinput   string   MetaQuotes4    =  "Corp";     // Описание входного параметра 4
Неудачный пример, строчные параметры и так в оптимизации никак не будут участвовать.
 
Vitalie Postolache:
Неудачный пример, строчные параметры и так в оптимизации никак не будут участвовать.
Я не подбирал по удачности/не удачности. Просто показал на примере конкретного вышенаписанного кода. Пример был понятен. Этого и добивался.
 
Artyom Trishkin:
Я не подбирал по удачности/не удачности. Просто показал на примере конкретного вышенаписанного кода. Пример был понятен. Этого и добивался.

Совершенно верно можно и так

input string   MetaQuotes4    =  "Corp";
 
Mikhail Goryunov:

Совершенно верно можно и так

input string   MetaQuotes4    =  "Corp";
Можно. Кто мешает? Моя цель была рассказать о sinput. Я рассказал. Ну, пример малость неудачный, но сути не меняет.
 

Есть такая конструкция. 

double iLowest(string symbol, ENUM_TIMEFRAMES timeframe, int ne) 

Вопрос: какой тип имеет ENUM_TIMEFRAMES , на int ругается

 
Vitaly Muzichenko:

Есть такая конструкция. 

double iLowest(string symbol, ENUM_TIMEFRAMES timeframe, int ne) 

Вопрос: какой тип имеет ENUM_TIMEFRAMES , на int ругается

Это перечисление: enum