Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 1076
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Всем хорошего дня! Еще один вопрос...
Есть MQL5 программа, она имеет настройки (много) "Входные параметры". Программа выполняет вычисления и по мере необходимости создает / удаляет и управляет графическими объектами.
После смены входных параметров из окна настройки генерируется событие Init, что приводит к инициализации программы и происходит "пересчет" и "перерисовка" объектов что в принципе и нужно, но событие Init например генерируется и при смене периода графика (и другое), в результате чего процесс повторяется всякий раз, и даже когда это не нужно.
Вопрос: как исключить инициализацию программы при событии Init если входные параметры не изменялись но оставить инициализацию при запуске программы(терминала)?
Возможный вариант: запоминать установленные значения и сравнивать по наступлению события Init и если они отличаются разрешать инициализацию, но входных параметров достаточно много...
Всем хорошего дня! Еще один вопрос...
Есть MQL5 программа, она имеет настройки (много) "Входные параметры". Программа выполняет вычисления и по мере необходимости создает / удаляет и управляет графическими объектами.
После смены входных параметров из окна настройки генерируется событие Init, что приводит к инициализации программы и происходит "пересчет" и "перерисовка" объектов что в принципе и нужно, но событие Init например генерируется и при смене периода графика (и другое), в результате чего процесс повторяется всякий раз, и даже когда это не нужно.
Вопрос: как исключить инициализацию программы при событии Init если входные параметры не изменялись но оставить инициализацию при запуске программы(терминала)?
Возможный вариант: запоминать установленные значения и сравнивать по наступлению события Init и если они отличаются разрешать инициализацию, но входных параметров достаточно много...
Вот несколько советов для другой, похожей проблемы
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
В советнике работает, а в индикаторе не правильно, музыка при старте индикатора
Ihor Herasko, 2019.06.17 14:12
Да.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
В советнике работает, а в индикаторе не правильно, музыка при старте индикатора
Taras Slobodyanik, 2019.06.17 16:25
5. Еще можно оставлять какой-нибудь объект на чарте, и при старте проверять его наличие-состояние.Вот несколько советов для другой, похожей проблемы
Благодарю за ответ, похоже что в нашем случае придется отслеживать состояние пары десятков изменений соответствий описав это через "пустышку" на графике, чтобы следить за их изменением, либо смириться с не нужной инициализацией пока объектов не так много...
Но ведь в вашем вопросе было
Всем хорошего дня! Еще один вопрос...
Есть MQL5 программа, она имеет настройки (много) "Входные параметры". Программа выполняет вычисления и по мере необходимости создает / удаляет и управляет графическими объектами.
После смены входных параметров из окна настройки генерируется событие Init, что приводит к инициализации программы и происходит "пересчет" и "перерисовка" объектов что в принципе и нужно, но событие Init например генерируется и при смене периода графика (и другое), в результате чего процесс повторяется всякий раз, и даже когда это не нужно.
Вопрос: как исключить инициализацию программы при событии Init если входные параметры не изменялись но оставить инициализацию при запуске программы(терминала)?
Возможный вариант: запоминать установленные значения и сравнивать по наступлению события Init и если они отличаются разрешать инициализацию, но входных параметров достаточно много...
И в вашей ситуации один из тех советов предотвратит эти не нужные перерисовки объектов. А если в OnDeinit() эти объекты удаляются, то и там надо запретить удаление при переключении графика.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Как удалить глобальную переменную терминала при закрытии графика?
Alexey Viktorov, 2019.06.29 08:40
Обратите внимание на эту таблицу
REASON_PROGRAM
0
Эксперт прекратил свою работу, вызвав функцию ExpertRemove()
REASON_REMOVE
1
Программа удалена с графика
REASON_RECOMPILE
2
Программа перекомпилирована
REASON_CHARTCHANGE
3
Символ или период графика был изменен
REASON_CHARTCLOSE
4
График закрыт
REASON_PARAMETERS
5
Входные параметры были изменены пользователем
REASON_ACCOUNT
6
Активирован другой счет либо произошло переподключение к торговому серверу вследствие изменения настроек счета
REASON_TEMPLATE
7
Применен другой шаблон графика
REASON_INITFAILED
8
Обработчик OnInit() вернул ненулевое значение
REASON_CLOSE
9
Терминал был закрыт
и на эту строку вашего кода
Но, если я правильно помню начало вашей проблемы, то лучше условие поставить так
Но ведь в вашем вопросе было
И в вашей ситуации один из тех советов предотвратит эти не нужные перерисовки объектов. А если в OnDeinit() эти объекты удаляются, то и там надо запретить удаление при переключении графика.
Так и не нашел в Codebase пример советника, где условие закрытие позиции можно прописать, а не только стандартно SL/TP. Может кто подскажет?
А чем условие открытия отличается от условия закрытия?
Так и не нашел в Codebase пример советника, где условие закрытие позиции можно прописать, а не только стандартно SL/TP. Может кто подскажет?
У Владимира Карпутова были в кодах такие условия, но чтобы его код прочитать нужно самому научиться)
У Владимира Карпутова были в кодах такие условия, но чтобы его код прочитать нужно самому научиться)
Учиться нечему - понимать как собрана программа путём соединения её из готовых блоков стандартной библиотеки - даже не нужно знать программирование на среднем уровне - достаточно начального. Не пугайте народ - там всё легко и просто.
А чем условие открытия отличается от условия закрытия?