Новая версия платформы MetaTrader 5 build 4000: Улучшения в торговом отчете и веб-терминале - страница 10

 
Artyom Trishkin #:

это чтобы Ваша программа подчищала за собой весь мусор.

Ещё раз, какой мусор? С какой стати скрытые объекты, созданные моим индикатором, считаются мусором? И что такое "подчищала за собой"? Когда и почему она должна "подчищать за собой"?

Artyom Trishkin #:

Ведь шаблон этот может быть загружен и для любой иной программы.

Для какой иной программы? Я всё это время говорю про шаблон графика: https://www.mql5.com/ru/forum/454903/page6#comment_49894010

Artyom Trishkin #:

Если же Вам так необходимо сохранять в шаблоне (и именно в шаблоне) какие-либо графические элементы от своей программы

Не только от "своей программы" я сохраняю скрытые объекты в шаблоне графика, но и сами программы (индикаторы) при этом.

 
Andrei Iakovlev #:

Ещё раз, какой мусор? С какой стати скрытые объекты, созданные моим индикатором, считаются мусором? И что такое "подчищала за собой"? Когда и почему она должна "подчищать за собой"?

Для какой иной программы? Я всё это время говорю про шаблон графика: https://www.mql5.com/ru/forum/454903/page6#comment_49894010

Не только от "своей программы" я сохраняю скрытые объекты в шаблоне графика, но и сами программы (индикаторы) при этом.

Программа должна подчищать за собой рабочее пространство при выгрузке.

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

 
Artyom Trishkin #:

Потому, что правило хорошего тона при программировании - это чтобы Ваша программа подчищала за собой весь мусор. Ведь шаблон этот может быть загружен и для любой иной программы. И для чего тогда ей на графике нужны элементы GUI от программы, которую она "в глаза не видела"?

Если же Вам так необходимо сохранять в шаблоне (и именно в шаблоне) какие-либо графические элементы от своей программы, то, как и сказал Слава, сохраняйте их без установленного флага HIDDEN, а при запуске устанавливайте его программно. Хотя, конечно, это странно, что не программа восстанавливает собственное окружение сама, а складирует его в непредназначенные для этого места.

Артём, логика не понятна в твоих словах.

Да, программа должна подчищать за собой при деинициализации с чарта, т.е. чистить чарт.

Но при чем здесь шаблон? Шаблон для того и создан, что бы в нём сохранять слепок работающих программ и графических объектов.

Что значит не "засорять шаблон"? Что это за соблюдение чистоты шаблона? Какой шаблон считается чистым а какой грязным?

Пример, специально написанной для этих целей программой создаю шаблон - сложную композицию из графических объектов и индикаторов и скриптов, что бы в последующем в ручную этот шаблон использовать. Но так как задумано сделать полностью не получится, потому что есть ограничения и блюдение "чистоты шаблона".

Не придираюсь, рассуждаю сугубо с практической точки зрения.

 

Не могу запустить терминал не в режиме портабле. То есть в аппдату хранение папки mql5 никак не переходит. Что и где можно подправить?

Постоянно каталог файлов mql5 в папке программфайлес.

 
Andrey Dik #:

Артём, логика не понятна в твоих словах.

Да, программа должна подчищать за собой при деинициализации с чарта, т.е. чистить чарт.

Но при чем здесь шаблон? Шаблон для того и создан, что бы в нём сохранять слепок работающих программ и графических объектов.

Что значит не "засорять шаблон"? Что это за соблюдение чистоты шаблона? Какой шаблон считается чистым а какой грязным?

Пример, специально написанной для этих целей программой создаю шаблон - сложную композицию из графических объектов и индикаторов и скриптов, что бы в последующем в ручную этот шаблон использовать. Но так как задумано сделать полностью не получится, потому что есть ограничения и блюдение "чистоты шаблона".

Не придираюсь, рассуждаю сугубо с практической точки зрения.

Мухи - отдельно, котлеты - отдельно.

В шаблоне сохранена работающая программа. Этого достаточно для того, чтобы программа была запущена при применении шаблона графика.

Почему в шаблоне должны лежать элементы интерфейса этой программы? Почему программа должна зависеть от шаблона?

 
Artyom Trishkin #:

Программа должна подчищать за собой рабочее пространство при выгрузке.

