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

 
Как перениести глобальную переменную, структуру, объект в индикаторе при переходе на другой таймфрейм? Гуглил не нашел.
 
Mikhail Nazarenko:
Как перениести глобальную переменную, структуру, объект в индикаторе при переходе на другой таймфрейм? Гуглил не нашел.

топорное решение : если не объекты, то просто не переинициализовывать :-) 

при смене таймфрейма данные сами не затираются, хотя советник рестартует. Это неожиданное для С-шников поведение софта, и возможно поменяется в других билдах, но вот так вот ;-)

а правильное решение - сохранять состояние в файле или базе, а в OnInit решать - восстанавливать прежнее состояние или начать по новой

 
Maxim Kuznetsov:

топорное решение : если не объекты, то просто не переинициализовывать :-) 

при смене таймфрейма данные сами не затираются, хотя советник рестартует. Это неожиданное для С-шников поведение софта, и возможно поменяется в других билдах, но вот так вот ;-)

а правильное решение - сохранять состояние в файле или базе, а в OnInit решать - восстанавливать прежнее состояние или начать по новой

Я так понял что простых решений для структур и объектов нет?

 

Maxim Kuznetsov:


при смене таймфрейма данные сами не затираются, хотя советник рестартует.


Вопрос же про индикатор был.

 
Mikhail Nazarenko:

Как перениести глобальную переменную, структуру, объект в индикаторе при переходе на другой таймфрейм? Гуглил не нашел.

- глобальную переменную - просто сохраняем в глобальных переменных терминала.
- объект чарта - просто не удаляем с графика.
- структуру - просто пишем в файл.

 
Mikhail Nazarenko:

Я так понял что простых решений для структур и объектов нет?

Записать в файл - это непростое решение? Вроде ничего сложного - FileWriteStruct() имеется. Ту часть объекта, которую следует записать (а это все равно данные, а не методы, которые нет смысла сохранять), преобразовать в структуру.

 
Ihor Herasko:

Записать в файл - это непростое решение? Вроде ничего сложного - FileWriteStruct() имеется. Ту часть объекта, которую следует записать (а это все равно данные, а не методы, которые нет смысла сохранять), преобразовать в структуру.

Вроде бы простая понятная вещь, но если ничего более элегантного нет, то тогда в файл. Я наивно думал без костылей обойтись. Спасибо.

 
Да проще всё пересчитать с нуля все структуры на реините, если там конечно не какие-то супер-мега-сложные вычисления...
 
transcendreamer:
Да проще всё пересчитать с нуля все структуры на реините, если там конечно не какие-то супер-мега-сложные вычисления...

Бывает, что данные не рассчитываются. Например, действия пользователя.

 
Ihor Herasko:

Бывает, что данные не рассчитываются. Например, действия пользователя.

Да, есть такое, но для них обычно можно запомнить статусы в глобалках либо их овеществлённый результат в виде состояния граф.объектов...

 

вот @fxsaber показывал пример как сохранять структуру в глобальные переменные

https://www.mql5.com/ru/forum/320395/page6#comment_12910394

и ниже его сообщение в этом топике

Причина обращения: