советник - разные вопросы - страница 26

 
Max Enrik:
Я уже пробовал, как показано ниже.
if(id==CHARTEVENT_OBJECT_DRAG && sparam=="#"+IntegerToString(OrderTicket())+"-TP")
  {
// here was my functions
  }

Я не получил ответа.

Просто прочитал это снова... вы пытаетесь запустить код, когда вы перетаскиваете линию TP, сгенерированную терминалом? Если да, то мне нужно посмотреть, сработает ли это, когда откроются рынки.
 
honest_knave:
Просто читаю это снова... вы пытаетесь вызвать код, когда перетаскиваете сгенерированную терминалом линию TP?

Нет, не пытается.

Он пытается переместить сделанную на заказ стелс-линию.

Он должен работать 24/7 и, если рынки закрыты, выдавать ошибку модификации, если код настроен на это, потому что я удалил эту часть по его просьбе в прошлый раз.

 

@honest_knave

Нет, я не хочу использовать терминал - сгенерированную линию TP. ( Терминальная линия TP должна следовать за пользовательским объектом HLine - я уже сделал это с вашей и г-на Марко помощью - спасибо большое еще раз )

---

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

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

void OnTick()
  {
   ObjectCreate(0,"Label",OBJ_LABEL,0,0,0);
   ObjectSetInteger(0,"Label",OBJPROP_COLOR,clrWhite);
   ObjectSetInteger(0,"Label",OBJPROP_XDISTANCE,20);
   ObjectSetInteger(0,"Label",OBJPROP_YDISTANCE,Bid); // of course this is not correct value for it - but I try Label object moves with bid line together

   /*
   I do not need Object Text why? Because it will disappear when I scrolls chart.
   I just need fixed OBJPROP_XDISTANCE = 20 | also my chart design starts from left margin x = 20

   I have a faith this Chart Operation can help me,
   but there is not example for how can I use this operation ( in MQL4 documentation - also I can't find it )
   ChartTimePriceToXY();
   */

  }

Еще раз прошу прощения за эту путаницу.

Заранее спасибо.

 

Нет, теперь вы пытаетесь заново создавать объект на каждом тике! Это приведет к ошибке 4200 на каждом тике объект уже существует.

Создайте объект один раз в OnInit или в отдельной фукнции и используйте функцию ObjectMove() для перемещения объекта.

 
Marco vd Heijden:

Нет, теперь вы пытаетесь заново создавать объект на каждом тике! Это приведет к ошибке 4200 на каждом тике объект уже существует.

Создайте объект один раз в OnInit или в отдельной фукнции и используйте функцию ObjectMove() для перемещения объекта.

Я не вижу в документации Obj_Label функции ObjectMove().
Можно ли использовать ObjectMove() для Obj_Label, пожалуйста?

 
Max Enrik:

Я не вижу в документации Obj_Label о ObjectMove().
Можно ли использовать ObjectMove() для Obj_Label, пожалуйста?

Нет. ObjectMove() предназначен для объектов, фиксированных по времени/цене, а не по x/y, как я полагаю (если только документация не нуждается в обновлении!).

Используйте два вызова ObjectSetInteger() с OBJPROP_XDISTANCE и OBJPROP_YDISTANCE

 

Спасибо за ваш комментарий.

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

Я действительно устал исследовать этот вопрос.

Спасибо!

 

Если вы не уверены, вы всегда можете попробовать, это единственный способ узнать, работает что-то или нет.

Если это не работает, всегда есть альтернатива OBJ_BUTTON OBJ_RECTANGLE

 
Max Enrik:

Спасибо за ваш комментарий.

Я уже спрашивал на других форумах, можно ли сделать так, чтобыObj_Label двигалась вместе с Bid Price Line?
Могу ли я преобразовать значение цены предложения в координату Y, пожалуйста?

Я действительно устал исследовать этот вопрос.

Спасибо!

Самое простое решение - использовать OBJPROP_TEXT в строке. Текст всегда будет находиться в левой части экрана, но перемещаться вверх и вниз с ценой.

В противном случае вам потребуется больше кода. Посмотрите на ChartTimePriceToXY() и ChartXYToTimePrice().

 
honest_knave:

Самое простое решение - использовать OBJPROP_TEXT в строке. Текст всегда будет находиться в левой части экрана, но перемещаться вверх и вниз с изменением цены.
В противном случае вам потребуется больше кода. Посмотрите на ChartTimePriceToXY() и ChartXYToTimePrice().

Г-н Марко уже опубликовал пример для ChartXYToTimePrice(), а затем я попробовал для Label Object, я не могу получить хороший результат, но это был потрясающий пример, который я сохраняю для себя - большое спасибо @Marco vd Heijden.

Поэтому я хотел бы спросить, могут ли оба ChartTimePriceToXY() и ChartXYToTimePrice() помочь мне в этом решении?
Если да, то где я могу изучить функции ChartTimePriceToXY() с примерами, пожалуйста?

Если я допустил ошибки в своем комментарии, пожалуйста, не вините меня, я устал искать решение этой проблемы.

Заранее спасибо.

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