Ошибки, баги, вопросы - страница 3641
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Это криво написанный индикатор, проблема не с терминалом
он очевидно не то имел в виду :
при аварийном завершении, терминал не запоминает что в нём было запущено с предыдущего успешного запуска.
то есть добавил индикатор/советник, тот пахал как лошадь и упал с терминалом (или виндовсом в целом)..вот при перезапуске лошади не будет :-)
--
кстати это хорошая фича, и исправлять её ни в коем случае не надо
он очевидно не то имел в виду :
при аварийном завершении, терминал не запоминает что в нём было запущено с предыдущего успешного запуска.
то есть добавил индикатор/советник, тот пахал как лошадь и упал с терминалом (или виндовсом в целом)..вот при перезапуске лошади не будет :-)
--
кстати это хорошая фича, и исправлять её ни в коем случае не надо
Наоборот, что было, т.е. что работало в момент аварии терминал помнит. А вот то что было, потом было удалено - не помнит факт удаления. Т.е. запускаешь терминал и он начинает пахать как лошадь ни с того ни с сего :)
Наоборот, что было, т.е. что работало в момент аварии терминал помнит. А вот то что было, потом было удалено - не помнит факт удаления. Т.е. запускаешь терминал и он начинает пахать как лошадь ни с того ни с сего :)
собственный профиль терминал запоминает при штатном завершении работы.
традиционно на серверах, общая рекомендация - терминал запустил, настроил, завершил, запустил, перепроверил и перезапустил :-)
Спасибо. Чего не хватает в индикаторе? А терминал почему не может записать где-то факт удаления индикатора с графика?
Индикатор имеет большой цикл, Вы индикатор удалили с графика, но по факту индикатор еще работает так как цикл запущен. Это часто вызывает зависание терминала в целом.
В итоге при перезапуске терминала Вы имеете индикатор на графике так как индикатор не завершил работу корректно.
Спасибо. Чего не хватает в индикаторе? А терминал почему не может записать где-то факт удаления индикатора с графика?
Нужно взять исходный код индикатора и модифицировать его, в частности в функции DeInit() нужно дописать обработку кодов причин выгрузки индикатора.
Можно все настройки при определенных причинах выгрузки индикатора сохранять например в файл и т.д. , а при следующем старте их автоматически подгружать в OnInit().
Значит и для настроек в коде индикатора могут понадобиться переменные-посредники такого же типа. Масса вариантов есть. Сам вопрос не четкий, т.к. скринов и логов с описанием проблемы нет.
Более того, можно сделать через OnTimer() кастомный глобальный мьютекс, который выбрасывает из цикла вешающего индикатор при прошествии определенного кол-ва секунд, или там аналог std::lock_guard<Mutex>(свой мини класс-оболочку для переменной с функцией мьютекса), например для того что-бы цикл гарантированно завершался к следующему вызову.
https://www.mql5.com/en/docs/event_handlers/ondeinit
Спасибо, пишу по шагам.
1. Запускается терминал.
2. Терминал работает в выходные или нет эффект один.
3. На пустой график загружается индикатор. В функции "init" только установка графических буферов. Весь код в функции "start". В функции "deinit" ничего нет кроме "return (0);"
4. Индикатор обращается к dll, рсует линию.
5. Индикатор после отрисовки ничего не делает.
6. Индикатор удаляется с графика через штатное меню терминала -> ПКМ "список индикаторов" -> выделение -> удалить.
7. Диспетчером задач виндоус снимется дерево процессов терминала (имитируется отключение света).
8. Запускается терминал на котором запускается и отображается ранее удаленный индикатор.
Т.е. терминал нигде у себя не сохранил статус окна с графиком после удаления индикатора, что оно пустое, чтобы прочитать это при своем запуске.
Спасибо, пишу по шагам.
1. Запускается терминал.
2. Терминал работает в выходные или нет эффект один.
3. На пустой график загружается индикатор. В функции "init" только установка графических буферов. Весь код в функции "start". В функции "deinit" ничего нет кроме "return (0);"
4. Индикатор обращается к dll, рсует линию.
5. Индикатор после отрисовки ничего не делает.
6. Индикатор удаляется с графика через штатное меню терминала -> ПКМ "список индикаторов" -> выделение -> удалить.
7. Диспетчером задач виндоус снимется дерево процессов терминала (имитируется отключение света).
8. Запускается терминал на котором запускается и отображается ранее удаленный индикатор.
Т.е. терминал нигде у себя не сохранил статус окна с графиком после удаления индикатора, что оно пустое, чтобы прочитать это при своем запуске.
Вкратце: судя по всему ваши ожидания превышают фактический функционал индикатора, значит индикатор нужно переписывать либо модифицировать. Если сами не программируете, то вам на фриланс, создайте там задачу, выберите исполнителя и он сделает так, что индикатор будет работать как вам нужно.
это терминал надо переписывать, чтобы профили сохранял синхронно с изменениями а не как бог на душу положит (и журналы писал как системные журналы).
но тогда будет геморой с отладкой и действительно багованными индикаторами/советниками :-) потребуется более высокая квалификация от пользователей и разработчиков советников/индикаторов
сейчас юзеру надо : добавил или удалил индикатор - сохрани профиль (или перезапусти терминал). Сам по себе он не сохранится
Вкратце: судя по всему ваши ожидания превышают фактический функционал индикатора, значит индикатор нужно переписывать либо модифицировать. Если сами не программируете, то вам на фриланс, создайте там задачу, выберите исполнителя и он сделает так, что индикатор будет работать как вам нужно.
Индикатор работает как нужно. Все в порядке. Просто терминал не запоминает факт его удаления с графика, при нештатном завершении работы терминала. Вот и все, детский вопрос. Я программирую немного и могу его решить, если влезу в работу терминала на уровне перехвата системных сообщений виндоус с использованием недокументированного апи виндоус Zw, только это большая работа. И мне кажется вопрос проще решить разработчикам терминала парой строк.
это терминал надо переписывать, чтобы профили сохранял синхронно с изменениями а не как бог на душу положит (и журналы писал как системные журналы).
но тогда будет геморой с отладкой и действительно багованными индикаторами/советниками :-) потребуется более высокая квалификация от пользователей и разработчиков советников/индикаторов
сейчас юзеру надо : добавил или удалил индикатор - сохрани профиль (или перезапусти терминал). Сам по себе он не сохранится
Спасибо, изучу. :) Правда, лучше разработчикам поправить, ведь не хотелось бы чтобы кто-то пострадал от недочета. А с другой стороны и Максим Кузнецов прав. Оставим решение разработчикам, у них опыта побольше.
Все-таки, как это здорово когда много людей, каждый что-то знает и всегда можно разобраться. Пытался Алису яндекс сегодня поймать на хитром вопросе и ничего не получилось. Кажется, ИИ это очень перспективно, в будущем сможет сильно помогать людям.