1)потеряются, храните в глобальных переменных. или в файле
2) скока раз вызываете столько раз пересчитывается
1)потеряются, храните в глобальных переменных. или в файле
Можно попросить какую либо инструкцию по поводу хранения в файле?
Шесть символов не дописали ;) https://docs.mql4.com/ru/files
А можно еще и дополнить вот так
Перезапуск терминала состоит из двух фаз: ВЫХОД и повторный ЗАПУСК
Переменные при ВЫХОДЕ терминала потеряются, так как занятая под них память освобождается.
При ЗАПУСКЕ терминала память под переменные будет выделена заново. В советнике наверняка есть инициализация (функция OnInit) переменных начальными значениями, что и будет выполнено. Если нужны прежние значения, то можно в прошлом сеансе работы попытаться сохранить их в файл в функции OnDeinit. Однако при аварийном выключении компьютера (дядя Петя щелкнул в подъезде рубильником) функция OnDeinit бесполезна. Тогда нужно периодически (раз в час, раз в ...) производить сохранение накопленной информации в файл. В функции OnInit производить проверку наличия файла и загружать данные из него. При отсутствии файла инициализировать переменные стандартными значениями. Но тогда в случае изменения стандартных значений придется перекомпилировать советник. Чтобы избежать этого надо иметь два файла - стандартных значений и последних значений. Самая простая логика: Загружаем из первого файла стандартные значения. Открываем второй файл. В случае ошибки успокаиваемся. Иначе загружаем последние значения.
Насчет функции. Если функция сложная (долго выполняется) и все разы возвращает одно и то же значение - целесообразно вызвать один раз и запомнить результат.
Pecmop: Не потеряются ли переменные при перезапуске терминала/сервера?
Перезапуск терминала состоит из двух фаз: ВЫХОД и повторный ЗАПУСК
Переменные при ВЫХОДЕ терминала потеряются, так как занятая под них память освобождается.
При ЗАПУСКЕ терминала память под переменные будет выделена заново. В советнике наверняка есть инициализация (функция OnInit) переменных начальными значениями, что и будет выполнено. Если нужны прежние значения, то можно в прошлом сеансе работы попытаться сохранить их в файл в функции OnDeinit. Однако при аварийном выключении компьютера (дядя Петя щелкнул в подъезде рубильником) функция OnDeinit бесполезна. Тогда нужно периодически (раз в час, раз в ...) производить сохранение накопленной информации в файл. В функции OnInit производить проверку наличия файла и загружать данные из него. При отсутствии файла инициализировать переменные стандартными значениями. Но тогда в случае изменения стандартных значений придется перекомпилировать советник. Чтобы избежать этого надо иметь два файла - стандартных значений и последних значений. Самая простая логика: Загружаем из первого файла стандартные значения. Открываем второй файл. В случае ошибки успокаиваемся. Иначе загружаем последние значения.
Насчет функции. Если функция сложная (долго выполняется) и все разы возвращает одно и то же значение - целесообразно вызвать один раз и запомнить результат.

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Интересует такой вопрос:
В советнике используются переменные, много.
Они задаются по ходу алгоритма и направляют дальнейшие телодвижения советника.
Не потеряются ли они при перезапуске терминала/сервера?
И еще один вопрос, одна функция по выполнению советника запрашивается несколько раз, она пересчитывается при каждом запросе или 1 раз за проход кода?