Discusión sobre el artículo "¿Dormir, o no dormir?"

 

Artículo publicado ¿Dormir, o no dormir?:

Se propone un uso alternativo de la función Sleep() en la realización de las pausas entre las acciones del AE. El método del que se habla aquí permite un uso inteligente del tiempo de máquina.

Para realizar pausas, MQL4 tiene una función que se llama Sleep(), que coge como parámetro el valor del intervalo de tiempo expresado en la cantidad de milisegundos. La función Sleep() detiene la ejecución del código del programa y permite que continúe sólo después de que haya pasado el intervalo de tiempo establecido.

En mi opinión, el uso de esta función tiene dos inconvenientes. Primero, el tiempo de máquina se utiliza de forma poco viable: durante la pausa de las acciones de un tipo, el programa podría realizar las acciones de otro tipo, independientemente de la anterior (por ejemplo, durante una pausa en trades, el programa podría realizar algunos cálculos, control de los ticks que llegan, etc.). Segundo, que es el más esencial, la función Sleep() no se puede llamar desde los indicadores personalizados (ver Documentación). ¡El lenguaje de programación debe utilizarse para programar!

Vamos a considerar cómo se realiza una pausa de diez segundos en un programa MQL4. A continuación se muestra un ejemplo de la función Sleep().

if ( /* condition that requires to hold a pause */ )
   Sleep(10000); // sleep for 10 seconds

// program block to be executed upon the expiry of the pause
// ...

Autor: Sergey Gridnev

Razón de la queja: