Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Интересуют возможности MQL5? Загляни в документацию!
Dmitriy Epshteyn
6540
Dmitriy Epshteyn 2015.05.19 12:25 

Мы можем находить линии или объекты (и их цену), которые находятся на текущем графике (или подокне). А как найти объект (линию), которая находиться на соседнем графике, где установлен советник, который эти объекты рисует?

Vladimir Karputov
Модератор
45442
Vladimir Karputov 2015.05.19 14:17  
Dmitriy Epshteyn:

Мы можем находить линии или объекты (и их цену), которые находятся на текущем графике (или подокне). А как найти объект (линию), которая находиться на соседнем графике, где установлен советник, который эти объекты рисует?

Сначала перебором найти нужный график (ChartNext). Затем уже на нужном графике получить общий список объектов требуемого типа (ObjectsTotal) и перебором найти интересуемую линию (ObjectName). Останется получить свойства найденной линии.


Dmitriy Epshteyn
6540
Dmitriy Epshteyn 2015.05.19 15:56  
Karputov Vladimir:

Сначала перебором найти нужный график (ChartNext). Затем уже на нужном графике получить общий список объектов требуемого типа (ObjectsTotal) и перебором найти интересуемую линию (ObjectName). Останется получить свойства найденной линии.


     Разбираю ChartNext.

//--- переменные для идентификаторов графиков
   long currChart,prevChart=ChartFirst();
   int i=0,limit=100;
   Print("ChartFirst = ",ChartSymbol(prevChart)," ID = ",prevChart);
   while(i<limit)// у нас наверняка не больше 100 открытых графиков
     {
      currChart=ChartNext(prevChart); // на основании предыдущего получим новый график
      if(currChart<0) break;          // достигли конца списка графиков
      Print(i,ChartSymbol(currChart)," ID =",currChart);
      prevChart=currChart;// запомним идентификатор текущего графика для ChartNext()
      i++;// не забудем увеличить счетчик
     }


То есть нужно найти график, на котором стоит советник, но это проблематично.

А если мы знаем имя объекта (навожу мышку на графике, отображается имя), знаем, на каком символе он находиться, например на евро/баксе, можно сразу по имени найти?

Все равно возвращаемся к идентификации графиков.. Как они исчисляются? идентификатор 0 - это первый график или последний в терминале?   

Просмотрел справку, как исчисляются нумерация графиков, так и не нашел


Vitalie Postolache
12061
Vitalie Postolache 2015.05.19 17:20  
Dmitriy Epshteyn:

 

То есть нужно найти график, на котором стоит советник, но это проблематично.

А если мы знаем имя объекта (навожу мышку на графике, отображается имя), знаем, на каком символе он находиться, например на евро/баксе, можно сразу по имени найти?

Все равно возвращаемся к идентификации графиков.. Как они исчисляются? идентификатор 0 - это первый график или последний в терминале?   

Просмотрел справку, как исчисляются нумерация графиков, так и не нашел

График 0 это текущий график, на котором запущен скрипт. Остальным присваиваются целочисленные номера, но вовсе не инкрементом по порядку возрастания, то есть следующий будет не 1 а, скажем, что-то вроде 145648698.

В приведённом выше цикле надо объекты искать заданного типа и с заданным именем.

Vladimir Karputov
Модератор
45442
Vladimir Karputov 2015.05.19 17:25  

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

Скомпилируйте скрипт из примера (ChartNext) и увидите, как происходит перебор графиков.

santaktak
7
santaktak 2015.09.15 11:12  
Dmitriy Epshteyn:


Дмитрий, как связаться с вами? ящик не сменили?
Vladimir Karputov
Модератор
45442
Vladimir Karputov 2015.09.15 11:26  
santaktak:
Дмитрий, как связаться с вами? ящик не сменили?
Такие вопросы можно и через личные сообщения задавать :), а вот если есть вопросы по MQL5 - то смело задавайте здесь.
Nail Mukhamadeev
113
Nail Mukhamadeev 2016.07.23 16:35  
Dmitriy Epshteyn:

     Разбираю ChartNext.


То есть нужно найти график, на котором стоит советник, но это проблематично.

А если мы знаем имя объекта (навожу мышку на графике, отображается имя), знаем, на каком символе он находиться, например на евро/баксе, можно сразу по имени найти?

Все равно возвращаемся к идентификации графиков.. Как они исчисляются? идентификатор 0 - это первый график или последний в терминале?   

Просмотрел справку, как исчисляются нумерация графиков, так и не нашел


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