Errores, fallos, preguntas - página 593

 

Decidí mirar una de mis antiguas promociones y... ¿Puede decirme qué significa este error?

---

La inicialización del Asesor Experto es exitosa. Cuando intento abrir el panel de información, me encuentro con una sorpresa. ¿Dónde buscar la razón? ))

 
tol64:

Decidí mirar una de mis antiguas promociones y... ¿Puede decirme qué significa este error?

---

La inicialización del Asesor Experto es exitosa. Cuando intento abrir el panel de información, me encuentro con una sorpresa. ¿Dónde buscar la razón? ))

Debemos localizar el problema. Yo estaba en una situación parecida, ponía Prints y mira por donde sale volando. Y entonces, o servicedesk o foro. O tal vez encuentre el error usted mismo.
 
Valmars:
Tenemos que localizar el problema. En una situación similar, pongo Prints y miro por dónde sale volando. Y luego a servicedesk o en el foro. O tal vez encuentre el error usted mismo.

Tendré que imprimir donde no lo he hecho. )) ¿No pueden los desarrolladores saber, a partir de este código de imagen, de dónde crecen las piernas? Necesitamos una pista. Aunque allí siempre se genera un nuevo código. He aquí otro ejemplo:

 
tol64:

Tendremos que imprimir donde no se haya dopado. )) ¿No pueden los desarrolladores saber, a partir de este código de imagen, de dónde crecen las piernas? Necesitamos una pista. Aunque allí siempre se genera un nuevo código. He aquí otro ejemplo:

En cualquier caso, los desarrolladores pedirán que se localice todo, que se cree una aplicación en la SD, que se adjunte un experto y que se describa todo con el mayor detalle posible.

Por eso son desarrolladores (los conoces) y los telépatas están descansando hoy. :)

 
Después de copiar un array dinámico some_ array_1 declarado como some_ array_1[], al que no se le asignó memoria, a un array dinámico some_ array_2[], al que se le asignó memoria utilizando ArrayResize(some_ array_2, some_ array_2_quantity), el operador ArrayCopy(some_ array_1, some_ array_2) descubre que el número de elementos de some_ array_1 no es 0, sino some_ array_2_quantity. Este es un error grave porque el array some_ array_1[] no tiene memoria asignada. Por favor, arregla esto para que el tamaño del array en esta situación no cambie por sí mismo y el compilador genere un error.
Документация по MQL5: Основы языка / Типы данных / Объект динамического массива
Документация по MQL5: Основы языка / Типы данных / Объект динамического массива
  • www.mql5.com
Основы языка / Типы данных / Объект динамического массива - Документация по MQL5
 
Interesting:
A los desarrolladores.

Después de cambiar a la nueva compilación (555), el terminal ha dejado de guardar la posición (estado de actividad correcto) para "Herramientas", "Observación del mercado", "Probador" y"Ventana de datos".

Después de cerrar el terminal y abrirlo de nuevo (no minimizado, sino cerrado) todo lo que está fuera del formulario principal desaparece. Según tengo entendido, el terminal piensa que por alguna razón el comerciante prescindió de estas cosas. Tengo que ir al menú y volver a activar todo (lo bueno es que al menos se recuerda la ubicación).

El "Navegador" se encuentra, como siempre, junto a los gráficos en la ventana principal del formulario, está bien.

El sistema operativo es Win XP32, Bild 555, tengo dos monitores. En una ventana principal (en la que se encuentra el navegador y los gráficos), y en la segunda todas las mencionadas anteriormente ("Herramientas", "Observación del mercado", "Comprobador" y "Ventana de datos").

PS

No puedo decir nada sobre x64 y otros sistemas operativos, no tengo la posibilidad de comprobarlo en dos monitores.

La misma mierda en el 7 en un monitor. Volver a instalarlo ayudó. También el terminal confunde las carpetas en Roaming para diferentes terminales después de la reinstalación.
 
-Alexey-:
Después de copiar un array dinámico some_ array_1 declarado como some_ array_1[], al que no se le asignó memoria, a un array dinámico some_ array_2[], al que se le asignó memoria con ArrayResize(some_ array_2, some_ array_2_quantity), utilizando el operador ArrayCopy(some_ array_1, some_ array_2) resulta que el número de elementos de some_ array_1 no es 0, sino some_ array_2_quantity. Este es un error grave porque el array some_ array_1[] no tiene memoria asignada. Por favor, arregla esto para que el tamaño del array no cambie por sí mismo en esta situación y el compilador genere un error.

No hay ningún error, la función ArrayCopy asignará la memoria del array dinámico por sí misma al tamaño de los datos que se están copiando.

Esto no es un error, sino una característica.

 
Urain:

No hay ningún error, la función ArrayCopy asigna la memoria del array receptor dinámico por sí misma.

Esto no es un error, sino una característica.

Debido a esta característica, es fácil cometer errores algorítmicos por accidente o porque el algoritmo es defectuoso. Y entonces nunca lo encontrarás y nunca sabrás cuando hay un error. Sólo he encontrado un error cuando he traducido un programa a C++ porque el compilador es un asistente de detección de errores allí. Así que creo que es más un error que una característica. ¡IMHO!
 
-Alexey-:
Debido a esta característica, es fácil cometer errores algorítmicos, ya sea por accidente o porque el algoritmo es defectuoso. Y entonces nunca se puede encontrar y nunca se sabe que hay errores. Sólo he encontrado un error cuando he traducido un programa a C++ porque el compilador es un asistente de detección de errores allí. Así que creo que es más un error que una característica. ¡IMHO!
ArrayCopy no es la única función que asigna memoria, todas las funciones Copy se encargan de los arrays en sí, así que ten cuidado y lee el manual.
 

¿Cómo es que TimeCurrent( ) es menor que el último valor de la serie temporal?

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {

   Print("time[rates_total-1] = ",time[rates_total-1]); 
   Print("TimeCurrent()         = ",TimeCurrent());  

   return(rates_total);
  }
TimeCurrent()         = 2011.12.09 18:47:29
time[rates_total-1]  = 2011.12.09 23:00:00
Razón de la queja: