Скачать MetaTrader 5

Получение данных линий, которые расположены на соседнем графике.

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

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

Vladimir Karputov
Модератор
58574
Vladimir Karputov  
Dmitriy Epshteyn:

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

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


Dmitriy Epshteyn
7488
Dmitriy Epshteyn  
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
12429
Vitalie Postolache  
Dmitriy Epshteyn:

 

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

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

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

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

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

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

Vladimir Karputov
Модератор
58574
Vladimir Karputov  

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

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

santaktak
7
santaktak  
Dmitriy Epshteyn:


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

     Разбираю ChartNext.


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

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

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

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


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