Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 563

 
Roman Sharanov:

y obtener los datos de los indicadores, el gráfico...

Todo es posible. Pero para ello es necesario dominar al menos las dos lenguas.

 
Artyom Trishkin:

Todo es posible. Pero para ello es necesario dominar al menos las dos lenguas.

Tengo

 
Roman Sharanov:

Tengo

Entonces no deberías tener problemas para escribir código multiplataforma.

 

Situación graciosa

Una línea de código, a veces causa el error de abajo.

¿En qué condiciones puede producirse este error?


   ChartTimePriceToXY(0,0,Time[0],price,x1,y_cord);


2018.06.08 13:41:39.021    program name XAUUSDcheck,H1: array out of range in 'DrawInterfaceLib.mqh' (47,31)


 
Sergey Likho:

Situación graciosa

Una línea de código, a veces causa el error de abajo.

¿En qué condiciones puede producirse este error?


Fuera del alcance de un array. El índice que se pasa a la matriz es mayor que el tamaño máximo de la matriz (si la matriz es 10, entonces el índice máximo de dicha matriz = 9, porque su primer elemento tiene un índice de 0), o menor que cero. O bien la matriz tiene un tamaño de cero.

 
Artyom Trishkin:

Fuera del alcance de la matriz. El índice que se pasa a la matriz es mayor que el tamaño máximo de la matriz (si la matriz tiene un tamaño de 10, el índice máximo de dicha matriz = 9, porque su primer elemento tiene el índice 0), o menor que cero. O bien la matriz tiene un tamaño de cero.

Gracias, por supuesto, lo sé.

¿En qué condiciones puede producirse este error al acceder a la matrizTime[0]?

¿Así que la matriz es cero? ¿Y cómo puede ser este el caso de las series temporales?

 
Sergey Likho:

Situación graciosa

Una línea de código, a veces causa el error de abajo.

¿En qué condiciones puede producirse este error?

Antiguo error de MT4 (la matriz de tiempo parece tener un tamaño cero). Hace unos dos años, apareció constantemente en uno de mis clientes. Pero parece que es irreal reproducir este fallo. El Servicio de Atención al Cliente reconoce el problema pero no puede solucionarlo. Desde entonces nunca uso el acceso directo a las series de tiempo, sólo a través de iTime, iOpen, etc.

 
Ihor Herasko:

Antiguo error de MT4 (la matriz de tiempo parece tener un tamaño cero). Hace unos dos años, siguió apareciendo en uno de mis clientes. Pero resultó ser irreal reproducir este fallo. El Servicio de Atención al Cliente reconoce el problema pero no puede solucionarlo. Desde entonces nunca uso el acceso directo a las series de tiempo, sólo a través de wrappers: iTime, iOpen, etc.

Sí, eso es lo que acabé haciendo, sustituido por iTime. Gracias.

 

Hola. Fuera de los límites, ¿cómo solucionarlo?

 if(TimeFrame>Period()) 
     {
      ArrayCopySeries(santa1,5,Symbol(),TimeFrame);
      summ=CountBars+TimeFrame/Period();
      shift=0;
      for(int iy=0; shift<summ; shift++) 
        {
         if(Time[shift]<santa1[iy]) iy++;//вот эта строка "array out of range" 
         list[shift]=bufbuy[iy];
        }
     }
 
PolarSeaman:

Hola. Fuera de los límites, ¿cómo solucionarlo?

Los valores de las variables shift e iy en el código anterior no se comprueban para ver si salen de las matrices Time y santa1. Por lo tanto, tiene sentido. Compruebe sus valores antes de utilizarlos, el error desaparecerá.

Y para ser más específico, necesitas saber cómo se generan las variables CountBars y TimeFrame.

Razón de la queja: