Скачать MetaTrader 5

Как в скрипте или роботе (советнике), запущенном на активном графике, нарисовать объект на неактивном графике ?!

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Управляй агентами в профиле. Это просто!
L_E_O
714
L_E_O 2012.05.20 07:10 

Все объекты рисуются на активном графике.

Если робот мультивалютный, то для контроля необходимо рисовать объекты и на других, неактивных вкладках (графиках).

Подскажите как это сделать ?!

Александр
1081
Александр 2012.05.20 07:24  
Самый простой способ - это сделать неактивное окно активным, эмулировать нажатие клавиш, по которым будет запускаться скрипт и строить на графике, что надо. Параметры в скрипт передавать можно через глобальные переменные.
Andrey F. Zelinsky
31364
Andrey F. Zelinsky 2012.05.20 07:49  

LEOK:

Все объекты рисуются на активном графике.

Если робот мультивалютный, то для контроля необходимо рисовать объекты и на других, неактивных вкладках (графиках).

Подскажите как это сделать ?!

А параметр "Индекс окна, в которое будет добавлен объект" в https://docs.mql4.com/ru/objects/ObjectCreate не пробовали задавать?

Рустам
3597
Рустам 2012.05.20 07:52  
abolk:
А параметр "Индекс окна, в которое будет добавлен объект" в https://docs.mql4.com/ru/objects/ObjectCreate не пробовали задавать?

На четверке не получится, рисуем только в родном окне, и его подокнах. так что все равно какую то софтину на этом окне запускать прийдется.
L_E_O
714
L_E_O 2012.05.20 08:12  
abolk:

А параметр "Индекс окна, в которое будет добавлен объект" в https://docs.mql4.com/ru/objects/ObjectCreate не пробовали задавать?


Это не прокатит. Там номер окна имеет другое смысловое значение !
Рустам
3597
Рустам 2012.05.20 08:16  
Отвечая на ваш вопрос прямо - никак.
L_E_O
714
L_E_O 2012.05.20 08:20  
FAQ:

На четверке не получится, рисуем только в родном окне, и его подокнах. так что все равно какую то софтину на этом окне запускать прийдется.


Т.е. переходим в программе по <Сtrl>+<Tab> по вкладкам:

	int delay  = 10;
	keybd_event (0x11, 0, 0, 0); Sleep (delay); // Ctrl
        keybd_event (0x09, 0, 0, 0); Sleep (delay); // Tab
        keybd_event (0x11, 0, 2, 0); Sleep (delay);
        keybd_event (0x09, 0, 2, 0); Sleep (delay);

и запускаем необходимую "софтину".


Так, примерно ?

Aleksander
1673
Aleksander 2012.05.20 08:48  
LEOK:

Все объекты рисуются на активном графике.

Если робот мультивалютный, то для контроля необходимо рисовать объекты и на других, неактивных вкладках (графиках).

Подскажите как это сделать ?!

ну через одно место возможно и так попробовать:

на нужных тебе графиках запускаешь индикатор№1 - тот который рисует что тебе надо

на активный график ставишь ещё и индикатор №2 - который рассчитывает необходимые значения для рисования и загоняет их в Глобальные переменные - откуда инд№1 считают их и нарисуют что надо


во как :)

(ЗЫ - инд№1 может совмещать в себя и №2)

Рустам
3597
Рустам 2012.05.20 09:30  
LEOK:


Т.е. переходим в программе по <Сtrl>+<Tab> по вкладкам:

и запускаем необходимую "софтину".


Так, примерно ?


Для этого надо выяснить сначала, можно ли запустить другую софтину при помощи винапи на чужом окне, я этим вопросом не задавался.

Но если есть предварительно запущенная софтинка то передавая ей нужные данные, она будет очень весело рисовать в своем окне, даже и не активном. просто если оно скрыто, то обновление, и соответственно прорисовка будет произведена после его показа.

o_o
Модератор
23694
o_o 2012.05.20 10:12  
LEOK:


Т.е. переходим в программе по <Сtrl>+<Tab> по вкладкам:

и запускаем необходимую "софтину".


Так, примерно ?

Ctrl+Tab немного залипает. Может проскочить сразу несколько окон.

Лучше явно проходить по ним через FindWindow и отображать каждое окно по очереди.

L_E_O
714
L_E_O 2012.05.20 14:59  
sergeev:

Ctrl+Tab немного залипает. Может проскочить сразу несколько окон.

Лучше явно проходить по ним через FindWindow и отображать каждое окно по очереди.


Спасибо за полезную добавку, хотя наверно, можно поставить Sleep(100) перед каждым переключением, чтоб не залипало ?!
12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий