вопрос открыт!(
Какой вы настойчивый :-)
.
Итак.
Есть функция, EnumChildWindows. Использовать ее из mql нельзя,
т.к. параметром функции является указатель на функцию.
.
Начинаете искать от окошка десктопа (NULL). Находите окошко МетаТрейдера.
Чтобы зацепить именно то окошко, какое надо, можно попользоваться GetWindowThreadProcessId.
Посылаете окошку метатрейдера сообщение WM_MDIGETACTIVE.
Если я не ошибаюсь, модальные окошки не ложатся в MDI.
Оно дает вам активный график.
.
Дальше - все элементарно. Осталось достать title окошка.
Строчечки между процессами не прокидываются, но вам повезло! :-)
Значит, не надо вешать keyboard hook / делать code inject.
Ваша dll будет в том же процессе, что метатрейдер.
Тупо зовем GetWindowText и сплитим строчку "EURUSD,H1" по запятой.
GlobalVariableSet(Symbol(),WindowHandle(Symbol(),NULL));
Можно сунуть строчку christmas'а в скрипт -
и когда открываете новый график - кидайте этот скрипт на новое окно.
А советник пусть ищет переменные с именем символов.
Найдет - а там виндовый хэндл окошка! 8-)
Можно сунуть строчку christmas'а в скрипт -
и когда открываете новый график - кидайте этот скрипт на новое окно.
А советник пусть ищет переменные с именем символов.
Найдет - а там виндовый хэндл окошка! 8-)
эту строчку можно поместить в индикатор
а в советнике можно например сделать функцию закачки котировок по разным ТФ
//+------------------------------------------------------------------+ void UpLoad() { string TimeFrames[]={"10080","1440","240","60","15","5"}; for (int TF=0; TF<6; TF++) for (int win=0; win<GlobalVariablesTotal(); win++) { int hwnd = GlobalVariableGet(GlobalVariableName(win)); hwnd = GetDlgItem(hwnd, 0x45A); SetWindowTextA(hwnd, TimeFrames[TF]); PostMessageA(hwnd, WM_KEYDOWN, VK_RETURN, 0); PostMessageA(hwnd, WM_COMMAND, 33324, 0); Sleep(500); PostMessageA(hwnd, WM_COMMAND, 33324, 0); Sleep(500); } } //+------------------------------------------------------------------+
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
как програмно(MQL) определить активное окно инструмента?
если к примеру активно окно евро/дол то на вопрос советника(который присоеденён к дол/франк) какой инструмент активен,
получаем ответ "EURUSD" !?