К сожалению не нашел в этой статье ответа на свой вопрос. Может здесь кто-нить подскажет:
Как построить графический объект по имеющимся координатам - это понятно. А как сделать обратное - получить координаты точек уже нанесенного вручную объекта? И, скажем, вывести их в файл .csv?
К сожалению не нашел в этой статье ответа на свой вопрос. Может здесь кто-нить подскажет:
Как построить графический объект по имеющимся координатам - это понятно. А как сделать обратное - получить координаты точек уже нанесенного вручную объекта? И, скажем, вывести их в файл .csv?
Делаем цикл с 0 по ObjectsTotal() - берем имя объекта через ObjectName(). В том же цикле через ObjectType() определяем тип объекта и в зависимости от типа берем параметры через ObjectGet().
Делаем цикл с 0 по ObjectsTotal() - берем имя объекта через ObjectName(). В том же цикле через ObjectType() определяем тип объекта и в зависимости от типа берем параметры через ObjectGet().
Я уже пробовал через ObjectGet(). Просто возвращает целочисленное значение идентификатора свойств 0, 1, 2 и т.д. Мне же нужна именно ценовая и временная координата объекта. Не пойму как её получить?
Вот пример простого скрипта который по-моему мнению должен был выводить на экран дату установленной вертикальной линии. Но выводит просто значение идентификатора свойств 0.
int start()
{
//-------------------
ObjectCreate("Линия", OBJ_VLINE, 0, D'2007.11.09', 0);
ObjectSet("Линия", OBJPROP_COLOR, DeepSkyBlue);
ObjectGet ("Линия", OBJPROP_TIME1);
Alert ("Дата ", OBJPROP_TIME1);
//----
return(0);
}
//+------------------------------------------------------------------+
Вот пример простого скрипта который по-моему мнению должен был выводить на экран дату установленной вертикальной линии. Но выводит просто значение идентификатора свойств 0.
int start()
{
//-------------------
ObjectCreate("Линия", OBJ_VLINE, 0, D'2007.11.09', 0);
ObjectSet("Линия", OBJPROP_COLOR, DeepSkyBlue);
ObjectGet ("Линия", OBJPROP_TIME1);
Alert ("Дата ", OBJPROP_TIME1);
//----
return(0);
}
//+------------------------------------------------------------------+
datetime t=ObjectGet ("Линия", OBJPROP_TIME1);
Alert ("Дата "+TimeYear(t)+"."+TimeMonth(t)+"."+TimeDay(t) );
datetime t=ObjectGet ("Линия", OBJPROP_TIME1);
Alert ("Дата "+TimeYear(t)+"."+TimeMonth(t)+"."+TimeDay(t) );
И даже лучше - использовать https://docs.mql4.com/ru/convert/TimeToStr
Спасибо за подсказку! Действительно работает. Я понял свою ошибку. Я думал, что функция ObjectGet () возвращает значение идентификатора свойств, а не значение самого свойства - в данном случае даты.

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Опубликована статья Лень - двигатель прогресса. Полуавтоматическая разметка шаблона:
Среди множества приемов работы с графиками есть способ ручной разметки шаблона. На график наносятся линии тренда, каналы, уровни поддержки и сопротивления и т.д. Естественно, что для этой работы есть и специальные программы. Какой способ использовать, каждый решает для себя сам. В данной статье я предлагаю рассмотреть способы ручной разметки и затем автоматизировать некоторые элементы рутинного повторения некоторых действий по разметке.
Автор: Vladimir