Deseos para MT5 - página 39

 
sergey1294:

Escribí este código para detectar esta situación, pero en el probador se niega rotundamente a funcionar, mientras que en una cuenta de demostración funciona bien

Déjame que no te crea. Su función siempre devolverá true. Puedes comprobarlo, fórmalo como un script y ejecútalo ahora mismo (en fin de semana) en cualquier instrumento, obtendrás true.

Para que funcione como quieres, debes sustituir TimeCurrent() por TimeTradeServer(). Entonces también funcionará en el probador.

Pero aún así no se resuelve el problema de un mercado cerrado, ya que también hay días festivos. Por ejemplo, la primera semana termina a las 22:00, la segunda semana a las 23:00, mientras que las especificaciones especifican el final de la negociación a las 24:00.

 
Valmars:

Déjame que no te crea. Su función siempre devolverá true. Puedes comprobarlo, hazlo como un script y ejecútalo ahora mismo (en fin de semana) en cualquier instrumento, devolverá true.

Para que funcione como quieres, debes sustituir TimeCurrent() por TimeTradeServer(). Entonces también funcionará en el probador.

Pero aún así no se resuelve el problema de un mercado cerrado, ya que también hay días festivos. Por ejemplo, la primera semana termina a las 22:00, la segunda a las 23:00 y la especificación contiene el final de la negociación a las 24:00.

Estoy de acuerdo contigo en que el ejemplo completamente dado no resuelve el problema del mercado cerrado. Por supuesto, quiero tener una propiedad estándar para el símbolo de un mercado cerrado para facilitar la escritura de cheques en esta dirección. Espero que los desarrolladores añadan esta función.
 

Me gustaría poder ejecutar varios temporizadores en un Asesor Experto.

Mejorar EventSetTimer() para que además de la frecuencia haya un nombre de temporizador, y OnTimer() tenga un parámetro de nombre de temporizador.

De este modo, sería posible llamar a varios OnTimer().

 
Urain:

Me gustaría poder ejecutar varios temporizadores en un Asesor Experto.

Me gustaría mejorar EventSetTimer() para que además de la frecuencia estuviera el nombre del temporizador, y que OnTimer() tuviera el nombre del temporizador como parámetro.

De este modo, sería posible llamar a varios OnTimer().


Esto es una tontería. Establezca el temporizador para 1 segundo y después de los intervalos que necesite desde el OnTimer distribuya los eventos personalizados usando la función EventChartCustom.

Документация по MQL5: Работа с событиями / EventChartCustom
Документация по MQL5: Работа с событиями / EventChartCustom
  • www.mql5.com
Работа с событиями / EventChartCustom - Документация по MQL5
 
stringo:

Esto es una tontería. Establezca el temporizador a 1 segundo y desde el OnTimer entregue los eventos personalizados a los intervalos que desee, utilizando la función EventChartCustom

Hmmm, gracias por el consejo.
 
stringo:

Esto es una tontería. Establezca el temporizador en 1 segundo y distribuya los eventos personalizados del OnTimer en los intervalos de tiempo que desee utilizando la función EventChartCustom

No, un OnTimer() será procesado por un hilo y varios hilos por varios,

Puedes meter cualquier cálculo largo y ponerlo en paralelo.

 
Urain:

No, un OnTimer() será manejado por un hilo y varios hilos,

Puedes meter cualquier cálculo largo en él y seguir paralelizándolo.

No funcionará. El Asesor Experto girará en un mismo hilo recogiendo eventos de la cola. A diferencia de lo que ocurría en Fours, donde cada vez que se creaba un hilo, se ejecutaba un inicio y luego se mataba el hilo.

Paralizar los cálculos entre diferentes EAs.

 

Por ejemplo, hay dos eventos independientes, uno cuenta durante 10 segundos y el otro durante 15 segundos.

¿Qué debe esperar un evento para que el otro cuente?

Por supuesto, se puede poner todo en el indicador, pero el indicador no funciona con un temporizador,

Si se introdujera un indicador con temporizador, la cuestión quedaría resuelta.

Tengo una idea que permite elegir si usar OnTick o OnTimer en un indicador.

 
Urain:

Por supuesto, se podría poner todo en el indicador, pero el indicador no funciona con el temporizador,

Si pudieras hacer que el indicador funcionara con un temporizador, eso resolvería el problema.

Sólo hazlo. Pruébalo.
 
Urain:

Por ejemplo, hay dos eventos independientes, uno cuenta durante 10 segundos y el otro durante 15 segundos.

¿Qué quieres que espere un evento para que cuente el otro?


En realidad, la sincronización no se ha cancelado. Si haces el trabajo, envías el mensaje: "Ya está hecho".