Errores, fallos, preguntas - página 2933

 
x572intraday:

Después de todo, el error se ha detectado, citando la referencia:

Impreso en el Journal - lo tengo:

¿Qué hago ahora con él, a dónde voy? ¿Soy una mala mano o...?

¿Estás seguro de que se supone que es una tarea

ArraySize(Arr)=0

¿y no una comparación?

ArraySize(Arr)==0
 
Vitaly Muzichenko:

Seguramente debería ser una tarea

¿y no una comparación?

Así que esto no es el código del programa, sino el resultado de la impresión en el registro de la terminal. Y aquí está el código en sí:

   int c=CopyTime(_Symbol,tf,0,1,Arr);
   if(c<1)
   {
      Print("ArraySize(Arr)=",ArraySize(Arr),
            "; copied=",c,
            "; TF=",EnumToString((ENUM_TIMEFRAMES)tf)
            //"; Arr[0]=",Arr[0]
           );
      Print("Error Code = ",GetLastError());
      ResetLastError();
      return;
   }
Así que no soy yo quien se perdió el rango de la matriz, pero la historia sufrida no es de alguna manera siempre supuestamente cargado. Siempre he pensado que el historial se carga por la izquierda y que puede faltar cuando no está totalmente cargado. Pero no hay suficiente historia en el lado derecho (barras nuevas) - ¡esto es un sinsentido para mí! Además, tengo ArraySetAsSeries=false, por si importa.
Документация по MQL5: Общие функции / Print
Документация по MQL5: Общие функции / Print
  • www.mql5.com
Print - Общие функции - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
x572intraday:

Así que esto no es el código del programa, sino el resultado de la impresión en el registro de la terminal. Y aquí está el código en sí:

Así que no soy yo quien se perdió el rango de la matriz, pero la historia sufrida no es de alguna manera siempre supuestamente cargado. Siempre he pensado que el historial se carga en el lado izquierdo y puede no ser suficiente cuando no está totalmente cargado. Pero no hay suficiente historia en el lado derecho (barras nuevas) - ¡esto es un sinsentido para mí! Además tengo ArraySetAsSeries=false.

¿Lee una matriz vacía sin nada en ella?

ArraySize(Arr)

Prueba esto

Print("ArraySize(Arr)=",Arr[0],
 
Vitaly Muzichenko:

¿Lee una matriz vacía sin nada en ella?

Prueba esto

Tengo la cadena de salidaArr[0] específicamente comentada (ver arriba), porque cuando trato de darle salida al Diario no llega al mensaje de error 4401, sino que termina dando un error de "matriz fuera de rango".

...me fumaréhttps://www.mql5.com/ru/docs/series/timeseries_access por ahora, pero inflar mi código con este código es espeluznante...
Документация по MQL5: Константы, перечисления и структуры / Коды ошибок и предупреждений / Ошибки компиляции
Документация по MQL5: Константы, перечисления и структуры / Коды ошибок и предупреждений / Ошибки компиляции
  • www.mql5.com
Ошибки компиляции - Коды ошибок и предупреждений - Константы, перечисления и структуры - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
x572intraday:

Mi cadena de salidaArr[0] está especialmente comentada (ver más arriba), porque cuando intento enviarla a Journal no llega al mensaje de error 4401, sino que termina con el error "array out of range".

 
Vitaly Muzichenko:

Sí, el array resulta estar vacío, es decir, no se copian nuevas barras en él.

 
x572intraday:

Sí, el array resulta estar vacío, es decir, no se copian nuevas barras en él.

Este es el caso de la primera consulta

 
Vitaly Muzichenko:

Ocurre a la primera solicitud

La locura es quehttps://www.mql5.com/ru/docs/series/timeseries_access menciona Sleep() en el artículo sobre la carga del historial en el código. Pero la ayuda para Sleep() dice: "La función Sleep() no puede ser llamada desde los indicadores personalizados, porque los indicadores se ejecutan en el hilo de la interfaz y no debería ralentizarlo". Resulta que necesito cargar el historial en un indicador.

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

La locura es quehttps://www.mql5.com/ru/docs/series/timeseries_access menciona Sleep() en el artículo sobre la carga del historial en el código, pero la ayuda para Sleep() dice: "La función Sleep() no puede ser llamada desde los indicadores personalizados, porque los indicadores se ejecutan en el hilo de la interfaz y no debe ralentizarlo". Resulta que necesito cargar el historial en el indicador.

Bien, haz una salida si los datos no se copian

int c=CopyTime(_Symbol,tf,0,1,Arr);
if(c<1) return;

En el siguiente tick todo se copiará y el código funcionará correctamente

 

Hola, estoy probando mi robot, al terminar de probarlo he visto muchos campos con requotes en el Log, ¿qué significan estas pilas de mensajes y qué puedo añadir al código para evitar que aparezcan? Gracias, ¡feliz año nuevo!

Archivos adjuntos:
1.jpg  412 kb