Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 1309

 
Muchas gracias a todos los que han respondido!!! ¡Probaré sus opciones!
 
Alexey Viktorov:

Si hace esta enumeración

puedes intentar escribirlo así

Como siempre, has ofrecido la mejor manera de resolver mi problema.

 
Alexey Viktorov:

¿Por qué convertir a int? Porque en mql5, a partir de H1, el valor de la enumeración no es igual al número de minutos. Y en mi opinión, por el contrario introducirá mucha confusión.

¡Tu método parece funcionar también! ¡Gracias!

 
Alexey Viktorov:

¿Y qué? ¿Tienen algo diferente en la enumeración ENUM_TIMEFRAMES? ¿O hay miedo a quedarse sin memoria? No sé cómo molestarse con eso...


ps; Ah que lento estoy escribiendo...)))) Mientras yo escribía una línea, Kira27 escribía tanto......... Y algo que sospecho que se utilizará en mql4.

IN MQL5 )))

 
Aquí hay un script para probar, funciona)))
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   enum frame1 // перечисление именованных констант
     {
      m1  = (int)PERIOD_M1,
      m5  = (int)PERIOD_M5,
      m15 = (int)PERIOD_M15,
      m30 = (int)PERIOD_M30,
      h1  = (int)PERIOD_H1,
      h4  = (int)PERIOD_H4,
      d1  = (int)PERIOD_D1,
      W1  = (int)PERIOD_W1,
      MN1 = (int)PERIOD_MN1
     };
   double T = iHigh(NULL,(ENUM_TIMEFRAMES) d1,0);

   Alert("Frame= ", (ENUM_TIMEFRAMES)  d1," iHigh= ",T);

  }

el resultado es el siguiente Aunque el valor int del día en minutos es 1440. Pero funciona, hih es correcto.

 
Alexey Viktorov:

¿Y qué? ¿Tienen algo diferente en la enumeración ENUM_TIMEFRAMES? ¿O hay miedo a quedarse sin memoria? No sé cómo molestarse con eso...


ps; Ah que lento estoy escribiendo...)))) Mientras yo estaba escribiendo una sola línea Kira27 escribió wow......... Y algo que sospecho que se utilizará en mql4.

Tu manera da el mismo resultado)))

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   enum frame1 // перечисление именованных констант
     {
      m1  = PERIOD_M1,
      m5  = PERIOD_M5,
      m15 = PERIOD_M15,
      m30 = PERIOD_M30,
      h1  = PERIOD_H1,
      h4  = PERIOD_H4,
      d1  = PERIOD_D1,
      W1  = PERIOD_W1,
      MN1 = PERIOD_MN1
     };
 
   double T = iHigh(NULL,(ENUM_TIMEFRAMES) d1,0);
   
   Alert("Frame= ", (ENUM_TIMEFRAMES)  d1," iHigh= ",T);
  }

 
Kira27:

Tu manera da el mismo resultado)))

No lo dudé :-)))

 
Hola a todos.

Por favor, ayúdenme a sustituir la función escrita en MQL4 por MQL5.

double iHig(datetime ds, datetime de)
  {
   //Alert(iBarShift(Symbol(),PERIOD_CURRENT,ds),"  ",ds);
   return
      High[
         iHighest(Symbol(),PERIOD_CURRENT,MODE_HIGH,
                  iBarShift(Symbol(),PERIOD_CURRENT,ds)-iBarShift(Symbol(),PERIOD_CURRENT,de)+1,
                  iBarShift(Symbol(),PERIOD_CURRENT,de)
                 )
          ];
  }

El problema es que en MQL5 no hay variables predefinidas Alto, y no sé cómo o con qué sustituir esta variable.

 
Sprut 185:
Hola a todos.

Por favor, ayúdenme a sustituir la función escrita en MQL4 por MQL5.

El problema es que MQL5 no tiene variables predefinidas High, y no sé cómo o con qué sustituir esta variable.

Hay una serie de tiempo en MQL5

iHigh,

iLow,

etc.

Sección de ayuda: Acceso a datos de series temporales e indicadores/
 
Kira27:

Hay series temporales en MQL5

iHigh,

iLow,

etc.

Sección de ayuda: Acceso a datos de series temporales e indicadores/.
Gracias por el consejo, no lo encontré en primer lugar........ Resulta que esta variable tiene un nombre diferente.