Errores, fallos, preguntas - página 2280

 
void f( int = 0, ) {}

¿Es correcto que se compila sin errores?

 
Ilyas:

Se ha encontrado con una función de memoria en Windows

Justo después de ArrayResize añade

Esto iniciará la asignación real de la memoria física para que esto no ocurra durante la prueba.


Estos son los resultados de mi ordenador

Sí, efectivamente, funciona.
Gracias.
Muy interesante. Sin embargo, no está claro.
Debería saber que para trabajar rápidamente con la memoria después de ArrayResize necesita hacer una inicialización completa del array con ArrayInitialize o ArrayFill (funciona de ambas maneras). ArrayInitialize es más simple.

Intenté inicializar cada uno de los 4096 elementos del array. Pero no afecta a la mejora del rendimiento de ArrayFill.

for (int i=0;i<size;i+=4096) arr[i]=0;
 
Nikolai Semko:

Para un manejo rápido de la memoria después de ArrayResize se debe hacer una inicialización completa del array con ArrayInitialize o ArrayFill (funciona en ambos sentidos). Con ArrayInitialize es más fácil.

Debe haber llegado a una conclusión errónea. En cualquier caso, todo funciona rápido. Es que en la variante "lenta" se estaba midiendo además de llenar también la asignación de memoria real, porque ArrayResize es una intención de asignar memoria, no la asignación en sí.

 
fxsaber:

Has sacado una conclusión equivocada. Todo funciona rápido tal y como está. Es que en la versión "lenta" estabas midiendo la asignación de memoria real además del llenado, porque ArrayResize es una intención de asignar memoria, no la asignación en sí.

Sí, tienes razón.

Gracias.
Y también me equivoqué, cuando dije que el enlace ArrayInitialize + ArrayCopy funcionaba más rápido, porque llenaba el array con los mismos valores que había llenado antes con ArrayFill. El compilador es inteligente y no hace el mismo trabajo dos veces.
Si llenamos la matriz con otros valores, el resultado será diferente:

2018.09.06 12:10:36.602 TestArrayFill (EURUSD,H1)       Время заполнения через ArrayFill первая попытка= 299
2018.09.06 12:10:36.602 TestArrayFill (EURUSD,H1)       Время заполнения через ArrayInitialize + ArrayCopy = 425
2018.09.06 12:10:36.602 TestArrayFill (EURUSD,H1)       Время заполнения через ArrayFill вторая попытка = 78

Así que metí la pata. Lo siento.
Sigamos utilizando ArrayFill en orden de trabajo.

Archivos adjuntos:
 

¿Por qué ha cambiado mi país de residencia en mi perfil?
En los últimos tres años ha sido Canadá. No lo he cambiado. Y ahora no puedo cambiarlo.

Es decir, el país de residencia inicial en el momento del registro es para siempre. ¿Incluso si no vive en Rusia y se ha convertido en residente o ciudadano de otro país?

 
Díganme si van a abordar este problema o no.

Foro sobre trading, sistemas de trading automatizados y pruebas de estrategias de trading

Bichos, errores, preguntas

fxsaber, 2018.09.06 09:31

¿Por qué ocurre esto a veces? El probador no cierra las posiciones en el último tick, sino en el penúltimo. La situación es en algunos símbolos personalizados.

Si se necesita una repetición, listo para proporcionar.


¿Por qué es importante? En los símbolos personalizados con ejecución en bolsa, los mercados se ejecutan al Último Precio. En el caso de los símbolos personalizados, el historial de ticks es de oferta y demanda, sin la última. Por lo tanto, en tales símbolos, el probador cierra las posiciones actuales en el último tick por el último cero. La solución es forzar last = (bid + ask) / 2 en el último tick. Sin embargo, hay situaciones en las que el Probador, por alguna razón, cierra todo no en el último, sino en el penúltimo tick, donde último es cero. Como resultado, tenemos el siguiente gráfico


Miras los resultados de la optimización y ves una gran cantidad de ganancias/pérdidas. No te darás cuenta de que es un error hasta que ejecutes una sola prueba y mires el final del historial de operaciones.

 
Nikolai Semko:

¿Por qué ha cambiado mi país de residencia en mi perfil?
En los últimos tres años ha sido Canadá. No lo he cambiado. Y ahora no puedo cambiarlo.

Es decir, el país de residencia inicial en el momento del registro es para siempre. ¿Incluso si no vive en Rusia y se ha convertido en residente o ciudadano de otro país?

Usted está registrado como vendedor de Rusia. Si desea realizar cambios en los datos de registro del vendedor, bienvenido sea

 
 
fxsaber:
¿Me pueden decir si van a tratar este problema o no?
Lo investigaremos.
 
Marsel:

Usted está registrado como vendedor de Rusia. Si desea realizar cambios en los datos de registro del vendedor, bienvenido sea

¿Dime dónde se esconden estos ajustes? No los encuentro. Tampoco existe esa opción en la SD.
Razón de la queja: