Создание GUI для MQL в графическом режиме. - страница 14

 
Yuriy Asaulenko:
У меня внешняя ТС, мне не надо обратной связи GUI с терминалом.

То есть ты не используешь терминал? Торгуешь телепатически? 

 
Alexey Volchanskiy:

То есть ты не используешь терминал? Торгуешь телепатически? 

)) терминал - поставщик данных и. приемник-исполнитель заявок. Все. В нем нечего настраивать.
Уточню. Используются 2 МТ советника. Один - поставщик данных, второй - приемник-исполнитель заявок. Это дает еще один поток терминала.
Въехал наконец? Я-ж все это уже говорил.
 
Maxim Kuznetsov:

у меня честно говоря не возникало потребности цеплять формы к чартам.

просто чётко разделяю для себя - есть оперативная графика которая непосредственно связана с чартом (всякии линии, подписи, надписи и так далее), это естественно делается средствами MT

а есть GUI управления - настройки, отчёты, статистика. И они весьма большие и запихивать их внутрь чарта это преступление против пользователя :-)

поместить форму поверх чарта можно без смены родителя. просто тупо поместить сверху ;-) придётся конечно отнять форму от оконного менеджера и отслеживать изменение геометрии чарта и фокус.
Такой вот "закат солнца вручную" :-) Зато не лезешь в нутро MetaTrader и не навязываешь новых чилдов и хуков их окнам, то есть ведёшь себя прилично

да и любой GUI вызванный из DLL имеет пренеприятнейшую особенность - советники/индикаторы которые его вызывают, периодически от малейших чихов рестартуют. Что порождает переоткрытие форм и водопады мата..
Возможно давно анонсированные "сервисы" (или как их там назовут) будут лишены такого недостатка.

update/ про поместить форму - на график вывести RectLabel и в чарт-эвент отслеживать изменение кординат. При изменнии - поместить строго сверху свою форму :-) Немного танцев с бубном потребуется при смене вкладок, минимизации окна, чтобы свою форму вовремя спрятать

Не соглашусь. Если с помощью GUI открываются ордера, как в твоем же первом примере, то соответствующая форма должна принадлежать соответствующему графику. Вот к примеру у тебя открыто 5 графиков и из пяти запушены формы управления ордерами (не отчеты или настройки). Свободные 5 форм, "принадлежащие" разным чартам, будут путать и сбивать пользователей с толку. А когда перед глазами только та форма, которая принадлежит активному графику, то это уже другое дело.

 
Алексей Барбашин:

Не соглашусь. Если с помощью GUI открываются ордера, как в твоем же первом примере, то соответствующая форма должна принадлежать соответствующему графику. Вот к примеру у тебя открыто 5 графиков и из пяти запушены формы управления ордерами (не отчеты или настройки). Свободные 5 форм, "принадлежащие" разным чартам, будут путать и сбивать пользователей с толку. А когда перед глазами только та форма, которая принадлежит активному графику, то это уже другое дело.

к слову, там ещё таблица(дерево) ордеров, но это так просто пример...

у пользователей в основном бывает вопрос "как разместить графики/формы" по 3-м мониторам :-) Никаких вкладок во время торговли - должно быть видно всё нужное

 
Yuriy Asaulenko:
)) терминал - поставщик данных и. приемник-исполнитель заявок. Все. В нем нечего настраивать.
Уточню. Используются 2 МТ советника. Один - поставщик данных, второй - приемник-исполнитель заявок. Это дает еще один поток терминала.
Въехал наконец? Я-ж все это уже говорил.

Ты издеваешься или это такие приколы? Я 2 дня пытаюсь добиться ответа - через какой канал связи второй - приемник-исполнитель заявок получает эти заявки??? Может тебе в разведчики? Если и поймают, махнут рукой, плюнут и оставят в покое, все равно один тылдыбр...

 
Alexey Volchanskiy:

Ты издеваешься или это такие приколы? Я 2 дня пытаюсь добиться ответа - через какой канал связи второй - приемник-исполнитель заявок получает эти заявки??? Может тебе в разведчики? Если и поймают, махнут рукой, плюнут и оставят в покое, все равно один тылдыбр...

Алексей, я полагаю что схема следующая: на каждом чарте установлен советник, который отправляет данные в приложение. Это поставщики данных. На отдельном графике стоит один советник, который опрашивает приложение на наличие команд. Этот советник принимает заявки и исполняет их. В результате советники на самих чартах не занимаются загрузкой опросов. Отправили данные и продолжают работать в свое режиме. А отдельный советник занимается постоянным опросом.

Но в принципе не вижу необходимости в отдельном советнике. Опросом может заниматься индикатор, так как он будет в отдельном от советника потоке. А при выявлении заявки для данного чарта индикатор может послать событие, которое советник перехватит и исполнит.

 
Алексей Барбашин:

Алексей, я полагаю что схема следующая: на каждом чарте установлен советник, который отправляет данные в приложение. Это поставщики данных. На отдельном графике стоит один советник, который опрашивает приложение на наличие команд. Этот советник принимает заявки и исполняет их. В результате советники на самих чартах не занимаются загрузкой опросов. Отправили данные и продолжают работать в свое режиме. А отдельный советник занимается постоянным опросом.

Но в принципе не вижу необходимости в отдельном советнике. Опросом может заниматься индикатор, так как он будет в отдельном от советника потоке. А при выявлении заявки для данного чарта индикатор может послать событие, которое советник перехватит и исполнит.

Да мне фиолетово, как там у него разбито, на 5 советников или 100500. Я спрашивал про канал связи, ибо их может быть несколько типов. Повторюсь, я 10 лет назад делал на пайпах. В то время встроенных пайпов в mql не было, использовал нативную С++DLL. А весь робот был на шарпе. Команды от робота копились в буфере DLL, так как для скорости шли асинхронно. А советник MQL4 на каждом тике (таймера еще не было) обращался к DLL? передавал котировки и забирал команды. Все было мультивалютным, нахрен нужна куча чартов, я не понимаю.

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

 
Alexey Volchanskiy:

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

Блин. Вначале про ГУИ спрашивал - как общается. Ответил - никак, не надо это. Теперь, оказывается, ему надо как советники общаются.100 раз писал об этом.
Посмотри в моем блоге. Мы уже в личке все это обсуждали, и все, вроде, выяснили.
Хочешь получать нормальные ответы, задавай нормальные вопросы.) Научись, таки, формулировать.))
 
Yuriy Asaulenko:
Блин. Вначале про ГУИ спрашивал - как общается. Ответил - никак, не надо это. Теперь, оказывается, ему надо как советники общаются.100 раз писал об этом.
Посмотри в моем блоге. Мы уже в личке все это обсуждали, и все, вроде, выяснили.
Хочешь получать нормальные ответы, задавай нормальные вопросы.) Научись, таки, формулировать.))

Ты реально неспособен воспринимать вопросы. Как советники общаются, мне неинтересно. Все, закрываю тему, ибо бессмысленно.

 
Alexey Volchanskiy:

Да мне фиолетово, как там у него разбито, на 5 советников или 100500. Я спрашивал про канал связи, ибо их может быть несколько типов. Повторюсь, я 10 лет назад делал на пайпах. В то время встроенных пайпов в mql не было, использовал нативную С++DLL. А весь робот был на шарпе. Команды от робота копились в буфере DLL, так как для скорости шли асинхронно. А советник MQL4 на каждом тике (таймера еще не было) обращался к DLL? передавал котировки и забирал команды. Все было мультивалютным, нахрен нужна куча чартов, я не понимаю.

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

Заинтересовал "каждый тик" для мультивалютного советника. Что, на один чарт приходили события приходов тиков от многих инструментов? Или "каждый тик" здесь имеет смысл, отличный от общепринятого события, которое обрабатывается фукцией OnTick и сейчас в справке описывается как "генерируется только для экспертов при поступлении нового тика по символу, к графику которого прикреплен эксперт"?
Причина обращения: