Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 47

 
Artyom Trishkin:

Si añades comentarios a cada línea, será más interesante:

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

Y si haces otra enumeración y la usas en lugar de un bool, es aún más interesante:

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

y sinput le permite excluir una variable de la lista de variables para la optimización. Por ejemplo, la variable MetaQuotes4 en este contexto no es necesaria para la optimización y puede ser excluida:

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

No hay nada de malo en esto, sólo necesitábamos añadir texto para dejar claro durante la optimización desde y hacia qué parámetro y paso.

 
Mikhail Goryunov:
No hay nada de malo en ello, lo único que había que hacer era añadir un texto para dejar claro cuándo se optimiza desde y hasta qué parámetro y paso.
BIEN. Pero hay otros que no lo sabían ;)
 
¿por qué lo escriben así, qué asignan? int tik=OrderSend
 
wishmast:
¿por qué escriben esto como una asignación? int tik=OrderSend
Porque
Возвращаемое значение

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

El valor de esta variable determinará lo que se haga a continuación. Por ejemplo

      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:

y sinput permite excluir una variable de la lista de variables a optimizar. Por ejemplo, la variable MetaQuotes4 no es necesaria para la optimización en este contexto y puede excluirse:


sinput   string   MetaQuotes4    =  "Corp";     // Описание входного параметра 4
Ejemplo desafortunado, los parámetros en minúsculas no participarán en la optimización de ninguna manera.
 
Vitalie Postolache:
Ejemplo desafortunado, los parámetros en minúsculas no participarán en la optimización de ninguna manera.
No los elegí por el éxito/fracaso. Acabo de mostrar un ejemplo del código que he escrito arriba. El ejemplo era claro. Eso es lo que intentaba hacer.
 
Artyom Trishkin:
No lo elegí por el éxito/fracaso. Acabo de mostrar un ejemplo del código anterior. El ejemplo era claro. Eso es lo que intentaba hacer.

Absolutamente cierto, también puedes hacerlo.

input string   MetaQuotes4    =  "Corp";
 
Mikhail Goryunov:

Absolutamente cierto, tú también puedes hacerlo

input string   MetaQuotes4    =  "Corp";
Podrías. ¿Quién te lo impide? Mi propósito era hablar de sinput. Lo hice. Bueno, el ejemplo es un poco desafortunado, pero no cambia el punto.
 

Aquí hay una construcción.

doubleiLowest(string symbol,ENUM_TIMEFRAMES timeframe,int ne)

Pregunta: ¿qué tipo tieneENUM_TIMEFRAMES?

 
Vitaly Muzichenko:

Aquí hay una construcción.

doubleiLowest(string symbol,ENUM_TIMEFRAMES timeframe,int ne)

Pregunta: ¿qué tipo tieneENUM_TIMEFRAMES?

Esto es enum