Активный, в данный момент график.

 
Есть индикатор на каждом графике. Нужно определить какой из графиков на данный момент активный (вроде аналога из WinAPI GetActiveWindow)
 
barabashkakvn:
Есть индикатор на каждом графике. Нужно определить какой из графиков на данный момент активный (вроде аналога из WinAPI GetActiveWindow)

А если попробовать вот так? Из хелпа не очень ясно, что означают параметры, я не игрался.

CHART_FOREGROUND Ценовой график на переднем плане

CHART_BRING_TO_TOP Показ графика поверх всех других
 

long  ChartGetInteger(
   chart_id,           // идентификатор графика
   CHART_BRING_TO_TOP, // идентификатор свойства
   0                   // номер подокна, если требуется
   );
 
VDev:

А если попробовать вот так? Из хелпа не очень ясно, что означают параметры, я не игрался.

CHART_FOREGROUND Ценовой график на переднем плане

CHART_BRING_TO_TOP Показ графика поверх всех других
 

С помощью этого свойства можно организовать переключение графиков: Переключение графиков, мне же нужно определить, какой график в данный момент активный.
 
barabashkakvn:
С помощью этого свойства можно организовать переключение графиков: Переключение графиков, мне же нужно определить, какой график в данный момент активный.
Используйте CHART_BRING_TO_TOP, были правки по просьбам пользователей, это свойство теперь можно читать.
 
barabashkakvn:
С помощью этого свойства можно организовать переключение графиков: Переключение графиков, мне же нужно определить, какой график в данный момент активный.
Файлы:
chart.ex4  4 kb
 
pako:
Это что за *.ex4? Тут форум, а не Маркет.
 
antt:
Используйте CHART_BRING_TO_TOP, были правки по просьбам пользователей, это свойство теперь можно читать.

Спасибо за подсказку. С помощью этого кода можно определить какой график в данный момент активный:

//+------------------------------------------------------------------+
//|                                      CHART_BRING_TO_TOP(GET).mq5 |
//|                              Copyright © 2015, Vladimir Karputov |
//|                                           http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2015, Vladimir Karputov"
#property link      "http://wmua.ru/slesar/"
#property version   "1.01"
#property description "Determine the active chart"
//+------------------------------------------------------------------+
//| Determine the active chart                                       |
//| Определяем активный график                                       |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   EventSetTimer(3);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnTimer()
  {
//Print(__FUNCTION__);
//--- variables for chart ID
//--- переменные для идентификаторов графиков
   long currChart,prevChart=ChartFirst();
   bool var=false;
   int i=0,limit=100;
   while(i<limit)
      // We have certainly not more than 100 open charts
      // у нас наверняка не больше 100 открытых графиков
     {
      var=ChartGetInteger(prevChart,CHART_BRING_TO_TOP,0); // Get property CHART_BRING_TO_TOP
                                                           // получаем свойство CHART_BRING_TO_TOP
      if(var) // This vhart active? // Этот график активный?
        {
         string name=ChartSymbol(prevChart);
         string text="Chart "+name+" is active!";
         Print(text);
        }
      currChart=ChartNext(prevChart);  // Get the new chart ID by using the previous chart ID
                                       // на основании предыдущего получим новый график
      if(currChart<0) break;           // Have reached the end of the chart list
                                       // достигли конца списка графиков
      prevChart=currChart;             // let's save the current chart ID for the ChartNext()
                                       // запомним идентификатор текущего графика для ChartNext()
      i++;                             // Do not forget to increase the counter
                                       // не забудем увеличить счетчик
     }
  }
//+------------------------------------------------------------------+


Этот код работает и MQL4 (нужно только расширение сменить на *.mq4). 

Выложу в кодобазу. 

 
Спасибо за идею и ее реализацию. Вот только не пойму, где это может понадобиться? Какие точки приложения? 
 
yakor1988:
Спасибо за идею и ее реализацию. Вот только не пойму, где это может понадобиться? Какие точки приложения? 
В любой стратегии, где нужно знать какой график в данный момент активный.
 
Владимир, а можно с помощью этого механизма выявить имена всех работающих советников в терминале?
 
denkir:
Владимир, а можно с помощью этого механизма выявить имена всех работающих советников в терминале?
По-моему нельзя. По крайней мере я не знаю функция, которая возвращает имя советника выполняющегося на графике.
Причина обращения: