¿Cómo puedo cambiar la estructura de la variable global en el indicador al pasar a otro marco temporal? - página 7

 

fxsaber
:

El resultado de trabajar con SIZE = 1000 de mi código(archivo StructArr.mqh - ligeramente modificado. Tiré cosas innecesarias):

2021.07.11 08:13:06.839 TestVar (EURUSD,M5)     Сохранение данных - 30 микросекунд
2021.07.11 08:13:06.839 TestVar (EURUSD,M5)     Время T[] -> uint[] - 23 микросекунд
2021.07.11 08:13:17.276 TestVar (EURUSD,M6)     Востановление данных - 272 микросекунд
2021.07.11 08:13:17.276 TestVar (EURUSD,M6)     Время uint[] -> T[] - 22 микросекунд
2021.07.11 08:13:20.448 TestVar (EURUSD,M10)    Востановление данных - 488 микросекунд
2021.07.11 08:13:20.448 TestVar (EURUSD,M10)    Время uint[] -> T[] - 30 микросекунд
2021.07.11 08:13:23.431 TestVar (EURUSD,M12)    Востановление данных - 1355 микросекунд
2021.07.11 08:13:23.431 TestVar (EURUSD,M12)    Время uint[] -> T[] - 44 микросекунд
2021.07.11 08:13:27.729 TestVar (EURUSD,M20)    Востановление данных - 350 микросекунд
2021.07.11 08:13:27.729 TestVar (EURUSD,M20)    Время uint[] -> T[] - 22 микросекунд

El mismo resultado con su biblia (archivo StructArrFx.mqh)

2021.07.11 08:20:52.663 TestVar (EURUSD,M5)     Сохранение данных - 60 микросекунд
2021.07.11 08:20:52.663 TestVar (EURUSD,M5)     Время T[] -> uint[] - 50 микросекунд
2021.07.11 08:21:01.888 TestVar (EURUSD,M6)     Востановление данных - 319 микросекунд
2021.07.11 08:21:01.888 TestVar (EURUSD,M6)     Время uint[] -> T[] - 7 микросекунд
2021.07.11 08:21:04.395 TestVar (EURUSD,M10)    Востановление данных - 615 микросекунд
2021.07.11 08:21:04.395 TestVar (EURUSD,M10)    Время uint[] -> T[] - 7 микросекунд
2021.07.11 08:21:07.774 TestVar (EURUSD,M12)    Востановление данных - 1410 микросекунд
2021.07.11 08:21:07.774 TestVar (EURUSD,M12)    Время uint[] -> T[] - 10 микросекунд
2021.07.11 08:21:10.292 TestVar (EURUSD,M15)    Востановление данных - 460 микросекунд
2021.07.11 08:21:10.292 TestVar (EURUSD,M15)    Время uint[] -> T[] - 6 микросекунд
2021.07.11 08:21:13.600 TestVar (EURUSD,M20)    Востановление данных - 692 микросекунд
2021.07.11 08:21:13.600 TestVar (EURUSD,M20)    Время uint[] -> T[] - 6 микросекунд


Victoria para ti :))
Tendré que indagar en tu código :(
Buen trabajo. Gracias.

Archivos adjuntos:
 
fxsaber:

Un medidor de este tipo.

Sí, entiendo su secreto.
Me quedé perplejo. Veo que parece que usas un array dinámico dentro de la unión.
Entonces me di cuenta de cómo hiciste realmente un array pseudo-dinámico usando un bucle.
Genial, sobre todo tu estilo criptográfico "estoy girando, estoy jodiendo" :))
La ganancia se nota especialmente en matrices grandes de estructuras.
Lo único que podría añadir, es CONVERT_AMOUNT expandido a varios valores: por ejemplo 32, 128, 512, 2048, ... con autodetección.

 
Nikolai Semko:

Sí, entiendo su secreto.
Me he devanado los sesos. Veo que es como si estuvieras usando un array dinámico dentro de la unión.
Entonces me di cuenta de cómo hiciste esencialmente un array pseudo dinámico usando un bucle.
Es genial, sobre todo su estilo criptográfico "estoy girando, estoy jodiendo" :))
La ganancia se nota especialmente en matrices grandes de estructuras.
Lo único que podría añadir, esCONVERT_AMOUNT ampliado a varios valores: por ejemplo 32, 128, 512, 2048, ... Con autodetección.

 
fxsaber:
Tal vez. Creo que me he encontrado con algo así.