Есть индикатор на каждом графике. Нужно определить какой из графиков на данный момент активный (вроде аналога из WinAPI GetActiveWindow)
- Дайте, пожалуйста, больше свободы по управлению окнами графиков
- Помогите склеить два советника в один
- Активация существующего графика, не активного в данный момент времени
barabashkakvn:
Есть индикатор на каждом графике. Нужно определить какой из графиков на данный момент активный (вроде аналога из WinAPI GetActiveWindow)
Есть индикатор на каждом графике. Нужно определить какой из графиков на данный момент активный (вроде аналога из 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, были правки по просьбам пользователей, это свойство теперь можно читать.
Спасибо за подсказку. С помощью этого кода можно определить какой график в данный момент активный:
//+------------------------------------------------------------------+ //| 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:
Владимир, а можно с помощью этого механизма выявить имена всех работающих советников в терминале?
По-моему нельзя. По крайней мере я не знаю функция, которая возвращает имя советника выполняющегося на графике.
Владимир, а можно с помощью этого механизма выявить имена всех работающих советников в терминале?
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь