Создайте OBJ_LABEL с текстом, закрепленным справа от изображения.

 

Здравствуйте, я создал функцию безубыточности и разместил горизонтальную линию, обозначающую уровни безубыточности. Однако я хотел бы разместить объект с привязкой к цене и справа написано «безубыток 1», равное прикрепленному изображению. Я уже сделал несколько попыток, но не смог. Кто может мне с этим помочь, пожалуйста.


Мой код безубыточной горизонтальной линии:

ObjectCreate(0,"BK1",OBJ_HLINE, 0, bars[0].time, PriceOpen+ NormalizeDouble(BK1_Distancia*_Point, _Digits));
ObjectSetInteger(0,"BK1",OBJPROP_COLOR,clrAqua); 
ObjectSetInteger(0,"BK1",OBJPROP_STYLE, STYLE_DASHDOT);
ObjectSetInteger(0,"BK1",OBJPROP_BACK, true);


Я попытался создать объект, подобный приведенному ниже, но не знаю, как привязать его к цене. Я сделал несколько попыток, но безуспешно.

         string teste = "Teste";
         ObjectCreate(0, teste, OBJ_RECTANGLE_LABEL, 0, 0, 0);
         ObjectSetInteger(0, teste, OBJPROP_XDISTANCE, 200);   // Distancia esquerda
         ObjectSetInteger(0, teste, OBJPROP_YDISTANCE, 207);  // Distancia baixo
         ObjectSetInteger(0, teste, OBJPROP_XSIZE, 184);      // Largura
         ObjectSetInteger(0, teste, OBJPROP_YSIZE, 22);      // Altura
         ObjectSetInteger(0, teste, OBJPROP_BGCOLOR, clrRed);
         ObjectSetInteger(0, teste, OBJPROP_BORDER_TYPE, BORDER_FLAT);
         ObjectSetInteger(0, teste, OBJPROP_COLOR,clrRed);
         ObjectSetInteger(0, teste, OBJPROP_CORNER, CORNER_RIGHT_LOWER); 
Файлы:
img.jpg  36 kb
 
Rafael Magalhães:

Здравствуйте, я создал функцию безубыточности и разместил горизонтальную линию, обозначающую уровни безубыточности. Однако я хотел бы разместить объект с привязкой к цене и справа написано «безубыток 1», равное прикрепленному изображению. Я уже сделал несколько попыток, но не смог. Кто может мне с этим помочь, пожалуйста.


Мой код безубыточной горизонтальной линии:


Я попытался создать объект, подобный приведенному ниже, но не знаю, как привязать его к цене. Я сделал несколько попыток, но безуспешно.

Для привязки к цене используйте объект OBJ_TEXT.

И непонятно, почему Вы пытаетесь задать цену при помощи свойств OBJPROP_XDISTANCE и  OBJPROP_YDISTANCE, которые указывают цены относительно графика в пикселах, а не в категории цены.

 
Привет, я попытался связать OBJ_RECTANGLE_LABEL с ценой, но это не сработало, потому что он принимает только оси X и Y. Я пытался разместить прямоугольник и имя справа от Take Profit и Stop Loss более 1 месяц.

Я попытался установить ссылку на цену, потому что хочу, чтобы прямоугольник следовал за ценой и оставался на той же линии, но его нужно заблокировать вправо, как показано на изображении выше.
 
Rafael Magalhães:
Привет, я попытался связать OBJ_RECTANGLE_LABEL с ценой, но это не сработало, потому что он принимает только оси X и Y. Я пытался разместить прямоугольник и имя справа от Take Profit и Stop Loss более 1 месяц.

Я попытался установить ссылку на цену, потому что хочу, чтобы прямоугольник следовал за ценой и оставался на той же линии, но его нужно заблокировать вправо, как показано на изображении выше.

Как такая надпись скажется на прибыльности советника? Или это курсовой проект?

 
Rafael Magalhães:
Привет, я попытался связать OBJ_RECTANGLE_LABEL с ценой, но это не сработало, потому что он принимает только оси X и Y. Я пытался разместить прямоугольник и имя справа от Take Profit и Stop Loss более 1 месяц.

Я попытался установить ссылку на цену, потому что хочу, чтобы прямоугольник следовал за ценой и оставался на той же линии, но его нужно заблокировать вправо, как показано на изображении выше.

ChartTimePriceToXYПреобразует координаты графика из представления время/цена в координаты по оси X и Y.

bool  ChartTimePriceToXY(
   long           chart_id,     // идентификатор графика
   int            sub_window,   // номер подокна
   datetime       time,         // время на графике
   double         price,        // цена на графике
   int&           x,            // координата X для времени на графике
   int&           y             // координата Y для цены на графике
   );

