Группа "Стол заказов MQL"

Рейтинг 2146



РЕКОМЕНДУЮ



Как задать координаты прямоугольной метки?

Здравствуйте, подскажите пожалуйста
1) как задать координаты на выводе для Прямоугольной метки?
2) можно ли как то вывести сразу 2 прямоугольные метки(наложенных 1 на 1)? тобишь если мне нужно вывести 10 прямоугольника мне нужно 10 раз писать на выводе это?:
RectD1("L11");
RectD2("L12");
— и так
Задаю:

void RectD1(string name)
  {  
//--- создадим прямоугольную метку 
   ObjectCreate(0,name,OBJ_RECTANGLE_LABEL,0,0,0);
//--- установим координаты метки 
   ObjectSetInteger(0,name,OBJPROP_XDISTANCE,23);
   ObjectSetInteger(0,name,OBJPROP_YDISTANCE,60);
//--- установим толщину плоской границы
   ObjectSetInteger(0,name,OBJPROP_WIDTH,0); 
//--- установим размеры метки 
   ObjectSetInteger(0,name,OBJPROP_XSIZE,14);
   ObjectSetInteger(0,name,OBJPROP_YSIZE,50);
//--- установим цвет фона 
   ObjectSetInteger(0,name,OBJPROP_BGCOLOR,C'225,225,225');
//--- установим угол графика, относительно которого будут определяться координаты точки 
   ObjectSetInteger(0,name,OBJPROP_CORNER,0);
//--- отобразим на переднем (false) или заднем (true) плане 
   ObjectSetInteger(0,name,OBJPROP_BACK,false);
  }

void RectD2(string name)
  {  
//--- создадим прямоугольную метку 
   ObjectCreate(0,name,OBJ_RECTANGLE_LABEL,0,0,0);
//--- установим координаты метки 
   ObjectSetInteger(0,name,OBJPROP_XDISTANCE,23);
   ObjectSetInteger(0,name,OBJPROP_YDISTANCE,60);
//--- установим толщину плоской границы
   ObjectSetInteger(0,name,OBJPROP_WIDTH,0); 
//--- установим размеры метки 
   ObjectSetInteger(0,name,OBJPROP_XSIZE,14);
   ObjectSetInteger(0,name,OBJPROP_YSIZE,50);
//--- установим цвет фона 
   ObjectSetInteger(0,name,OBJPROP_BGCOLOR,C'225,225,225');
//--- установим угол графика, относительно которого будут определяться координаты точки 
   ObjectSetInteger(0,name,OBJPROP_CORNER,0);
//--- отобразим на переднем (false) или заднем (true) плане 
   ObjectSetInteger(0,name,OBJPROP_BACK,false);
  }
Вывожу так:
RectD1("L11");
RectD2("L12");
Спасибо
  • 0
  • Просмотров: 2266
  • 21 апреля 2018, 10:46
  • vebster
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

Вступите в группу "Стол заказов MQL", чтобы следить за обновлениями
ПРИСОЕДИНИТЬСЯ К ГРУППЕ
присоединиться
  Предыдущая запись в группе
Необычный заказ
Следующая запись в группе  
1 кнопка 3 разных действий
21 апреля 2018
21 апреля 2018

Брокер для ваших роботов, 15 лет на рынке

Комментарии (5)

+
0
Если объеденить 2 войд в 1, тогда вывожу так:
RectD1(""); 
но так же не могу поменять
avatar

  6  vebster Автор Сообщений: 205

  • 21 апреля 2018, 10:51
+
0
1) как задать координаты на выводе для Прямоугольной метки?
2) можно ли как то вывести сразу 2 прямоугольные метки(наложенных 1 на 1)? тобишь если мне нужно вывести 10 прямоугольника мне нужно 10 раз писать на выводе это?:
RectD1(«L11»);
RectD2(«L12»);





//+------------------------------------------------------------------+
//|                                                         Rect.mq4 |
//|                                              Copyright 2018, AM2 |
//|                                      http://www.forexsyatems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, AM2"
#property link      "http://www.forexsyatems.biz"
#property version   "1.00"
#property strict
#property indicator_chart_window
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   ObjectsDeleteAll(0,0,OBJ_RECTANGLE_LABEL);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void Rect(string name,int x,int y)
  {
   ObjectDelete(0,name);
//--- создадим прямоугольную метку 
   ObjectCreate(0,name,OBJ_RECTANGLE_LABEL,0,0,0);
//--- установим координаты метки 
   ObjectSetInteger(0,name,OBJPROP_XDISTANCE,x);
   ObjectSetInteger(0,name,OBJPROP_YDISTANCE,y);
//--- установим толщину плоской границы
   ObjectSetInteger(0,name,OBJPROP_WIDTH,0);
//--- установим размеры метки 
   ObjectSetInteger(0,name,OBJPROP_XSIZE,50);
   ObjectSetInteger(0,name,OBJPROP_YSIZE,20);
//--- установим цвет фона 
   ObjectSetInteger(0,name,OBJPROP_BGCOLOR,Red);
//--- установим угол графика, относительно которого будут определяться координаты точки 
   ObjectSetInteger(0,name,OBJPROP_CORNER,0);
//--- отобразим на переднем (false) или заднем (true) плане 
   ObjectSetInteger(0,name,OBJPROP_BACK,false);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---
   for(int i=1;i<10;i++) Rect("L"+(string)i,11,22*i);
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+

avatar

  35  AM2 Сообщений: 16256 - Андрей

  • 21 апреля 2018, 16:47
+
0
Спасибо, но если мне нужны разные значения прямоугольников, возможон ли задать разный размер каждому?
avatar

  6  vebster Автор Сообщений: 205

  • 21 апреля 2018, 17:47
+
0
аналогично :) 
avatar

  35  AM2 Сообщений: 16256 - Андрей

  • 21 апреля 2018, 17:54
+
0
Пожалуйста поясните, как можно сделать разные блоки, пожалуйста поясните как аналогично. Спасибо
avatar

  6  vebster Автор Сообщений: 205

  • 21 апреля 2018, 19:02

Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий