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

 
Nerd Trader #:

why? Почему этого не происходит для зеленой линии? условия идентичные только инверсивные (price > Ask) для желтой и (price < Bid) для зеленой.

Вот зеленая и красные линии почему-то создаются только в одном экземпляре и не мерцают при перемещении курсора.

от нуля и выше?

Интересный момент...

Ты ищешь две линии

        if(ObjectFind("Buy Stop") == window || ObjectFind("not allowed") == window){

а удаляешь одну

          ObjectDelete(line_name);

Вопрос какую? Какое последнее имя у  "line_name"

 
Mihail Matkovskij #:

Дополнил сообщение. Протестируй свою функцию и мою при некорректном Chart ID и когда объект создан подокне. И посмотри, что твоя функция вернет и что верит моя.

Ты просто не в теме)


 
MakarFX #:
А если

что тогда?

Ошибка. А у тебя, true, почему-то!

 
Mihail Matkovskij #:

Ошибка. А у тебя, true, почему-то!

"-1" - объекта нет. Раз объекта нет - true
 
MakarFX #:

Ты просто не в теме)


Я привел то как должна выглядеть проверка существования объекта. И что моя функция не будет работать? Наоборот, она более универсальная. Если понадобиться работать с подокном, то она не заметит особой разницы.

 
Mihail Matkovskij #:

Я привел то как должна выглядеть проверка существования объекта. И что моя функция не будет работать? Наоборот, она более универсальная. Если понадобиться работать с подокном, то она не заметит особой разницы.

Повторю вопрос

А если
ObjectFind(chart, name)=-1

что тогда?

 
MakarFX #:
"-1" - объекта нет. Раз объекта нет - true

У тебя функция вернет true и при возникновении ошибки:

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

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

Mihail Matkovskij, 2021.12.06 12:38

Дополнил сообщение. Протестируй свою функцию и мою при некорректном Chart ID и когда объект создан в подокне. И посмотри, что твоя функция вернет и что вернет моя. И документацию внимательно прочитай. Все ссылки и цитата приведены выше.


 
  string name = "name";

  ObjectCreate(1, name, OBJ_HLINE, 1,0,0);

  Print(FindObject("name"));

  if (objectExist(0, "name")) Print("objectExist Find");
  else Print("objectExist Object not found.");

...

bool objectExist(const long _chartID, const string _name) { return(ObjectFind(_chartID, _name) >= 0); }

bool FindObject(string name)
  {
   if(ObjectFind(0,name)) return(false);
   return(true);
  }
Создаю не в главном окне, все равно true (но Макар написал для моей ситуации только для главного окна). Для objectExist понятно, там >= 0.


Если искать другой объект не "name" то вариант Макара вернёт false.
 
Mihail Matkovskij #:

Дополнил сообщение. Протестируй свою функцию и мою при некорректном Chart ID и когда объект создан в подокне. И посмотри, что твоя функция вернет и что вернет моя. И документацию внимательно прочитай. Все ссылки и цитата приведены выше.

Mihail Matkovskij #:

Я привел то как должна выглядеть проверка существования объекта. И что моя функция не будет работать? Наоборот, она более универсальная. Если понадобиться работать с подокном, то она не заметит особой разницы.


А если говорить об универсальности функции, то...

bool FindObject(string name,int win)
  {
   if(ObjectFind(0,name)!=win) return(false);
   return(true);
  }
 
MakarFX #:

Интересный момент...

Ты ищешь две линии

а удаляешь одну

Вопрос какую? Какое последнее имя у  "line_name"

То, которое по условию будет true
Причина обращения: