Как перениести глобальную переменную, структуру в индикаторе при переходе на другой таймфрейм? - страница 7

 

fxsaber
:

Результат работы при SIZE = 1000 моего кода ( файл StructArr.mqh - чуть модифицировал. Выбросил лишнее):

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

Тот же результат с вашей библой ( файл 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 микросекунд


Победа за Вами :))
Придется вникать в Ваш код :((
Хорошая работа. Спасибо!

Файлы:
 
fxsaber:

Такой замеритель.

Да, я понял Ваш секрет.
Все ломал голову. Вижу что Вы словно используете внутри union динамический массив
Потом разобрался, как Вы по сути сделали псевдо динамический массив используя цикл.
Круто конечно, особенно Ваш криптографический стиль "Кручу, верчу - запутать хочу" :))
Выигрыш особенно заметен на больших массивах структур. 
Единственно, что я, может быть, добавил, так это CONVERT_AMOUNT расширил бы до нескольких значений: например 32, 128, 512, 2048, ... с автоопределением.

 
Nikolai Semko:

Да, я понял Ваш секрет.
Все ломал голову. Вижу что Вы словно используете внутри union динамический массив
Потом разобрался, как Вы по сути сделали псевдо динамический массив используя цикл.
Круто конечно, особенно Ваш криптографический стиль "Кручу, верчу - запутать хочу" :))
Выигрыш особенно заметен на больших массивах структур. 
Единственно, что я, может быть, добавил, так это CONVERT_AMOUNT расширил бы до нескольких значений: например 32, 128, 512, 2048, ... с автоопределением.

 
fxsaber:
Может быть. Вроде наталкивался на подобное.
Причина обращения: