Перемещение прямоульника - страница 2

 
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);
 
еще можно в четыре строки, через ObjectSet )
 
Ihor Herasko:

Можно, если написать функцию типа 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);


С уважением,

Александр

 
211845:

Имею задачу перемещать прямоугольник на графике вместе с появлением очередного бара соответственно.

Всем заранее спасибо.

С уважением, Александр

Имеешь задачу - так выполняй

=====

задается размер коробки в барах, есть сдвиг влево.

первый рис. в 14.58, второй уже после 15.00, виден сдвиг

Файлы: