Como posso mudar a estrutura global de variáveis no indicador ao passar para outro período de tempo? - página 7

 

fxsaber
:

O resultado de trabalhar com SIZE = 1000 do meu código(arquivo StructArr.mqh - ligeiramente modificado. Eu joguei fora coisas desnecessárias):

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 микросекунд

O mesmo resultado com sua Bíblia (arquivo 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 микросекунд


Vitória para você :))
Terei que me aprofundar em seu código :(
Bom trabalho. Obrigado!

Arquivos anexados:
 
fxsaber:

Tal medidor.

Sim, eu entendo seu segredo.
Eu fiquei intrigado com isso. Vejo que você parece usar uma matriz dinâmica dentro da união.
Então descobri como você realmente fez uma matriz pseudo-dinâmica usando loop.
É legal, especialmente seu estilo criptográfico "I'm spinning, I'm screwing" :))
O ganho é especialmente perceptível em grandes matrizes de estruturas.
A única coisa que posso acrescentar, é que CONVERT_AMOUNT foi expandida para vários valores: por exemplo 32, 128, 512, 2048, ... com autodetecção.

 
Nikolai Semko:

Sim, eu entendo seu segredo.
Estive rachando meu cérebro. Eu vejo como se você estivesse usando uma matriz dinâmica dentro da união.
Então eu descobri como você essencialmente fez uma matriz pseudo dinâmica usando um loop.
É legal, especialmente seu estilo criptográfico "I'm spinning, I'm screwing" :))
O ganho é especialmente perceptível em grandes conjuntos de estruturas.
A única coisa que posso ter acrescentado éCONVERT_AMOUNT expandido para vários valores: por exemplo, 32, 128, 512, 2048, ... Com autodetecção.

 
fxsaber:
Talvez. Acho que já me deparei com algo assim.