Идиотизм... Боюсь опять забанят... :)) - страница 2

 

К слову о граф. объектах.

На мой взгляд, хорошо бы иметь многослойную графику. Такая необходимость диктуется сугубо утилитарным интересом:

Иные программы (например, индикатор) могут содержать в deinit() функцию ObjectsDeleteAll(), что само по себе вполне оправдано - каждая программа должна почистить за собой. Однако, анализ причины деинициализации, как правило, не выполняется. Если при этом используется другая программа (например, эксперт), торгоовые алгоритмы которого учитывают положение объектов (и сам факт их наличия), то при переключении ТФ или снятии индикатора удаление "чужих" объектов может приводить к несанкционированным торговым приказам (или их отсутствию).

Слои должны быть формальными, идентифицируемыми именем (строковой переменной). Действие наиболее часто употребляемой функции ObjectsDeleteAll() должно распространяться только на безымянный слой. А для удаления "слоевой" графики необходимо было бы сначала запросить идентификатор слоя, а потом удалить персонально объект или все объекты слоя.

Такой подход позволил бы стыковать программы от разных разработчиков в окне одного фин. инструмента.

 
SK. писал(а) >>

1. удаление "чужих" объектов может приводить к несанкционированным торговым приказам (или их отсутствию).

1. Это в ваших руках, как напишите, так и будет работать.


Слои. И сейчас можно сделать сколько угодно слоев, через имя объекта.

 
Integer писал(а) >>

1. Это в ваших руках, как напишите, так и будет работать.


Слои. И сейчас можно сделать сколько угодно слоев, через имя объекта.

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

 
SK. писал(а) >>

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

А я и не беспокоюсь. И о ценности своего мнения для вас не беспокоюсь. Если вас это раздражает, не обращайте внимания, и считайте, что это я не для вас написал, а для людей умеющих свободно мыслить и способных решать поставленные задачи имеющимися средствами, а не звонить в колокола от своей неумелости.

В mql4 имеются все средста для работы c графическими объекатми и они позволяют решить любую задачу.


ps. Ктому же это не мое мнение, а факт. Конечно многие предпочитают и глаза закрывать на факты, если они не соответсвуют их реальности. Закрывайте.

 

Скорее всего речь идет о расширении параметров функции ObjectsDeleteAll(int window,int type,string filter) с добавлением фильтра, по которому можно легко выбирать подклассы имен объектов.

Это мы сделаем.

 
Renat писал(а) >>

Скорее всего речь идет о расширении параметров функции ObjectsDeleteAll(int window,int type,string filter) с добавлением фильтра, по которому можно легко выбирать подклассы имен объектов.

Это мы сделаем.

Да, речь идёт прибл. об этом.

Пожелание состоит в ограничении полномочий функции ObjectsDeleteAll(): её исполнение с умолчательными параметрами должно приводить к удалению только тех объектов, которые при создании явно не назначены в какой-либо слой. Это существенно понизит вероятность ненамеренного удаления "чужих" объектов из "обычной" программы.

 

Возможно речь идет :

иметь слой у каждого индикатора свой слой

что то типа

индикатор1 имя объекта ="ЛЯЛЯ1"

индикатор2 имя объекта = "ЛЯЛЯ1"


что бы индикатор1 мог оперировать в своем слое а индикатор 2 в своем

т е выгрузка индикатора1 не удалит объект с тем же именем у индикатора2


при этом иметь возможность индикатору1 "ходить" в чужой слой! индикатора2, но это через явное указание

--

т е фактически добавить объекту ID владельца ( именуемый слой )

индикатор1 один оперирует в своем слое, индикатор2 в своем

тут главное что бы не страдала скорость




 
на самом деле очень удобная фишка такая "нумерация" объектов. Слои реализуются префиксами в именах объектов а порядок их расположения сортировкой этих самых префиксов.
например вот такая стопочка имен:
Слой1_А-тренд
Слой1_В-МА2
Слой1_С-МА1
Слой1_D-бары
Слой2_Метка1
Слой2_Метка2
Слой2_Метка3

Если нужно удалить все объекты одного слоя пишем маленький код:
for(int i=0;i<ObjectsTotal();i++) if(StringFind(ObjectName(i),"Слой1")==0) { ObjectDelete(ObjectName(i)); i--; }

и все подчищено. Если нужно воткнуть объект между двумя слоями - создаем его с именем Слой11. Ну и так далее.

И дело здесь вовсе не в чьемто "идиотизме" - просто есть некоторый объект с которым нужно научится эфективно работать так как он это позволяет, а не так как ты привык работать с чемто похожим в каком то другом языке програмирования (ИМХО).

 
ForexTools >>:
на самом деле очень удобная фишка такая "нумерация" объектов. Слои реализуются префиксами в именах объектов а порядок их расположения сортировкой этих самых префиксов.
например вот такая стопочка имен:
Слой1_А-тренд
Слой1_В-МА2
Слой1_С-МА1
Слой1_D-бары
Слой2_Метка1
Слой2_Метка2
Слой2_Метка3

Если нужно удалить все объекты одного слоя пишем маленький код:

и все подчищено. Если нужно воткнуть объект между двумя слоями - создаем его с именем Слой11. Ну и так далее.

И дело здесь вовсе не в чьемто "идиотизме" - просто есть некоторый объект с которым нужно научится эфективно работать так как он это позволяет, а не так как ты привык работать с чемто похожим в каком то другом языке програмирования (ИМХО).


Таким образом еще удобней!

т е создавая объект мы сразу определяем ему слой

 

нетушки, так и до MQL-12 графики не будет.

...
Если настоящая многослойная модель в смысле желанной многозадачности,
тогда каждый слой должен иметь свойства и управление отдельного окна, т.е. слой-окно.
Результирующее окно это сумма или склейка, (тут уже как удобно) произвольного числа слоев-окон.

Причина обращения: