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

 
User_mt5 #:

Por favor, explique...

La Biblia dice: La variable _Period almacena el valor del marco temporal del gráfico actual.

Los valores reales de _Período para la TF:

М1 = 1

М5 = 5

М15 = 15

М30 = 30

H1 = 16385

H4 = 16388

H6 = 16390

Explique, por favor, que los números 60, 120, etc. ya no están de moda.

Si lo sabes, al menos dame una pista de cuál es el truco aquí.

Y ahora me da miedo preguntar... ¿en qué otro lugar de nuestro misterioso MQL se encuentran estos trucos? :(

aquí están los periodoshttps://www.mql5.com/ru/docs/constants/chartconstants/enum_timeframes

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

en lugar de números - escriba los puntos

Документация по MQL5: Константы, перечисления и структуры / Константы графиков / Периоды графиков
Документация по MQL5: Константы, перечисления и структуры / Константы графиков / Периоды графиков
  • www.mql5.com
Периоды графиков - Константы графиков - Константы, перечисления и структуры - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
User_mt5 #:

Por favor, explique...

La Biblia dice: La variable _Period almacena el valor del marco temporal del gráfico actual.

Los valores reales de _Período para la TF:

М1 = 1

М5 = 5

М15 = 15

М30 = 30

H1 = 16385

H4 = 16388

H6 = 16390

Explique, por favor, que los números 60, 120, etc. ya no están de moda.

Si lo sabes, al menos dame una pista de cuál es el truco aquí.

Y ahora me da miedo preguntar... ¿en qué otro lugar de nuestro misterioso MQL se encuentran estos trucos? :(

Deberías leer toda la Ayuda:

Contenido de la variable_Period, en la que se almacena el valor del timeframe del gráfico actual. El valor puede ser uno de los valoresde la enumeraciónENUM_TIMEFRAMES. La palabra clave aquí es "... enumeraciónENUM_TIMEFRAMES".

Y DEBE utilizar los ENUMERADOS de la enumeración. Por ejemplo PERIOD_H1, PERIOD_M15 ... Y no es necesario saber qué valor interno tiene un elemento de enumeración.

Документация по MQL5: Предопределенные переменные / _Period
Документация по MQL5: Предопределенные переменные / _Period
  • www.mql5.com
_Period - Предопределенные переменные - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
User_mt5 #:

Por favor, explique...

La Biblia dice: La variable _Period almacena el valor del marco temporal del gráfico actual.

Los valores reales de _Período para la TF:

М1 = 1

М5 = 5

М15 = 15

М30 = 30

H1 = 16385

H4 = 16388

H6 = 16390

Explique, por favor, que los números 60, 120, etc. ya no están de moda.

Si lo sabes, al menos dame una pista de cuál es el truco aquí.

Y ahora me da miedo preguntar... ¿en qué otro lugar de nuestro misterioso MQL se encuentran estos trucos? :(

¿Cómo los conseguiste?

 
SanAlex #:

aquí hay periodoshttps://www.mql5.com/ru/docs/constants/chartconstants/enum_timeframes

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

en lugar de números - escriba los puntos

Gracias por los consejos.

Si la característica es conocida, no es difícil tenerla en cuenta. Utilizo PeriodSeconds();

El problema es que no se sabe de antemano de dónde vienen estas... características.

 
Vladimir Karputov #:

La ayuda debe leerse en su totalidad:

Contenido de la variable_Period, que almacena el valor del marco temporal del gráfico actual. El valor puede ser uno de los valores de la enumeraciónENUM_TIMEFRAMES. La clave aquí es "... enumeraciónENUM_TIMEFRAMES".

Y DEBE utilizar los ENUMERADOS de la enumeración. Por ejemplo PERIOD_H1, PERIOD_M15 ... Y no es necesario saber qué valor interno tiene un elemento de enumeración.

Gracias por su participación.

Pero el problema es que ni siquiera sé leer:(

Y en general, no espero que me digan lo que debo hacer. Esperaba obtener una respuesta a mi estúpida pregunta.

 
Сергей Таболин #:

¿Cómo los conseguiste?

Print("_Period = ", _Period );
 
User_mt5 #:

Ahí lo tienes. Se obtiene el valor de la enumeración.

Usuario_mt5 #:

...

Si la característica es conocida, no es difícil tenerla en cuenta. Utilizo PeriodSeconds();

...

Si lo usaras, la pregunta no se plantearía.

 
User_mt5 #:

Por favor, explique...

La Biblia dice: La variable _Period almacena el valor del marco temporal del gráfico actual.

Los valores reales de _Período para la TF:

М1 = 1

М5 = 5

М15 = 15

М30 = 30

H1 = 16385

H4 = 16388

H6 = 16390

Explique, por favor, que los números 60, 120, etc. ya no están de moda.

Si lo sabes, al menos dame una pista de cuál es el truco aquí.

Y ahora me da miedo preguntar... ¿en qué otro lugar de nuestro misterioso MQL se encuentran estos trucos? :(

Fuente:

Foro sobre trading, sistemas de trading automatizados y pruebas de estrategias de trading

El significado oculto de los plazos en MQL5

Serhii Shevchuk, 2017.02.27 01:53

Sí, pero es lento. He dibujado un pequeño guión para comparar:

#property script_show_inputs

input long              InpCycles=1000000000;

ENUM_TIMEFRAMES TF_list[32]={
PERIOD_MN1, PERIOD_W1,  PERIOD_D1,  PERIOD_H12,
PERIOD_H8,  PERIOD_H6,  PERIOD_H4,  PERIOD_H3,  
PERIOD_H2,  PERIOD_H1,  PERIOD_M30, PERIOD_M20,
PERIOD_M15, PERIOD_M12, PERIOD_M10, PERIOD_M6,  
PERIOD_M5,  PERIOD_M4,  PERIOD_M3,  PERIOD_M2,  
PERIOD_M1,  PERIOD_MN1, PERIOD_W1,  PERIOD_D1,
PERIOD_M5,  PERIOD_M4,  PERIOD_M3,  PERIOD_M2,
PERIOD_H2,  PERIOD_H1,  PERIOD_M30, PERIOD_M20
};

int PeriodMinutes(ENUM_TIMEFRAMES tf)
{
      uint t = uint(tf);
      uint f = 0xc000&t;
      uint min = 0x00FF&t;
      if(f==0x4000) min*= 60;
      else if(f==0x8000) min*= 10080;
      else if(f==0xc000)  min*= 43200;
      return(int(min));  
}

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   ulong tmp = 0;
   //
   uint idx = 0;
   ulong t0 = GetMicrosecondCount();
   for(long i=0;i<InpCycles;i++)
      tmp+= PeriodMinutes(TF_list[0x1f&(idx++)]);  
   ulong t1 = GetMicrosecondCount();
   Print("1) tmp = ",tmp,"... dT = ",t1-t0);
//---
   tmp = 0;
   idx = 0;
   t0 = GetMicrosecondCount();
   for(long i=0;i<InpCycles;i++)
      tmp+= PeriodSeconds(TF_list[0x1f&(idx++)])/60;
   t1 = GetMicrosecondCount();
   Print("2) tmp = ",tmp,"... dT = ",t1-t0);
//---
  }    
//+------------------------------------------------------------------+
Como puedes ver, es la mitad de lento que las unidades if:



и

 
Сергей Таболин #:

Ahí lo tienes. Se obtiene el valor de la enumeración.

Si lo hubieras hecho, no habría surgido la pregunta.

No estoy de acuerdo.

Supongo que eso no es una excusa, ni siquiera una explicación.

La lógica general de las variables predefinidas es que se puede acceder a ellas directamente, y dan sus valores.

Así se puede acceder, por ejemplo, a _Punto, _Dígitos, etc. Y eso está bien.

Intuitivamente, se espera que todas las demás variables predefinidas tengan propiedades similares.

Pero en el caso de _Period, no es así.

--

Gracias de nuevo a todos. Demos por zanjada la cuestión.
Que tengáis un buen fin de semana)

 
Fast235 #:

¿para qué sirve el encriptador incorporado en mql? no le encuentro un uso razonable

no tiene sentido cifrar desde sí mismo, y sólo los terminales de las variables globales son visibles para un segundo usuario

Guardar su estado en el disco, intercambiar datos a través de Internet.

Razón de la queja: