Errores, fallos, preguntas - página 594

 
Interesting:

En cualquier caso, los desarrolladores pedirán que se localice todo, que se cree una solicitud al SR, que se adjunte un experto y que se describa todo con el mayor detalle posible.

Son los desarrolladores (ya los conoces) y los telepáticos están descansando hoy. :)

Está bien). Ahora lo localizaré).

La telepatía no tiene nada que ver. El caso es que dicho error lo tengo por primera vez, y me pareció que se da en algunos casos concretos, y al menos puedo avisar en el foro en qué casos puede ser, y luego yo mismo lo solucionaré.

Es decir, me gustaría saber, ¿violación de acceso de escritura (código 0x ) y violación de acceso de lectura (código 0x) en qué casos se produce? No he tocado este programa desde hace un mes. Esto significa que este problema puede haber comenzado a ocurrir después de alguna construcción. Quizá los desarrolladores hayan reforzado los controles y ahora tengan que escribir el código de forma más correcta. ¿Sólo dónde buscar un error en ~20 000 líneas de código? )))

 
tol64:

Está bien). Ahora lo localizaré).

La telepatía no tiene nada que ver. El caso es que este tipo de error lo tengo la primera vez, y he pensado que se da en algunos casos concretos, y al menos puedo sugerir en el foro, en qué casos puede ser, y luego ya me encargaré yo de solucionarlo.

Es decir, me gustaría saber, ¿violación de acceso de escritura (0xcode) y violación de acceso de lectura (0xcode) en qué casos se produce? No he tocado este programa desde hace un mes. Esto significa que este problema comenzó a ocurrir después de alguna construcción. Quizá los desarrolladores hayan reforzado los controles y ahora tengan que escribir el código de forma más correcta. ¿Sólo dónde buscar un error en ~20 000 líneas de código? )))

Intenta convertirlo en C y el error se encontrará solo. Y en general - con tales proyectos es la única manera de escribir, si no quieres problemas en el futuro. Por desgracia, yo también lo entendí demasiado tarde y ahora lo estoy reescribiendo :)
 

Señores, por favor, aconsejen cuál es una forma compacta (tal vez existan funciones) para identificar el valor más grande/pequeño de uno de los búferes existentes. No sólo identificar, sino también determinar cuál es el búfer con el mayor/menor valor.

Digamos que tenemos 4 buffers, entonces lo más sencillo que se nos ocurre es comparar primero el primero con los demás (como si(uno[0]<dos[0] && uno[0]<tres[0]&& ...etc.). Si es falso, entonces compara el segundo de la misma manera y así sucesivamente. Pero esto es un poco engorroso.

 
Cmu4:

Señores, por favor, aconsejen cuál es una forma compacta (tal vez existan funciones) para identificar el valor más grande/pequeño de uno de los búferes existentes. No sólo identificar, sino también determinar cuál es el búfer con el mayor/menor valor.

Supongamos que tenemos 4 buffers, entonces lo más sencillo que se nos ocurre es comparar primero el primero con los demás (como si(uno[0]<dos[0] && uno[0]<tres[0]&& ...etc.), luego comparar el segundo de la misma manera y así sucesivamente. Pero esto es un poco engorroso.

ArrayMinimum devuelve el índice del valor mínimo del array; lo mismo ocurre con ArrayMaximum.

Si quieres comparar varios buffers, puedes obtener los valores extremos y luego compararlos usando if o fmin, fmax.

 
Cmu4:
¿Crees que este método requiere menos recursos que la simple fuerza bruta que escribí arriba?

De ninguna manera,

aunque no, si las matrices a buscar son de 3-4 barras y las matrices son de 2-3, será más rápido.

 
Urain:

ArrayMinimum devuelve el índice del valor mínimo del array, y ArrayMaximum funciona de forma similar.

Si quieres comparar varios búferes, puedes obtener valores extremos y luego compararlos usando if o fmin, fmax.

Acabo de leer las descripciones de las funciones...

ArrayMinimum es otro ejemplo, ya que necesito comparar el valor de la barra 0 y no necesito buscar en el historial del array.

fmin sólo compara dos buffers, ¿qué sentido tiene? También puedo usar el estándar si. Pero entonces tienes un montón de condiciones... 4 complejos para el mínimo y el mismo número para el máximo...

 
Cmu4:

Ahora que he leído la descripción de la función...

ArrayMinimum es de otra dirección - ya que necesito comparar el valor de la barra 0, y no necesito la búsqueda de la historia del array.

fmin sólo compara dos buffers, ¿qué sentido tiene? También puedo usar el estándar si. Pero entonces tienes un montón de condiciones... 4 complejos para el mínimo y el mismo número para el máximo...

fmin no está comparando buffers, está comparando dos valores.

Ahora tu tarea está clara, necesitas encontrar un extremo entre los valores paralelos de los diferentes buffers.

Ahora responda, ¿necesita esto sólo para los valores cero ? o necesita repetir esta acción para muchos valores paralelos ?

 
Urain:

fmin no está comparando buffers sino dos valores.

Ahora tu tarea está clara, tienes que encontrar el extremo entre los valores paralelos de los diferentes buffers.

Ahora responda ¿necesita esto sólo para los valores cero? o ¿es necesario repetir esta acción para muchos valores paralelos?

Es necesario para un Asesor Experto que opere desde el mercado. Por lo tanto, tenemos que comparar los valores de todos los búferes en la barra actual.

Aquí hay una captura de pantalla del indicador, en la barra cero de la que hay que encontrar el buffer máximo y mínimo:

 
Cmu4:

Esto es necesario para un EA que opera desde el mercado. En consecuencia, se deben comparar los valores de todos los búferes de la barra actual.

Aquí hay una captura de pantalla del indicador, en la barra cero de la que hay que encontrar el buffer máximo y mínimo:

Es más fácil entonces, asignar en orden todos los valores cero de los buffers en un array (incluso se puede definir estáticamente, porque el número de buffers se conoce de antemano) y aplicar las funciones ArrayMinimum ArrayMaximum a este array resumen, el resultado será el número de serie del buffer en el orden de asignación.
 
Urain:
Entonces es sencillo, asigna en orden todos los valores nulos de los buffers en un array (incluso puedes establecerlo estáticamente ya que el número de buffers se conoce de antemano) y aplica las funciones ArrayMinimum ArrayMaximum a este array resumen, el resultado será el número de buffers en orden de asignación.
Gracias, lo haré. :)
Razón de la queja: