Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 952

 
A123272:
а вы код ошибки на срине не посмотрите. контакты fxssi есть и так, но они пишут что проблема в мт4.

Кто "они"? Кто такой "fxssi" ?

 
Здравствуйте. Рисую OBJ_RECTANGLE на основном графике. Но при скроле в историю, график то сужается то расширяется и OBJ_RECTANGLE становится то большим то маленьким и текст внутри OBJ_RECTANGLE  то уезжает за границы OBJ_RECTANGLE то приезжает обратно. Какие есть методы решения данной проблемы, что бы  OBJ_RECTANGLE был всегда одинакового размера и текст не уезжал за границы OBJ_RECTANGLE ?
 
Igor Kryuchkov:
Здравствуйте. Рисую OBJ_RECTANGLE на основном графике. Но при скроле в историю, график то сужается то расширяется и OBJ_RECTANGLE становится то большим то маленьким и текст внутри OBJ_RECTANGLE  то уезжает за границы OBJ_RECTANGLE то приезжает обратно. Какие есть методы решения данной проблемы, что бы  OBJ_RECTANGLE был всегда одинакового размера и текст не уезжал за границы OBJ_RECTANGLE ?
Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_RECTANGLE_LABEL
Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_RECTANGLE_LABEL
  • www.mql5.com
//| Создает прямоугольную метку                                      |              chart_ID=0,                              sub_window=0,                            x=0,                                     y=0,                                     width=50,                                height=18,                ...
 
Artyom Trishkin:

Вам нужно найти последний ордер, который был открыт. Узнать его тикет. Далее по списку имён объектов ищем вхождение подстроки с найденным тикетом последнего ордера в строке с именем объекта. Как только найдёте в имени объекта тикет последнего ордера - это нужный графический объект. Осталось извлечь из этого графического объекта то, что нужно.

int RisB() 
  {    
   for(int i=0; i<OrdersTotal(); i++)
     {
      if(OrderSelect(i,SELECT_BY_POS))
        {
         if(OrderSymbol()==Symbol() && OrderType()==OP_BUY)
           {
            int Tik=OrderTicket();
           }
        }
     }
   for(int no1=0; no1<ObjectsTotal(); no1++)
     {
      if(OrderTicket()==Tik)
        {
         string Ris=ObjectDescription("LOTB"+OrderTicket());
        }  } return(Ris);}

Что у меня не так? Как сделать чтобы рассматривал только открытые ордера? Этот код захватывает еще частично закрытые ордера что мне не нужно

 
Rustam Bikbulatov:

Как сделать чтобы рассматривал только открытые ордера? Этот код захватывает еще частично закрытые ордера что мне не нужно

Нужо использовать параметр MODE_TRADES:

OrderSelect(i,SELECT_BY_POS,MODE_TRADES);

MODE_TRADES - текущие ордера
MODE_HISTORY - исторические

 
Yevhenii Levchenko:

Нужо использовать параметр MODE_TRADES:

MODE_TRADES - текущие ордера
MODE_HISTORY - исторические

не вариант. от этого не зависит

 
Yevhenii Levchenko:

Нужо использовать параметр MODE_TRADES:

MODE_TRADES - текущие ордера
MODE_HISTORY - исторические

bool  OrderSelect( 
   int     index,            // индекс или тикет ордера 
   int     select,           // флаг способа выбора 
   int     pool=MODE_TRADES  // источник данных для выбора 
   );

pool=MODE_TRADES

[in]  Источник данных для выбора. Используется, когда параметр select равен SELECT_BY_POS. Mожет быть одной из следующих величин:

MODE_TRADES (по умолчанию) - ордер выбирается среди открытых и отложенных ордеров,
MODE_HISTORY - ордер выбирается среди закрытых и удаленных ордеров.


Совершенно не обязательно поскольку этот параметр установлен по умолчанию.

 
Artyom Trishkin:

У меня идет привязка обьекта OBJ_RECTANGLE по ценам и времени, а не по координатам.

 
Rustam Bikbulatov:

Что у меня не так? Как сделать чтобы рассматривал только открытые ордера? Этот код захватывает еще частично закрытые ордера что мне не нужно

В mql4 нет разделения на позиции и отложенные ордера. А тем более нет отсеивания позиций оставшихся от частичного закрытия. В комментарии ордера есть номер тикета от частичного закрытия которого он образован. Так вот по этому комментарию и надо отсеивать те которые не нужны.

 
Artyom Trishkin:

Мне нужно подрисовывать около каждого бара рамку OBJ_RECTANGLE, а OBJ_RECTANGLE_LABEL создан для оформления графического интерфейса. Нужно использовать OBJ_RECTANGLE, но как сделать что бы он не масштабировался?

Причина обращения: