Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Sí, leo las descripciones de las funciones hasta el final y, en caso de duda, también rebusco en los foros. La noción de rapidez de cada uno es diferente. La dinámica es más lenta por definición, porque hay una redistribución constante de la memoria. La segunda desventaja es la fragmentación - a veces te equivocas con la dinámica y entonces la memoria no es suficiente para cerrar el terminal :)))
El ping no tiene nada que ver, después de la primera descarga, los ticks se dan ya desde la base, en teoría, claro :) Me enseñaron que el programa debe ser acelerado por la optimización, pero no por la base de hardware - esto es automático. Y qué diferencia hay, cuál es la conexión - hoy es una, mañana otra - no depende del algoritmo.
Tengo mi propio corredor, por eso trabajo con ellos desde hace más de un año. Mi tarea es ahora dominar las matemáticas en los ticks, no el comercio o el trabajo por cuenta propia.
De nuevo, para los discapacitados visuales:
De la referencia
Функция CopyTicksRange() предназначена для запроса тиков из строго указанного диапазона, например, за конкретный день истории.
Desde
La función CopyTicksRange() está pensada para solicitar ticks de un rango estrictamente especificado, por ejemplo, para un día concreto del histórico.
La función CopyTicksRange() no obtiene los ticks del rango estrictamente especificado "2021.01.29 23:57:00:000, 2021.01.31 23:59:00:000". Devuelve ticks de un rango completamente diferente.
Proporcione las medidas para este reclamo. Le doy un papel importante a los problemas de rendimiento en los asesores de combate.
Aquí hay un código de muestra. Escribí a toda prisa, puede haber errores. Medidas para las siguientes opciones:
1) el más feo, cuando la matriz se expande según sea necesario
2) ligeramente optimizado - cuando se expande a la porción prevista
3) un poco más optimizado: se expande con un margen de varias porciones
4) memoria estática, que obviamente siempre será cero
Está claro que si asigna dinámicamente una gran cantidad de memoria para todo en el mundo, entonces la velocidad será estática, pero esto rara vez sucede
En las matrices que se expanden dinámicamente, lo peor es la fragmentación de la memoria, que la engullirá toda en el proceso. Bueno, el tiempo cada vez mayor para la próxima expansión, porque. en una memoria muy fragmentada, lleva más tiempo buscar una pieza adecuada
resultados en microsegundos. El fuerte aumento en el tiempo requerido en la primera columna hacia el final probablemente se deba al hecho de que el terminal probablemente asigna memoria para matrices en pequeños bloques, optimiza un poco para nosotros. Pero cuando la matriz se vuelve más grande que el bloque, comienza a buscar estúpidamente la primera pieza vacía adecuada. Giré mucho más, se vuelve muy largo allí ... varios segundos. Y solo había alrededor de 1,000,000 de células.
Aquí hay un código de muestra. Escribí a toda prisa, puede haber errores. Medidas para las siguientes opciones:
1) el más feo, cuando la matriz se expande según sea necesario
2) ligeramente optimizado - cuando se expande a la porción prevista
3) un poco más optimizado: se expande con un margen de varias porciones
4) memoria estática, que obviamente siempre será cero
Está claro que si asigna dinámicamente una gran cantidad de memoria para todo en el mundo, entonces la velocidad será estática, pero esto rara vez sucede
En las matrices que se expanden dinámicamente, lo peor es la fragmentación de la memoria, que la engullirá toda en el proceso. Bueno, el tiempo cada vez mayor para la próxima expansión, porque. en una memoria muy fragmentada, lleva más tiempo buscar una pieza adecuada
resultados en microsegundos. El fuerte aumento en el tiempo requerido en la primera columna hacia el final probablemente se deba al hecho de que el terminal probablemente asigna memoria para matrices en pequeños bloques, optimiza un poco para nosotros. Pero cuando la matriz se vuelve más grande que el bloque, comienza a buscar estúpidamente la primera pieza vacía adecuada. Giré mucho más, se vuelve muy largo allí ... varios segundos. Y solo había alrededor de 1,000,000 de células.
Y así es como lo consigo
La verdad corregida un poco
Y si inicializa matrices
entonces
¡se ha probado durante dos años!
¡Qué terquedad! Lee lo que escribieron arriba - CopyTicks falla igual. Si te gusta buscar maneras de hacer que una función con errores funcione o encontrar soluciones con errores, entonces no te molestes - no se trata de eso
En dos años podrías haber entendido que si una función no funciona como tú quieres y los desarrolladores lo saben y no lo arreglan, no se llama bug...
Pulgares arriba, programadores educados y geniales.........
INT_MAX = 2147483647
de hecho, ha arrebatado inmediatamente un trozo de memoria INT_MAX* sizeof(double) y luego trabaja como con static
podría haber escrito
double d[INT_MAX]; - será lo mismo para ti que
la única diferencia estará en el funcionamiento de la función ArraySize() mientras que la cantidad total de memoria se cagará de una vez
Lo he arreglado, estará en la beta hoy.
Muchas gracias. Voy a bombear de alegría :) la solución fue muy intensiva en recursos
Lo he arreglado, estará en la beta hoy.