Errores, fallos, preguntas - página 2469
![MQL5 - Lenguaje de estrategias comerciales para el terminal de cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Lo sabré yo) entonces hackea
Estoy transfiriendo un programa de MQL4 a MQL5.
Me he encontrado con este error.
En los plazos hasta m30 el valor de Period() es correcto.
2019.05.22 17:45:38.628 TestStat (GBPUSD,M15) 4854 Period()=15
2019.05.22 17:46:08.267 TestStat (GBPUSD,M30) 4854 Period()=30
Del marco temporal H1 obtengo valores incomprensibles.
2019.05.22 17:31:07.446 TestStat (GBPUSD,H1) 4854 Period()=16385
2019.05.22 17:46:39.362 TestStat (GBPUSD,H4) 4854 Period()=16388
2019.05.22 17:46:55.552 TestStat (GBPUSD,D1) 4854 Period()=16408
Versión del terminal build 2057 del 21 de mayo de 2019.
Gracias.
En la descripción:
Periodo
Devuelve el valor del marco temporal del gráfico actual.
ENUM_TIMEFRAMESPeriodo();
Valor devuelto
Contenido de la variable _Period , que contiene el valor del marco temporal del gráfico actual. El valor puede ser uno de los valores dela enumeración ENUM_TIMEFRAMES.
Ver también
PeriodSeconds, Periodos del gráfico, Fecha y hora, , Visibilidad del objeto
=================
Eso no está muy bien hecho. Debe estar correctamente escrito en la descripción. No debes buscar el origen del problema en el foro.
Resulta que Period() no da el valor del marco temporal actual como dice:El valor puede ser uno de los valores de la enumeración ENUM_TIMEFRAMES.
Es algo totalmente distinto.
Por favor, corrija la descripción del lenguaje para los desarrolladores.
Tenemos los siguientes resultados en la capacidad ArrayResize MT5(build 2057):
Resultado:
Descripción:
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 laenumeración ENUM_TIMEFRAMES.
Esto no se hace bien. Debe estar correctamente escrito en la descripción. No debes buscar el origen del problema en el foro.
Por lo tanto, en ninguna parte está escrito que este valor sea igual al periodo en minutos (como lo era en el cuadrante).
https://www.mql5.com/ru/articles/81
Ahí empieza el artículo del enlace.
Así que en ningún sitio dice que este valor sea igual al periodo en minutos (como lo era en cuatros).
https://www.mql5.com/ru/articles/81
Aquí comienza el artículo del enlace.
Hay una descripción del lenguaje que dice: El valor puede ser uno de los valores de la enumeración ENUM_TIMEFRAMES.
Consulte la descripción de la lengua más abajo:
Periodos del gráfico
Todos los periodos gráficos predefinidos tienen identificadores únicos. El identificador PERIOD_CURRENT significa el periodo actual del gráfico, en el que se está ejecutando el programa mql5.
ENUM_TIMEFRAMES
Identificador
Descripción
PERIODO_CURRENTE
Período actual
PERIODISTA_M1
1 minuto
PERIODISTA_M2
2 minutos
PERIOD_M3
3 minutos
PERIOD_M4
4 minutos
PERIODISTA_M5
5 minutos
PERIOD_M6
6 minutos
PERIODISTA_M10
10 minutos
PERIODISTA_M12
12 minutos
PERIODISTA_M15
15 minutos
PERIODISTA_M20
20 minutos
PERIODISTA_M30
30 minutos
PERIOD_H1
1 hora
PERIOD_H2
2 horas
PERIOD_H3
3 horas
PERIOD_H4
4 horas
PERIOD_H6
6 horas
PERIOD_H8
8 horas
PERIOD_H12
12 horas
PERIOD_D1
1 día
PERIODO_W1
1 semana
PERIOD_MN1
1 mes
======================
Y en ninguna parte de la descripción dice que este valor es en segundos.
La descripción debería decirlo todo.
Y cuando tienes que buscar otros artículos, es una pena.
Gracias de nuevo aTheXpert por proporcionar el código.
Tenemos los siguientes resultados en la capacidad ArrayResize MT5(build 2057):
1. El primer ArrayResize es muy importante, realmente asigna la memoria teniendo en cuenta el tamaño + reserved_size y establece la capacidad.
2. Todas las ejecuciones posteriores de ArrayResize con un nuevo valor de reserved_size no tienen efecto sobre la cantidad de memoria asignada y la capacidad, respectivamente.
3 Sólo se realiza una nueva asignación de memoria cuando se supera la capacidad y en este caso se vuelve a utilizar size + reserved_size para determinar la cantidad de memoria asignada y establecer una nueva capacidad.
4. Un valor de reserved_size < 0 libera la memoria reservada a tamaño.
Y en ninguna parte de la descripción dice que este valor es en segundos.
Así que no es en segundos...
Hay una descripción del lenguaje que dice: El valor puede ser uno de los valores de la enumeración ENUM_TIMEFRAMES.
Véase más adelante en la descripción de la lengua:
Periodos del gráfico
Todos los periodos gráficos predefinidos tienen identificadores únicos. El identificador PERIOD_CURRENT significa el periodo actual del gráfico, en el que se está ejecutando el programa mql5.
ENUM_TIMEFRAMES
======================
Y en ninguna parte de la descripción dice que este valor es en segundos.
La descripción debería decirlo todo.
Y cuando tienes que pasar por otros artículos, es una pena.
¿Quién te ha dicho que son valores en segundos?
Hay una descripción del lenguaje que dice: El valor puede ser uno de los valores de la enumeración ENUM_TIMEFRAMES.
Véase más adelante en la descripción de la lengua:
Periodos del gráfico
Todos los periodos gráficos predefinidos tienen identificadores únicos. El identificador PERIOD_CURRENT denota el periodo actual del gráfico, en el que se está ejecutando el programa mql5.
ENUM_TIMEFRAMES
Identificador
Descripción
PERIODO_CURRENTE
Período actual
PERIODISTA_M1
1 minuto
PERIODISTA_M2
2 minutos
PERIOD_M3
3 minutos
PERIOD_M4
4 minutos
PERIODISTA_M5
5 minutos
PERIOD_M6
6 minutos
PERIODISTA_M10
10 minutos
PERIODISTA_M12
12 minutos
PERIODISTA_M15
15 minutos
PERIODISTA_M20
20 minutos
PERIODISTA_M30
30 minutos
PERIOD_H1
1 hora
PERIOD_H2
2 horas
PERIOD_H3
3 horas
PERIOD_H4
4 horas
PERIOD_H6
6 horas
PERIOD_H8
8 horas
PERIOD_H12
12 horas
PERIOD_D1
1 día
PERIODO_W1
1 semana
PERIOD_MN1
1 mes
======================
Y en ninguna parte de la descripción dice que este valor es en segundos.
La descripción debería decirlo todo.
Y cuando tienes que pasar por otros artículos, es una pena.
Nunca debe confiar en un valor de enumeración.
Utilice PeriodSeconds().