Autoaprendizaje del lenguaje MQL5 desde cero - página 64

 
MrBrooklin:

¿Es necesario utilizar Alert() o es sólo a título informativo?

No necesariamente, es sólo por comodidad

 
VVT:

No necesariamente, es por comodidad

Ya veo.

Respetuosamente, Vladimir.

 
MrBrooklin:

¡Hola Valery! Gracias por sus consejos. Ya me he hecho amigo del operador if-else, y ahora necesito dominar también el operador switch. ¿Necesito usar Alert() o sólo está ahí para más información?

Saludos, Vladimir.

A la luz de mi experiencia como ingeniero electrónico. Cuando hay un incendio, una sirena, cuando no se limpia el piso, una nota al limpiador. El comentario escribe en el gráfico, imprime en el registro, escribe en el archivo, la alerta pita, y también hay un cuadro de mensajes, también pita, pero no es nativo.

 
Valeriy Yastremskiy:

En vista de la experiencia del electricista. En la sirena de incendio, en los suelos no limpiados, remarcar al limpiador. Los comentarios se escriben en el gráfico, se imprimen en el registro, se escriben en el archivo, las alertas pitan y el cuadro de mensajes también pita, pero eso no es nativo.

Gracias, ¡lo has explicado muy bien!

Saludos, Vladimir.

 
Valeriy Yastremskiy:

Si las posiciones con nuestro Magik y en nuestro símbolo son cero, comprobamos el tiempo y abrimos una posición, si es 1, no abrimos una posición, comprobamos el tiempo de cierre y arrastramos, si es más de 1, alertamos y no trabajamos. Podemos usar piggyback o si queremos comprobarlo con iff.

¡Hola Valery! Muchas gracias, tu versión "... si las posiciones con nuestro magik y en nuestro símbolo son iguales a cero, comprobamos la hora y abrimos una posición..." resultó ser la más sencilla y efectiva. Lo he añadido a la condición de comprobar el tiempo && PositionTotal()==0 y ¡sólo se abre una posición con la cantidad necesaria!

   if(time_current.hour==time_open.hour && time_current.min==time_open.min && PositionsTotal()==0)
      OpenBUY();

Sinceramente, Vladimir.


 
Este es un artículo interesante
https://www.mql5.com/ru/articles/35

Exp. e indicador.
 
Aleksey Masterov:
Este es un artículo interesante
https://www.mql5.com/ru/articles/35

Exp e indicador.

Hola Alexey, gracias por el enlace al artículo. Sí, hay muchas cosas interesantes.

Saludos, Vladimir.

 
MrBrooklin:
if(time_current.hour==time_open.hour && time_current.min==time_open.min


esta no es la mejor manera de comparar el tiempo de espera para abrir una posición

en el probador todo funcionará siempre sin problemas, en la cuenta real pueden producirse errores - el asesor experto trabaja sobre la llegada de un tick, si por alguna razón el tick no llega exactamente en el minuto que lo está esperando, su algoritmo no funcionará correctamente y será muy difícil encontrar este error lógico más tarde


intente reformular este problema para dejar de lado la comparación de igualdad estricta ( == ) y pasar a la condición más o igual ( >= ) ....( y/o la condición menos o igual)

 
Igor Makanu:

esta no es la mejor manera de comparar el tiempo de espera para abrir una posición

en el probador todo funcionará siempre sin problemas, en la cuenta real pueden producirse errores - el asesor experto trabaja sobre la llegada de un tick, si por alguna razón el tick no llega exactamente en el minuto que lo está esperando, su algoritmo no funcionará correctamente y será muy difícil encontrar este error lógico más tarde

intente reformular el problema para pasar de la comparación de igualdad estricta ( == ) a una condición mayor o igual que ( >= ) ....( y/o condición menor que igual)

Hola Igor, gracias por el consejo. Estoy completamente de acuerdo con tu razonamiento, ya que las situaciones de las garrapatas pueden ser realmente diferentes. Haré una corrección en el código.

Saludos, Vladimir.

 

Corregido el código, tal y como recomienda Igor. ¡Muy buen y oportuno consejo! Ha eliminado un problema en el funcionamiento de EA, que no había notado antes. ¡Gracias de nuevo Igor!

Atentamente, Vladimir.

Razón de la queja: