Errores, fallos, preguntas - página 2940

 
Slava Botalov:

Lástima, tendremos que cambiar a otro. ¿Alguna sugerencia?

Todas las sugerencias están en Google. Cualquier discusión sobre terceros está prohibida aquí.

 
Vladimir Karputov:

Todas las sugerencias están en Google. Cualquier discusión sobre terceros está prohibida aquí.

Lo tengo. GRACIAS por ayudarme con mi pregunta

 
x572intraday:

Esa no es la cuestión. La pregunta es: ¿dónde puede ser útil, especialmente para los comerciantes, no para los programadores? No he visto esos números en el terminal, ni en la escala de precios, ni en la ventana de colocación de pedidos, todo es igual en todas partes (en algún lugar cinco dígitos, en otro).

No es una cuestión de dónde puede ser útil. Se trata de saber cómo se representan los números en los ordenadores, sabiendo que no existe el número 0,72352 para los ordenadores, sino sólo el 0,7235200000000001 que se puede imprimir a 5 dígitos y para ello existe la función DoubleToString.
 

No se pueden copiar los datos:

MqlRates mql_rates[];
bar_kol = Bars("EURUSD", _Period);
copy_rates = CopyRates("EURUSD", _Period, bar_kol, 100, mql_rates);

bar_kol se convierte en 6105 y copy_rates en -1 (error) al intentar copiar los datos de 6105 bar a +100 bar.

El registro muestra lo siguiente:

EURUSD: historial sincronizado desde 2007.01.02 hasta 2020.06.30

EURUSD,H1: la caché del historial está asignada a 74955 barras y contiene 6105 barras desde 2008.01.02 10:00 hasta 2008.12.31 17:00

EURUSD,H1: la historia comienza a partir de 2008.01.02 10:00

El historial se almacena en caché en 74955 barras, pero 2008 contiene las mismas 6105 barras. Es decir, un máximo de barras de copias durante un año. No es posible copiar más de 6105 compases. Las barras máximas en la ventana son 100000, todo el historial es visible en el gráfico, puedes desplazarte por él, todas las barras están presentes y todo está cargado. Literalmente, el array mql_rates no se copia.

 

Depuración, no datos reales. Al colgarse en una línea, al pulsar F11 o F10 repetidamente no hace que la depuración continúe. El puntero se queda en una línea y sólo parpadea la pantalla.

Construye 2715. Win10, 20H2 build 19042.746.


este es el estado de la memoria

 
Ilyas:

Dígame, ¿cuál es el peligro potencial de ZeroMemory de que se produzca un error en esta situación?

struct A
{
private:
  int i;
};

void OnStart()
{
  A a[1];
  
  ZeroMemory(a); // not allowed for objects with protected members or inheritance
}
 
Aleksey Mavrin:

Depuración, no datos reales. Al colgarse en una línea, al pulsar F11 o F10 repetidamente no hace que la depuración continúe. El puntero se queda en una línea y sólo parpadea la pantalla.

Construye 2715. Win10, 20H2 build 19042.746.


este es el estado de la memoria

Actualice a la última beta 2747 por favor.

Estamos cambiando muchas cosas en el depurador.

 
fxsaber:

Dígame, ¿cuál es el peligro potencial de ZeroMemory, que se produzca un error en esta situación?

private/protected y const (en la mayor parte) son puramente para los programadores, el compilador sólo ayuda a adherirse a las restricciones impuestas al código

Un ejemplo clásico:
Utilizas la biblioteca de otra persona, bajo el capó hay código pesado con enlaces que cambios no autorizados provocarían un fallo, por lo que el creador de la biblioteca oculta parte del objeto en privado para prohibir cambios no planificados.

 
Ilyas:

private/protected y const (en su mayor parte) son sólo para los programadores, el compilador sólo ayuda a adherirse a las restricciones impuestas al código.

Un ejemplo clásico:
Utilizas la biblioteca de otra persona, bajo el capó hay código pesado con enlaces que cambios no autorizados provocarían un fallo, por lo que el creador de la biblioteca oculta parte del objeto en privado para prohibir cambios no planificados.

Entendido, ¡gracias por la explicación detallada!

 

Parece que el campo real_volume de la estructura MqlRates, aunque tiene un tipo largo, no es capaz de almacenar valores en el rango de todos los valores largos (según la documentación - 0x7FFFFFFFFFFFFF). Por ejemplo, 0x4000000000000000A8 se escribirá en el campo 0xA8. Me refiero a los personajes personalizados.

¿Se especifica en algún lugar el rango real de valores válidos? Básicamente, no hay ninguna razón por la que no debería funcionar como un largo normal - parece un error.

PS. para tick_volume probablemente el mismo problema