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

 
forexman77:

¡Muchas gracias! Funciona.

Explica la lógica de mql5. En mql4, se utiliza int Hour() para determinar el tiempo en horas. En mql5, no existe tal constante, según he entendido.

1.¿Cómo reconoce el programa que estamos pidiendo el tiempo en horas? ¿Supongo que desdeMqlDateTime?

2.Para sumar la hora actual en minutos a la hora actual en horas, es decir, para saber la hora actual en minutos, la construcción sería así

1. Sí

2. Sí.

 

Segundo día de reajuste del EA de mql4 a mql5.

1. Necesito encontrar la hora de apertura de la barra diaria en segundos desde el 01.01.1970. He encontrado la función en el foro:

//--- переменные для указания параметров функции
int start = 0; // индекс бара
int count = 1; // количество баров
datetime tp[]; // массив, в котором возвращается время баров
//--- копирование времени 
CopyTime(_Symbol,PERIOD_D1,start,count,tp);
//--- вывод результата
Alert(tp[0]);

No estoy seguro de si la función encuentra la hora del último o del primer compás.

La hora se muestra como el comienzo del día de negociación, en forma de fecha y hora.

Encontré la función StringToTime; parece hacer lo que necesito pero he probado diferentes combinaciones y ahora me siento como un chimpancé que no puede entender qué botón pulsar para abrir la puerta de la manzana.

3. No tengo las funciones iBarShift, iLow, iLowest en mql5. ¿Podría aconsejar cómo encontrar el mínimo para un determinado período de tiempo cada día o qué funciones enmql5 se deben utilizar para resolver este problema?

Документация по MQL5: Преобразование данных / StringToTime
Документация по MQL5: Преобразование данных / StringToTime
  • www.mql5.com
Преобразование данных / StringToTime - Документация по MQL5
 
forexman77:

Segundo día de reajuste del EA de mql4 a mql5.

1. Necesito encontrar la hora de apertura de la barra diaria en segundos desde el 01.01.1970. Encontré la función en el foro:

2. Encontré la función StringToTime y parece hacer lo que necesito. Pero probé diferentes combinaciones y ahora me siento como un chimpancé que no sabe qué botón apretar para abrir la puerta de la manzana.

No tengo las funciones iBarShift, iLow, iLowest en mql5.¿Pueden decirme cómo encontrar el mínimo para un determinado período de tiempo cada día, o qué funciones enmql5 debo utilizar para resolver este problema?

1,2. Lea aquí.

3. leer aquí.

 
DC2008:

1,2. Lea aquí.

3. Lea aquí.

Sobre la segunda pregunta. Vuelve a leer todo lo relacionado con la fecha. "El tipo datetime está pensado para almacenar la fecha y la hora como el número de segundos transcurridos desde el 01 de enero de 1970".

Por qué entonces al llamar la alerta dice: 2013.10.02 00:00:00 y no el número de segundos.

 
forexman77:

Sobre la segunda pregunta. Vuelve a leer todo lo relacionado con la fecha. "El tipo datetime está pensado para almacenar la fecha y la hora como el número de segundos transcurridos desde el 01 de enero de 1970".

Por qué entonces cuando se llama la alerta se muestra: 2013.10.02 00:00:00 y no el número de segundos.

Ahora lee aquí. Para que aparezca en la alerta, debe convertir el tipo datetime al tipo int.

 
DC2008:

Ahora lee aquí. Para que aparezca en la alerta, es necesario convertir el tipo datetime en tipo int.

Hice una construcción como esta:

int start = 0; // индекс бара
int count = 1; // количество баров
datetime tp[]; // массив, в котором возвращается время баров
//--- копирование времени 
CopyTime(_Symbol,PERIOD_D1,start,count,tp);
//--- вывод результата
int st=tp[0];
Alert("st=",st);

Lo comparé con metatrader 4 y obtuve el mismo número.

Pero el mensaje es amarillo al compilar mql5:

posible pérdida de datos debido a la conversión de tipos

Intenté hacerlo así:

int start = 0; // индекс бара
int count = 1; // количество баров
datetime tp[]; // массив, в котором возвращается время баров
//--- копирование времени 
CopyTime(_Symbol,PERIOD_D1,start,count,tp);
//--- вывод результата
Alert(IntegerToString(tp[0]));
No hay errores. Pero no sé dónde adjuntarIntegerToString para obtener el valor sin alertar, ya que será utilizado por el Asesor Experto para los cálculos. Lo único que no entiendo es que será un valor de cadena, es decir, ¿se puede utilizar como comparación con otro número?
 
forexman77:

Hizo una construcción como esta:

comparado con metatrader 4, resulta el mismo número.

Excepto que el mensaje sale en amarillo al compilar mql5:

posible pérdida de datos debido a la conversión de tipos

Es más sencillo que eso.

//--- вывод результата
Alert("st=",(int)tp[0]);
 

¿Pueden decirme cómo crear una señal si antes estaba suscrito a otra?

Es decir, ya me he dado de baja de ella. ¿Realmente no es posible?

Hizo el 100% en menos de 2 semanas y no puede compartir con nadie(

 
esta también es una cuestión interesante
 
DC2008:

Es más sencillo que eso.

Aun así, necesitaré la variable "st" no sólo en Alert, sino también para los cálculos, y al compilar sale el aviso de "posible pérdida de datos por conversión de tipo".

Supongo que esto se debe a que obtengo un número de 10 dígitos y el valor máximo en int es 2 147 483 647, actualmente obtengo 1 380 758 400. ¿Tal vez tenga sentido usar el tiempo y probablemente el EA consuma muchos recursos en esta parte?

Документация по MQL5: Общие функции / Alert
Документация по MQL5: Общие функции / Alert
  • www.mql5.com
Общие функции / Alert - Документация по MQL5
Razón de la queja: