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

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

Puedo estar equivocado, pero creo que no tienes ni idea de cómo funciona el EA. ¿Qué quiere decir con "el programa está en marcha"?

Un consejo: antes de nada, averigua qué son OnInit, OnTick y OnDeinit. Creo que todo caerá en su lugar ))))

En general, a juzgar por su respuesta, usted mismo no entiende realmente cómo funciona el programa. Ya que parece una pregunta tonta. Sí, al igual que el comentarista anterior piensa que se detiene. Sólo por experiencia en programación en otros lenguajes creo que ejecuta su cuerpo en un bucle, y cuando llega un evento, se sumerge en él. Si el programa ejecuta su cuerpo en un bucle, eso explica por qué el programa está escrito de esa manera.
 

Buenos días a todos! Estoy probando un Asesor Experto en MT4.
¿Pueden por favor decirme qué lenguaje, o función en MQL4 se debe utilizar para hacer que la función Print() imprima sólo 1 vez en el registro del probador de MT4 y sólo con el valor de la última hora. He aquí un código sencillo.

int g;
void OnTick()
{
if (Hour()>g)
{
Print("------------------------------------=",Hour());
g=Hour();
}
}

Print() se imprime en el archivo de registro МТ-4 en cada hora.

2020.06.24 15:54:12.250 2010.01.04 06:00:00  ОПТИМ КОДА EURUSD,M1: ------------------------------------=6
2020.06.24 15:54:12.249 2010.01.04 05:00:00  ОПТИМ КОДА EURUSD,M1: ------------------------------------=5
2020.06.24 15:54:12.249 2010.01.04 04:00:00  ОПТИМ КОДА EURUSD,M1: ------------------------------------=4
2020.06.24 15:54:12.248 2010.01.04 03:00:00  ОПТИМ КОДА EURUSD,M1: ------------------------------------=3
2020.06.24 15:54:12.247 2010.01.04 02:00:00  ОПТИМ КОДА EURUSD,M1: ------------------------------------=2
2020.06.24 15:54:12.247 2010.01.04 01:00:00  ОПТИМ КОДА EURUSD,M1: ------------------------------------=1
2020.06.24 15:54:12.214 2010.01.01 00:00:00  ОПТИМ КОДА test started
2020.06.24 15:54:12.196 TestGenerator: spread set to 2
2020.06.24 15:54:09.838 Expert ОПТИМ КОДА EURUSD,M1: loaded successfully
2020.06.24 15:54:09.827 Expert ОПТИМ КОДА EURUSD,M1: removed

Pero necesito que Print() se imprima en el MT-4 Logger sólo una vez con el último valor de la hora. Lo lógico sería borrar la penúltima, es decir, la anterior entrada de Print ( ) después de que aparezca la última en el registro. Sé cómo eliminar una orden, un objeto gráfico. Pero aún no sé cómo eliminar la entrada Print() del Libro de Registro.

Gracias por su ayuda.

Документация по MQL5: Общие функции / Print
Документация по MQL5: Общие функции / Print
  • www.mql5.com
Данные типа double выводятся с точностью до 16 десятичных цифр после точки, при этом данные могут выводиться либо в традиционном либо в научном формате – в зависимости от того, как запись будет наиболее компактна. Данные типа float выводятся с 5 десятичными цифрами после точки. Для вывода вещественных чисел с другой точностью либо в явно...
 
Valeriy Yastremskiy:
No. La garrapata no es cortada por el examinador. Si el EA está en marcha, los ticks entrantes se saltan. Cuando termine, el siguiente tick lo iniciará de nuevo en modo de espera.
Según su lógica, parece que el programa nunca irá a la función de ajuste del lote. Pero así es como está escrito el programa del editor oficial. He escrito el orden de las funciones en posts anteriores.
 
Vuelvo a preguntar, tengo dudas con los comentarios anteriores. El ejemplo oficial sugiere contar el volumen del lote en el cuerpo del programa, pero ¿no es lógico calcularlo en cada tick? ¿Para qué está escrito en el cuerpo del programa?
 
No puedo instalar un EA. ¿Qué hago? El botón de instalación no hace clic. Para ser más precisos, no ocurre nada cuando lo pulso
 
Сергей Таболин:

¿Kalash o Maxim? ))))))))))))


Pregunta:

Hay un guión. No se puede lanzar desde el EA utilizando los medios estándar. Por lo tanto, tenemos que añadirlo al Asesor Experto como una función. Pero no quiero hacer los mismos cambios en el Asesor Experto al editar el script. ¿Cómo hacerlo? ¿Por medio de inclusiones?

Clases) y objetos
O pegando)
 
Ivan_Invanov:
Según su lógica, parece que el software nunca irá a la función de ajuste de lotes. Pero así es como está escrito el programa del editor oficial. El orden de las funciones lo escribí en posts anteriores.
La inicialización y desinicialización funcionan una vez. Al principio y al final.
 
Ivan_Invanov:
En general, a juzgar por su respuesta, usted mismo no entiende realmente cómo funciona el programa. Así que parece que es una pregunta tonta. Al igual que el comentarista anterior piensa que se detiene. Sólo por experiencia en programación en otros lenguajes creo que ejecuta su cuerpo en un bucle, y cuando llega un evento, se sumerge en él. Si el programa ejecuta su cuerpo en un bucle, eso explica por qué el programa está escrito de esa manera.

A juzgar por tu comentario, tú tampoco lo entiendes. (((

No se trata de "otros idiomas", ¡se trata de MQL!

Un consejo para ti también: averigua exactamente cómo funciona este grupo.

Todas las demás funciones son derivadas.

Resuélvelo.

 
Ivan_Invanov:
Sí, no lo entiendo, por eso pregunto. Sé que ontick es un evento, pero no entiendo a dónde va el EA después. ¿Irá al cuerpo del programa y calculará el volumen del lote, o no irá? ¿Por qué el EA del editor oficial ha sido escrito de esa manera?

¿Y crees que alguien aquí va a empezar a reescribir la documentación para ti personalmente? ¿Sólo para ti? ¿Aquí? Tacha eso tú mismo....

 
Ivan_Invanov:
Sí, no entiendo, eso es lo que pregunto. Ya sé que ontick es un evento, lo que no me queda claro es a dónde va luego el EA. ¿Por qué lo ha escrito así el editor?

Tú enseñarías el código (pero tienes que entender que si enseñas el código entonces los derechos de autor están a la vista) y los chicos mirarán el esquema del EA y dirán qué se llama y qué no se abre un trato o no.

Razón de la queja: