Errores, fallos, preguntas - página 3034

 

Hoy ha aparecido un error en las páginas de empleos autónomos:

Navegador Chrome. ¿Qué tiene esto que ver?

 
Aleksey Vyazmikin:

¿Estoy en lo cierto al entender que si un EA que trabaja en M1 utiliza un indicador en M1 (o en cualquier otro TF?), que toma datos del TF superior, entonces en el primer tick de una nueva barra no podrá devolver el valor real en ningún caso, porque tardará n ticks antes de que se calcule el TF superior?


En realidad, OnTick no está sincronizado con OnCalculate por el mismo símbolo. Teóricamente, OnTick puede llegar tarde y para su inicio se calcularán todos los índices de todos los TFs?

 
Slava:

De la otra franja horaria se tomarán los datos que estén listos en ese momento. Es decir, en la salida todos los datos estarán perfectamente sincronizados.

¿Por qué entonces el indicador no puede recibirlos a la primera?

¿Cómo puedo hacer un indicador normal multi-TF (e idealmente - multicaracteres) sin usar un temporizador?

 
Andrey Khatimlianskii:

¿Por qué entonces el indicador no puede recuperarlos en la primera petición?

¿Cómo se hace un indicador normal de varios caracteres (e idealmente de varios caracteres) sin utilizar un temporizador?

+

Me preocupa que los retrasos en la recepción de la señal por parte del EA sean inevitables con la arquitectura actual, por desgracia

 
Hola

Aparece un error durante la optimización utilizando Mql Cloud:

2021.05.31 18:24:57.348 MQL5 Cloud Europe pass 34 probado con error "critical runtime error 0 in OnInit function (error code 0, module Experts\Advisors\3 expert.ex5, file 65535, line 1, col 1)" en 0:00:00.001 (PR 274)


Por favor, indíqueme cuál puede ser el problema.

Cuando se optimiza sin Mql Cloud, todo funciona. El problema comenzó el 29 de mayo. Antes de eso, todo estaba bien.

Archivos adjuntos:
 
Marat Bayburin:
Hola

Aparece un error durante la optimización utilizando Mql Cloud:

2021.05.31 18:24:57.348 MQL5 Cloud Europe pass 34 probado con error "critical runtime error 0 in OnInit function (error code 0, module Experts\Advisors\3 expert.ex5, file 65535, line 1, col 1)" en 0:00:00.001 (PR 274)


Por favor, indíqueme cuál puede ser el problema.

Cuando se optimiza sin Mql Cloud, todo funciona. El problema comenzó el 29.05. Antes de eso todo estaba bien.

Creo que el problema está en la compilación del compilador. Tengo los mismos errores.
Es decir, compilamos con la nueva compilación y los agentes siguen con la antigua, .... Así.
 
Marat Baiburin:
¿Así que sólo hay que esperar a que los agentes se actualicen?

Si se trata de errores debidos a diferentes builds de los agentes y de su PC de escritorio, entonces sí, espere. Mis agentes, por ejemplo, siguen siendo 2949, no se han actualizado a 2950.

 
Andrey Khatimlianskii:

¿Por qué entonces el indicador no puede recuperarlos en la primera petición?

¿Cómo hacer un indicador normal multi-TF (e idealmente multi-caracteres) sin usar un temporizador?

En la primera solicitud, el indicador puede no recibir los datos de su símbolo, sino de otro marco temporal sólo por una razón - la serie temporal deseada no ha sido construida o ya ha sido destruida después de algún tiempo, cuando no había solicitudes.

Después de una solicitud fallida, sólo tiene que enviar un comando a su gráfico para actualizarlo y terminar OnCalculate inmediatamente. Está garantizado que OnCalculate será llamado y las series de tiempo estarán listas en ese momento

Документация по MQL5: Операции с графиками / ChartSetSymbolPeriod
Документация по MQL5: Операции с графиками / ChartSetSymbolPeriod
  • www.mql5.com
ChartSetSymbolPeriod - Операции с графиками - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Slava:

En la primera solicitud, el indicador puede no recibir datos de su símbolo, sino de otro marco temporal, sólo por una razón: la serie temporal requerida aún no ha sido construida o ya ha sido destruida después de algún tiempo, cuando no había solicitudes.

Después de una solicitud fallida, sólo tiene que enviar un comando a su gráfico para actualizarlo y terminar OnCalculate inmediatamente.
Está garantizado que OnCalculate será llamado y está garantizado que las series de tiempo necesarias estarán preparadas para este momento.


En la primera llamada al indicador, el cálculo se realiza en bucle a través de todos los datos.

//Расчёт количества просчитываемых баров
int limit = rates_total-prev_calculated;
   
//Если первый запуск
if(limit > 1)
{
   //какая нибудь инициализация
   
}

//================================================================
for(int i=limit; i>=0 && !IsStopped(); i--)
{
   ...  

Si en este bucle hubiera una petición fallida, ¿qué debería devolverse a cambio?
Límite+1 en el que no tuvo éxito?
¿O qué? No entiendo este punto.

 
Roman:


Me puedes decir si la primera llamada al indicador, por ejemplo el cálculo se ejecuta en un bucle sobre todos los datos.

Y si hubiera una solicitud fallida en este bucle, ¿qué debería devolverse a cambio?
Límite+1 en el que no tuvo éxito?
¿O qué? No entiendo este punto.

¿No puedes comprobarlo tú mismo?