Перемещение прямоульника - страница 2 12 Новый комментарий Vitaly Muzichenko 2017.11.16 12:25 #11 5211845: Хорошо, Ваша подсказка мне помогла. Не знаю на сколько грамотно я выполнил эту задачу, но по крайней мере одного результата я добился.мне пришлось двигать каждую сторону прямоугольника отдельной функцией ObjectMoveвот такой код: datetime time1 = Time[0]; double price1 = 1277; datetime time2 = Time[50]; double price2 = 1275; ObjectMove(current_chart_id,obj_name,0,time1,price1); ObjectMove(current_chart_id,obj_name,1,time2,price2);Может это можно выполнить как то одной строкой?Теперь осталось переместить ту сторону прямоугольника которая ориентированна на бар 0 Time[0]; на несколько свечей правее. Пытался написать Time[-10]; но как то не адекватно мой объект отреагировалТут подскажите тоже пожалуйста. Одной строкой =)ObjectMove(current_chart_id,obj_name,0,time1,price1); ObjectMove(current_chart_id,obj_name,1,time2,price2); Taras Slobodyanik 2017.11.16 12:29 #12 еще можно в четыре строки, через ObjectSet ) 5211845 2017.11.16 12:31 #13 Ihor Herasko: Можно, если написать функцию типа MoveRectangle.Нужно рассчитать время, которое соответствует nBarCount бару, находящемуся правее текущего бара:Благодарю Вас Игорь, с Вами приятно иметь дело. Вы помогли мне решить все мои вопросы. Вот, от куда, мне, не опытному "программисту" знать такие ньюансы. Мне, например из документации было это не понятно.В результате получил такую программку:#property indicator_chart_windowint start() { string obj_name="Rectangle"; long current_chart_id=ChartID();//---//--- //Точки привязки прямоугольника int nBarCount = 10; // datetime time1 = Time[0] + PeriodSeconds() * nBarCount; double price1 = 1279; // datetime time2 = Time[20]; double price2 = 1277.5; //создание прямоугольника ObjectCreate(current_chart_id,obj_name,OBJ_RECTANGLE,0,time1,price1,time2,price2); //передвижение прямоугольника ObjectMove(current_chart_id,obj_name,0,time1,price1); ObjectMove(current_chart_id,obj_name,1,time2,price2); return(0);С уважением,Александр Создание объектов Получение времени или цены Прикладное применение графических ресурсов poruchik 2017.11.16 13:04 #14 211845: Имею задачу перемещать прямоугольник на графике вместе с появлением очередного бара соответственно.Всем заранее спасибо.С уважением, АлександрИмеешь задачу - так выполняй=====задается размер коробки в барах, есть сдвиг влево.первый рис. в 14.58, второй уже после 15.00, виден сдвиг Файлы: TRIANGLES__Fibotron_3.mq4 7 kb 12 Новый комментарий
Хорошо, Ваша подсказка мне помогла. Не знаю на сколько грамотно я выполнил эту задачу, но по крайней мере одного результата я добился.
мне пришлось двигать каждую сторону прямоугольника отдельной функцией ObjectMove
вот такой код:
datetime time1 = Time[0];
double price1 = 1277;
datetime time2 = Time[50];
double price2 = 1275;
ObjectMove(current_chart_id,obj_name,0,time1,price1);
ObjectMove(current_chart_id,obj_name,1,time2,price2);
Может это можно выполнить как то одной строкой?
Теперь осталось переместить ту сторону прямоугольника которая ориентированна на бар 0 Time[0]; на несколько свечей правее. Пытался написать Time[-10]; но как то не адекватно мой объект отреагировал
Тут подскажите тоже пожалуйста.
Одной строкой =)
Можно, если написать функцию типа MoveRectangle.
Нужно рассчитать время, которое соответствует nBarCount бару, находящемуся правее текущего бара:
Благодарю Вас Игорь, с Вами приятно иметь дело. Вы помогли мне решить все мои вопросы.
Вот, от куда, мне, не опытному "программисту" знать такие ньюансы. Мне, например из документации было это не понятно.
В результате получил такую программку:
#property indicator_chart_window
int start()
{
string obj_name="Rectangle";
long current_chart_id=ChartID();
//---
//---
//Точки привязки прямоугольника
int nBarCount = 10;
//
datetime time1 = Time[0] + PeriodSeconds() * nBarCount;
double price1 = 1279;
//
datetime time2 = Time[20];
double price2 = 1277.5;
//создание прямоугольника
ObjectCreate(current_chart_id,obj_name,OBJ_RECTANGLE,0,time1,price1,time2,price2);
//передвижение прямоугольника
ObjectMove(current_chart_id,obj_name,0,time1,price1);
ObjectMove(current_chart_id,obj_name,1,time2,price2);
return(0);
С уважением,
Александр
Имею задачу перемещать прямоугольник на графике вместе с появлением очередного бара соответственно.
Всем заранее спасибо.
С уважением, Александр
Имеешь задачу - так выполняй
=====
задается размер коробки в барах, есть сдвиг влево.
первый рис. в 14.58, второй уже после 15.00, виден сдвиг