Согласен, так она и делает, но я же не удаляю её с графика, а сохраняю её тоже в шаблон.

Artyom Trishkin #:

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

"этими элементами Вы засоряете шаблон" -- опять засоряю, опять мусор. В 4-ый раз спрашиваю: "Почему считается, что скрытые объекты, созданные моим индикатором, будут засорять новый шаблон, который я сохраняю? Почему они считаются мусором?"

Вы можете ответить на этот вопрос?

Artyom Trishkin #:

Программа, сохранённая в шаблоне, должна самостоятельно строить свой интерфейс в момент запуска.

Только так и никак иначе? А почему так? При смене периода/инструмента значит должны удаляться вообще все объекты программмы? Это утверждение по-мойму совершенно ошибочно.

Зачем мне создавать заново объекты, которые уже были созданы, и для которых мне надо менять только свойства?

А если мне именно требуется сохранить какие-то свойства объекта? Например для кнопки вкл./выкл., которая сохраняет свой цвет при смене периода. Если она была красной напр. до смены периода, значит после смены индикатор не будет производить свои расчёты, пока кнопка не станет зелёной.

 
Artyom Trishkin #:
Почему в шаблоне должны лежать элементы интерфейса этой программы? Почему программа должна зависеть от шаблона?

Потому что так хочет/так надо пользователю, который сохранил такой шаблон.

 
Andrei Iakovlev #:

Согласен, так она и делает, но я же не удаляю её с графика, а сохраняю её тоже в шаблон.

"этими элементами Вы засоряете шаблон" -- опять засоряю, опять мусор. В 4-ый раз спрашиваю: "Почему считается, что скрытые объекты, созданные моим индикатором, будут засорять новый шаблон, который я сохраняю? Почему они считаются мусором?"

Вы можете ответить на этот вопрос?

Только так и никак иначе? А почему так? При смене периода/инструмента значит должны удаляться вообще все объекты программмы? Это утверждение по-мойму совершенно ошибочно.

Зачем мне создавать заново объекты, которые уже были созданы, и для которых мне надо менять только свойства?

А если мне имеено требуется сохранить какие-то свойства объекта? Например для кнопки вкл./выкл., которая сохраняет свой цвет при смене периода. Если она была красной напр. до смены периода, значит после смены индикатор не будет производить свои расчёты, пока кнопка не станет зелёной.

Отвечал же.

Естественно. Индикатор при смене символа/периода графика полностью выгружается и запускается новый индикатор. Совершенно новый - не тот, что был на графике. Почему он не должен строить свой интерфейс, а брать его откуда-то? Это очень странное решение.

 
Artyom Trishkin #:

Мухи - отдельно, котлеты - отдельно.

В шаблоне сохранена работающая программа. Этого достаточно для того, чтобы программа была запущена при применении шаблона графика.

Почему в шаблоне должны лежать элементы интерфейса этой программы? Почему программа должна зависеть от шаблона?

Артём, ты плохо прочитал моё сообщение.

В ручную сохранять в шаблоне гр. объекты можно? Можно.

Можно автоматизировать рисование гр. объектами то, что делаю вручную? Можно.

Почему нельзя делать программой то, что делается в ручную?

Причем здесь интерфейс программы? При чем здесь зависимость программы от шаблона?

Пример: я трейдер ручник, торгую по уровням и всяким гр. меткам, мне нужна программа, которая автоматизирует процесс создания графических объектов и сохраняет состояние чарта в шаблон, что бы я в последующем вручную открыл шаблон и продолжил работу на чарте с этими графическими объектами, необходимыми для ручного анализа и трейдинга. Поэтому интерфейс программы, лежащий в шаблоне тут вообще ни причем. Я описал реальный сценарий работы ручных трейдеров, где видно, что есть ограничения при работе с шаблонами. Это пример для ручников, и может не иметь идентичного смысла с тем что говорил предыдущий оратор, но проблема и там и тут присутсвует.

 
Andrei Iakovlev #:

Потому что так хочет/так надо пользователю, который сохранил такой шаблон.

Ну тогда, при неправильной логике работы Вашей программы, не стоит валить вину на других, в частности - на разработчиков терминала. Сами придумывайте костыли для того, чтобы Ваша программа работала нелогично.