Как закрыть все окна чартов терминала при вызове из командной строки (или в конфигурационном файле) ?
Всех приветствую.
Давно уже столкнулся с проблемой, что при вызове МТ5 в пакетном режиме быстро увеличивается количество открытых окон чартов. Если их не закрывать - то довольно скоро упираешься в предел, и эксперты перестают запускаться с ошибкой "максимум чартов открыто".
Вопрос - как в пакетном режиме запуска (из командной строки, или с помощью настройки в конфигурационном файле) запускать Метатрейдер без чартов (с закрытыми чартами)?
Пока что решил проблему тем, что в пакетном файле перед вызовом терминала очищаю папку профайла NoCharts, а в конфигурационном файле - указываю именно этот профайл. В результате терминал открывается без чартов, и при запуске эксперта на оптимизацию - открываются только нужные чарты.
Но, может, есть более простой способ закрытия, непосредственно обращением к терминалу?
Попробуйте написать сервис, который закрывает все открытые графики. Сервис запускается только при запуске МТ и соответственно выполняется только один раз.
Попробуйте написать сервис, который закрывает все открытые графики. Сервис запускается только при запуске МТ и соответственно выполняется только один раз.
Ну... Решение допустимое.
Я уже думал написать скрипт на PowerShell, но анализировать открытые приложения... выяснять, что там открыто...
Но, целое дело, аднака... :)))
Пока что написать команду удаления файлов в папке профиля проще.
Ну... Решение допустимое.
Я уже думал написать скрипт на PowerShell, но анализировать открытые приложения... выяснять, что там открыто...
Но, целое дело, аднака... :)))
Пока что написать команду удаления файлов в папке профиля проще.
Ну... Решение допустимое.
Я уже думал написать скрипт на PowerShell, но анализировать открытые приложения... выяснять, что там открыто...
Но, целое дело, аднака... :)))
Пока что написать команду удаления файлов в папке профиля проще.
Проще чем написать это?
/******************Service program start function********************/ void OnStart() { long currChart = ChartNext(0); while(currChart >= 0) { ChartClose(currChart); currChart = ChartNext(currChart); } }/*******************************************************************/
и поместить сюда
Вау...
Век живи - век учись, я отстал, думал, речь о Сервисах Виндовс...
Спасибо за наводку, действительно, отличный вариант. Именно так и надо сделать.
Надо почитать про Сервисы MT5.
Для подтверждения работоспособности я исправил этот сервис
/******************Service program start function********************/ void OnStart() { long currChart = ChartNext(0); while(currChart >= 0) { //ChartClose(currChart); Print(currChart, " : ", ChartSymbol(currChart), " : ", EnumToString(ChartPeriod(currChart))); currChart = ChartNext(currChart); } }/*******************************************************************/
и перезапустил МТ. Вот результат
Для подтверждения работоспособности я исправил этот сервис
и перезапустил МТ. Вот результат
Да-да, Алексей, благодарю, как раз то, что надо. Спасибо.
Говорю ж - век живи, век учись - дураком помрёшь.
Так и сделаю.
Просто я перепутал с виндовс-сервисом, написание такой программы - весьма муторное дело.
А так - отлично, всё выполняется самим терминалом, и не надо лезть в папки профайлов. Как я и хотел.
А вот не получится-ли так, что удаление будет как при удалении ордеров\позиций я не подумал.
В общем экспериментируйте. Надо это проверять… Может быть лучше сначала в массив засунуть все ID графиков и потом удалять…
А вот не получится-ли так, что удаление будет как при удалении ордеров\позиций я не подумал.
В общем экспериментируйте. Надо это проверять… Может быть лучше сначала в массив засунуть все ID графиков и потом удалять…
Это уже детали, проверить работу можно.
Сама идея, что закрывать окна надо сервисом МТ5 - вот до этого я не додумался, вобще сервисы "мимо меня" прошли...
Спасибо еще раз за наводку.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Всех приветствую.
Давно уже столкнулся с проблемой, что при вызове МТ5 в пакетном режиме быстро увеличивается количество открытых окон чартов. Если их не закрывать - то довольно скоро упираешься в предел, и эксперты перестают запускаться с ошибкой "максимум чартов открыто".
Вопрос - как в пакетном режиме запуска (из командной строки, или с помощью настройки в конфигурационном файле) запускать Метатрейдер без чартов (с закрытыми чартами)?
Пока что решил проблему тем, что в пакетном файле перед вызовом терминала очищаю папку профайла NoCharts, а в конфигурационном файле - указываю именно этот профайл. В результате терминал открывается без чартов, и при запуске эксперта на оптимизацию - открываются только нужные чарты.
Но, может, есть более простой способ закрытия, непосредственно обращением к терминалу?