Добрый день, буду краток,в ИНДИКАТОРе не знаю как будет правильно сделать:
далее хочу чтобы это выводилось при нажатии на кнопку, поэтому запихал это в: OnChartEvent
таким образом:
НО ТУТ ПРОБЛЕМА:
в колонке ЭКСПЕРТЫ пишется ошибка 4200, она означает что уже создана текстовая метка
Иными словами, как мне
запихать создание в OnInit, чтобы не было ошибки 4200, при условии что вызов будет работать правильно
А вас не смущает, что имена объектов в каждой строке кода разные?
А вас не смущает, что имена объектов в каждой строке кода разные?
так и должно быть, могли бы вы объяснить как перенести:
void infу(string name) { ..... }
в OnInit при условии чтобы был вызов в OnChartEvent
Пожалуйста помогите
так и должно быть, могли бы вы объяснить как перенести:
в OnInit при условии чтобы был вызов в OnChartEvent
Пожалуйста помогите
Я думаю вам сначала не мешало-бы разобраться в теории.
Ошибки 4200 что-то я не нахожу. Видимо номер ошибки 4202. Так вот чтобы обойти эту ошибку надо произвести поиск объекта с таким именем который надо создать. И в случае если такового не будет найдено можно его создать.
Функция ObjectFind() возвращает номер окна в котором найден объект или -1 если не найден. То-есть, если найден в первом окне, то ваше условие
if(ObjectFind(Chart_ID,"kolonka1")!=0)будет выполнено.
В общем по теории последовательность и логика такая.
- Пытаемся найти объект с определённым именем.
- Если не найден
- Создаём нужный объект.
- Если найден, пропускаем пункт 3
- Назначаем ему определённые свойства.
То что вы подготовили не укладывается в голове и советовать что-либо невозможно. Во всём этом коде нет никакой логики.
Такое впечатление, вы написали что попало в надежде, что исправляя вам напишут готовый вариант. Но это не ко мне.
![Документация по MQL5: Графические объекты / ObjectFind Документация по MQL5: Графические объекты / ObjectFind](https://c.mql5.com/36/27/dokumentaciya-po-mql5-graficheskie.png)
- www.mql5.com
Я думаю вам сначала не мешало-бы разобраться в теории.
Ошибки 4200 что-то я не нахожу. Видимо номер ошибки 4202. Так вот чтобы обойти эту ошибку надо произвести поиск объекта с таким именем который надо создать. И в случае если такового не будет найдено можно его создать.
Функция ObjectFind() возвращает номер окна в котором найден объект или -1 если не найден. То-есть, если найден в первом окне, то ваше условие
будет выполнено.В общем по теории последовательность и логика такая.
- Пытаемся найти объект с определённым именем.
- Если не найден
- Создаём нужный объект.
- Если найден, пропускаем пункт 3
- Назначаем ему определённые свойства.
То что вы подготовили не укладывается в голове и советовать что-либо невозможно. Во всём этом коде нет никакой логики.
Такое впечатление, вы написали что попало в надежде, что исправляя вам напишут готовый вариант. Но это не ко мне.
Спасибо что расписали мне всё, вопрос такой можно ли чтобы алгоритм был такой как у меня, или же создание объектов нужно чтобы строго было в OnInit ???
Спасибо что расписали мне всё, вопрос такой можно ли чтобы алгоритм был такой как у меня, или же создание объектов нужно чтобы строго было в OnInit ???
Создавать можно что угодно когда угодно. Но перед созданием ВСЕГДА желательно проверять наличие имени в существующих объектах. Даже если вам надо создать текстовую метку с именем "АВС" но на графике уже есть вертикальная линия с именем "АВС" то это будет уже ошибка. MQL не делит имена по типам объектов.
Спасибо большое что помогаете, но видели те в чем дело, у меня она метка только тут создаётся с таким имнем, а вылазит ошибка потому что при нажатии на какую либо кнопку на графике(кнопку всмысле button) у меня как бы заного пытается создать её)
Спасибо большое что помогаете, но видели те в чем дело, у меня она метка только тут создаётся с таким имнем, а вылазит ошибка потому что при нажатии на какую либо кнопку на графике(кнопку всмысле button) у меня как бы заного пытается создать её)
Пока нет кода обращаться можно только к экстрасенсам. К счастью я только учусь и могу предположить, что в обработке нажатия кнопки есть
создание какого-то объекта с таким именем. Но по неопытности в экстрасенсе могу и ошибиться.
Спасибо большое что помогаете, но видели те в чем дело, у меня она метка только тут создаётся с таким имнем, а вылазит ошибка потому что при нажатии на какую либо кнопку на графике(кнопку всмысле button) у меня как бы заного пытается создать её)
Везде перед созданием делайте проверку: if(ObjectFind(0,name...)==-1)ObjectCreate(0,name...);
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
далее хочу чтобы это выводилось при нажатии на кнопку, поэтому запихал это в: OnChartEvent
таким образом:
НО ТУТ ПРОБЛЕМА:
в колонке ЭКСПЕРТЫ пишется ошибка 4200, она означает что уже создана текстовая метка
Иными словами, как мне запихать создание в OnInit, чтобы не было ошибки 4200, при условии что вызов будет работать правильно