https://www.mql5.com/ru/docs/basis/function/events#onchartevent
Вручную объекты создаёте, я так понимаю, тогда думаю надо отлавливать событие CHARTEVENT_OBJECT_CREATE в обработчике OnChartEvent, и формировать упорядоченную очередь самостоятельно (самое простое из того, что приходит в голову - добавлять целочисленные метки в описание). Объект с наибольшим значением метки - последний.
https://www.mql5.com/ru/docs/basis/function/events#onchartevent
Обьекты я не создаю... их создает индикатор - мне их надо как-то отлавливать.. Пришла мысль попробовать использовать время создания объекта (OBJPROP_CREATETIME)
Верно.
Добавлено: Но в предыдущем вашем способе тоже могло бы получиться, если бы не ошибка логики. Счёт в программе ведётся от 0, значит последний из 100 - 99-й, а не 100-й.
Другими словами - Comment ("Имя нового обьекта ", ObjectName(ObjectsTotal()-1));
Верно.
Здравствуйте! Как узнать имя последнего созданного объекта. Сначала я подумал отслеживать через функцию которая возвращает общее кол-во объектов на графике ObjectsTotal() и при изменении общего кол-ва обьектов на графике просто обращаться к последнему объекту через общее кол-во ;
x=0;
y=ObjectsTotal();
if (y>x) {
Comment ("Имя нового обьекта ", ObjectName(y));
x=y;
}
Но! Общее кол-во обьектов не совпадает с индексом последнего добавленного объекта на графике,(MQL их сортирует по своему!)
Т.е. получается что я вижу что кол-во объектов увеличилось - но я не могу увидеть какой именно объект был добавлен на график .
Пересмотрел справку по объектам и никакого решения не нашел.
Прошу Вашей помощи!
P.S. Объекты типа Text, Rectangle и TrendLine
А вы проверьте что вам вернут эти строки:
string obj_name2=ObjectName(0,0);
А вы проверьте что вам вернут эти строки:
string obj_name2=ObjectName(0,0);
Ответ не верный.
obj_name1 - возвращает последний элемент в массиве объектов но не последний элемент на графике
obj_name2 - возвращает просто первый графический объект.
Ответ не верный.
obj_name1 - возвращает последний элемент в массиве объектов но не последний элемент на графике
obj_name2 - возвращает просто первый графический объект.
А ChartID, переданный в функцию как 0 - для текущего графика - разве не выбирает именно из текущего графика? Экспериментируйте сами тогда.
Причём тут "ответ не верный"? Вы меня экзаменуете что-ли?
Так я вам скажу - я очень легко нахожу нужные мне объекты на любом графике.
Вот и вы поищите.
А ChartID, переданный в функцию как 0 - для текущего графика - разве не выбирает именно из текущего графика? Экспериментируйте сами тогда.
Причём тут "ответ не верный"? Вы меня экзаменуете что-ли?
Так я вам скажу - я очень легко нахожу нужные мне объекты на любом графике.
Вот и вы поищите.
Вы наверное не поняли вопроса, а так же ответа! Попробую еще раз объяснить...
К примеру на графике уже лежит 10 объектов и считать мы их можем легко через ObjectsTotal() по порядковому номеру. Проблема в другом... При добавлении нового объекта он никак не будет 11-ым! он может быть 3,4,5,6,7, и т.д.... но не более чем ObjectsTotal(). Как определить индекс нового объекта?
Это не экзамен = это просто вопрос, и если Вы отвечаете неверно - то я так Вам и отвечаю - что ответ не верный.
Или Вы считаете что Ваш ответ верный?
Вы наверное не поняли вопроса, а так же ответа! Попробую еще раз объяснить...
К примеру на графике уже лежит 10 объектов и считать мы их можем легко через ObjectsTotal() по порядковому номеру. Проблема в другом... При добавлении нового объекта он никак не будет 11-ым! он может быть 3,4,5,6,7, и т.д.... но не более чем ObjectsTotal(). Как определить индекс нового объекта?
Это не экзамен = это просто вопрос, и если Вы отвечаете неверно - то я так Вам и отвечаю - что ответ не верный.
Или Вы считаете что Ваш ответ верный?
Я вам не давал готового решения... Я просто предложил вам проверить что выдадут предложенные строки. Это не был ответ на ваш вопрос.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Здравствуйте! Как узнать имя последнего созданного объекта. Сначала я подумал отслеживать через функцию которая возвращает общее кол-во объектов на графике ObjectsTotal() и при изменении общего кол-ва обьектов на графике просто обращаться к последнему объекту через общее кол-во ;
x=0;
y=ObjectsTotal();
if (y>x) {
Comment ("Имя нового обьекта ", ObjectName(y));
x=y;
}
Но! Общее кол-во обьектов не совпадает с индексом последнего добавленного объекта на графике,(MQL их сортирует по своему!)
Т.е. получается что я вижу что кол-во объектов увеличилось - но я не могу увидеть какой именно объект был добавлен на график .
Пересмотрел справку по объектам и никакого решения не нашел.
Прошу Вашей помощи!
P.S. Объекты типа Text, Rectangle и TrendLine