Привязка объекта - страница 3

 
Taras Slobodyanik:

дергаться будет по иксу потому как бары двигаются дёрганно)
...по игреку всё нормально и при масштабировании клеится в нужное место и не деформируется

Теперь понятна ваша затея. Опишу решение, должно работать без дёрганий:

int x=0,y=0;

void OnTick() { 

// Расчёт видимых баров
 int BarsCount = WindowBarsPerChart()+1;
 int FirstBar = WindowFirstVisibleBar();
 int LastBar = FirstBar-BarsCount+1;
  if(LastBar < 0) {
    LastBar = 0;
    BarsCount = FirstBar+1;
  }

 if(LastBar==0) {
   SetText(0,"PRname1", ...); // Объект к цене и времени
   ChartTimePriceToXY(0, 0, ObjectGetInteger(0,"PRname1",OBJPROP_TIME), ObjectGetDouble(0, "PRname1", OBJPROP_PRICE,0), x, y);
  } else {
   SetLabel(0,"PRname2", x, y, ...); // По координатам 
 }

}

Смысл такой: пока есть видимый бар на графике, он будет под номером "0", то привязка идёт к цене и времени, и там-же работает функция, которая записывает значение в переменные "х" и "y" координат, в которых сейчас находится объект.

Если идёт прокрутка графика, тогда нулевой бар уже не под номером "0"  , а больше нуля, и в этот момент начинается привязка по OBJ_LABEL, только нужны разные объекты лейбл и текст, но примерно внешне схожие.

Как-то так.

 
Taras Slobodyanik:

дергаться будет по иксу потому как бары двигаются дёрганно)
...по игреку всё нормально и при масштабировании клеится в нужное место и не деформируется

Надо использовать события чарта и таймер. По событию чарта скрыть надписи, затем по таймеру включать видимость не раньше, чем какой-то время от последнего события чарта.
Причина обращения: