Статья: Лень - двигатель прогресса. Полуавтоматическая разметка шаблона

 

Опубликована статья Лень - двигатель прогресса. Полуавтоматическая разметка шаблона:

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


Автор: Vladimir

 

К сожалению не нашел в этой статье ответа на свой вопрос. Может здесь кто-нить подскажет:

Как построить графический объект по имеющимся координатам - это понятно. А как сделать обратное - получить координаты точек уже нанесенного вручную объекта? И, скажем, вывести их в файл .csv?

 
Vinsent_Vega писал (а) >>

К сожалению не нашел в этой статье ответа на свой вопрос. Может здесь кто-нить подскажет:

Как построить графический объект по имеющимся координатам - это понятно. А как сделать обратное - получить координаты точек уже нанесенного вручную объекта? И, скажем, вывести их в файл .csv?

Делаем цикл с 0 по ObjectsTotal() - берем имя объекта через ObjectName(). В том же цикле через ObjectType() определяем тип объекта и в зависимости от типа берем параметры через ObjectGet().

 
Itso писал (а) >>

Делаем цикл с 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);
}
//+------------------------------------------------------------------+

 
Vinsent_Vega писал (а) >>

Вот пример простого скрипта который по-моему мнению должен был выводить на экран дату установленной вертикальной линии. Но выводит просто значение идентификатора свойств 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) );

 
StatBars писал (а) >>

datetime t=ObjectGet ("Линия", OBJPROP_TIME1);

Alert ("Дата "+TimeYear(t)+"."+TimeMonth(t)+"."+TimeDay(t) );

И даже лучше - использовать https://docs.mql4.com/ru/convert/TimeToStr

 

Спасибо за подсказку! Действительно работает. Я понял свою ошибку. Я думал, что функция ObjectGet () возвращает значение идентификатора свойств, а не значение самого свойства - в данном случае даты.

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