Очень надеюсь, что никакие пояснения не нужны…

Документация по MQL5: Операции с графиками / ChartTimePriceToXY
Документация по MQL5: Операции с графиками / ChartTimePriceToXY
  • www.mql5.com
ChartTimePriceToXY - Операции с графиками - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Rafael Magalhães:
Привет, я попытался связать OBJ_RECTANGLE_LABEL с ценой, но это не сработало, потому что он принимает только оси X и Y. Я пытался разместить прямоугольник и имя справа от Take Profit и Stop Loss более 1 месяц.

Я попытался установить ссылку на цену, потому что хочу, чтобы прямоугольник следовал за ценой и оставался на той же линии, но его нужно заблокировать вправо, как показано на изображении выше.

Тогда используйте OBJ_RECTANGLE. Для того, чтобы прямоугольник всегда оставался у правого края графика, отслеживайте любое изменение размеров графика через OnChartEvent(). В этом обработчике перемещайте объект по новым координатам, если положение объекта действительно нужно изменить.

Для определения времени начального и конечного баров графика достаточно обратиться к свойствам графика CHART_FIRST_VISIBLE_BAR и CHART_WIDTH_IN_BARS (функция ChartGetInteger()). Зная эти данные, легко рассчитать время.

 
Alexey Viktorov:

ChartTimePriceToXYПреобразует координаты графика из представления время/цена в координаты по оси X и Y.

Очень надеюсь, что никакие пояснения не нужны…

Я сделал это так:

      int x = 100;
      int y = 100;
      datetime time = tick.time;     double price = 116000;
      
      DrawText("TEXTO", 0, price, time, clrRed, 16, ANCHOR_RIGHT_UPPER, "exemplo", "calibri");
      
      ChartTimePriceToXY(0, 0, time, price, x, y);


Я создал OBJ_TEXT, а затем вставил функцию ChartTimePriceToXY, но объект не был перемещен. Я определенно неправильно использую. 


Я просто хотел бы добавить OBJ_TEXT и OBJ_RECTANGLE_LABEL справа, равные изображению. Мне трудно просто стыковаться справа, как я знаю создание объекта. Пожалуйста, помогите мне с этим.

img

 
Rafael Magalhães:

Здравствуйте, я создал функцию безубыточности и разместил горизонтальную линию, обозначающую уровни безубыточности. Однако я хотел бы разместить объект с привязкой к цене и справа написано «безубыток 1», равное прикрепленному изображению. Я уже сделал несколько попыток, но не смог. Кто может мне с этим помочь, пожалуйста.

Мой код безубыточной горизонтальной линии:

Я попытался создать объект, подобный приведенному ниже, но не знаю, как привязать его к цене. Я сделал несколько попыток, но безуспешно.

Это у Вас скрипт (выполняется 1 раз или в цикле) или советник (выполняется каждый тик или по таймеру)? Приведите весь код или хотя бы важную для отображения часть.

 
Rafael Magalhães:

Я сделал это так:

Я создал OBJ_TEXT, а затем вставил функцию ChartTimePriceToXY, но объект не был перемещен. Я определенно неправильно использую. 

Если используете OBJ_TEXT или OBJ_RECTANGLE, то ChartTimePriceToXY() не нужен.

 
Rafael Magalhães:

Я сделал это так:


Я создал OBJ_TEXT, а затем вставил функцию ChartTimePriceToXY, но объект не был перемещен. Я определенно неправильно использую. 


Я просто хотел бы добавить OBJ_TEXT и OBJ_RECTANGLE_LABEL справа, равные изображению. Мне трудно просто стыковаться справа, как я знаю создание объекта. Пожалуйста, помогите мне с этим.


Для этого лучше подойдёт OBJ_EDIT

Поле ввода имеет такие необходимые свойства: цвет текста, цвет фона, цвет границы и самое главное возможность редактировать, что превращает поле ввода в обычный лейбл с более расширенными возможностями. В вашем случае заменит два объекта…

Для координат надо в вышеуказанную функцию вставить цену безубыточности и время. Получить координаты в пикселях и их указать при создании OBJ_EDIT или OBJ_RECTANGLE_LABEL

Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_EDIT
Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_EDIT
  • www.mql5.com
OBJ_EDIT - Типы объектов - Константы объектов - Константы, перечисления и структуры - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Большое спасибо всем за попытку помочь мне. Я еще не смог привязаться к цене, но я буду продолжать искать, чтобы узнать, как это сделать.
Причина обращения: