через кликер по кнопкам? найти id окон-кнопок, сгенерировать событие нажатия. Это в теории, на практике не делал. Погуглите autocliсker, некоторые используют для имитации ручной торговли
Слишком много подводных камней, т.к. кнопки в терминале может и не быть, окно нужно искать (задержки).
Я хочу сделать вот как. Например у меня есть советник, он подписывается на событие внешней dll/приложения, формирует обработчик события у себя на стороне. Приложение запускает событие, на советнике событие отрабатывается.
И в чём проблема? Передай значение переменной из dll в советник, а в советнике проверяй значение этой переменной. Изменение значения переменной и есть событие.
И в чём проблема? Передай значение переменной из dll в советник, а в советнике проверяй значение этой переменной. Изменение значения переменной и есть событие.
Это Не событийная модель. Другими словами мне в цикле нужно проверять переменную. Нужна подписка на событие, через указатели
Это Не событийная модель. Другими словами мне в цикле нужно проверять переменную. Нужна подписка на событие, через указатели
Указателей в МТ4/5 нет, есть дескрипторы а-ля CButton * btn, просто синтаксис, как у указателей.
Что такое "событие в dll", проясните плз. Я для МТ4/5 много разных dll писал, давайте уточним понятие.
Я бы сделал так - в dll делаем функцию, которая вызывается из MQL. Исполняемый код функции содержит семафор. Как только код доходит до семафора, от останавливается. Вызывающая программа пишет данные в расшаренные переменные dll и сбрасывает семафор. Код продолжает работу, читает эти переменные и возвращает из в МQL.
Минус в том, что советник спит, пока не поступит внешняя команда. Но иначе никак с таким подходом.
Можно попробовать кидать оконные сообщения, но я такого не пробовал.
Указателей в МТ4/5 нет, есть дескрипторы а-ля CButton * btn, просто синтаксис, как у указателей.
Что такое "событие в dll", проясните плз. Я для МТ4/5 много разных dll писал, давайте уточним понятие.
Я бы сделал так - в dll делаем функцию, которая вызывается из MQL. Исполняемый код функции содержит семафор. Как только код доходит до семафора, от останавливается. Вызывающая программа пишет данные в расшаренные переменные dll и сбрасывает семафор. Код продолжает работу, читает эти переменные и возвращает из в МQL.
Минус в том, что советник спит, пока не поступит внешняя команда. Но иначе никак с таким подходом.
Можно попробовать кидать оконные сообщения, но я такого не пробовал.
Я Вас понял. Спасибо за идею. Она подходит.
Добрый день!
Кто может дать дельный совет. Нужно открыть ордер в терминале МТ4 из стороннего приложения. Интересует событийная модель взаимодействия между терминалом и приложением.
Например, когда нажимаешь на кнопку, в терминале/советнике срабатывает событие (WinAPI) и открывается ордер.
Это Не событийная модель. Другими словами мне в цикле нужно проверять переменную. Нужна подписка на событие, через указатели
В общем-то я не совсем точно выразился. В вопросе звучит не dll, а стороннее приложение и нажатие кнопки, как я понял в этом приложении... Так вот нажатие кнопки это событие? Безусловно... Это событие меняет значение переменной в советнике... Передано событие? Я думаю да... Советник увидев изменение значения переменной отреагировал на это... Отреагировал на событие? Я думаю да...
Можно-ли эту модель назвать событийной? Я не знаю... Если нет, тады, ОЙ...
В общем-то я не совсем точно выразился. В вопросе звучит не dll, а стороннее приложение и нажатие кнопки, как я понял в этом приложении... Так вот нажатие кнопки это событие? Безусловно... Это событие меняет значение переменной в советнике... Передано событие? Я думаю да... Советник увидев изменение значения переменной отреагировал на это... Отреагировал на событие? Я думаю да...
Можно-ли эту модель назвать событийной? Я не знаю... Если нет, тады, ОЙ...
1. Нажитие кнопки - событие со стороны внешней проги, код MQL о нажатии не в курсе.
2. Передано событие? Нет, а как?
3. Советник увидев изменение значения переменной отреагировал на это - только опрашивая DLL по таймеру, нет способов из DLL дернуть код МТ4/5. Сейчас ввели в язык указатели на функции... ХЗ, может, там можно что-то намутить, не пробовал. В плюсах точно можно.
4. Посмотрите реализацию событий на C#, если не изучали. Там все просто, ключевые слова для поиска - C# delegate, C# event
1. Нажитие кнопки - событие со стороны внешней проги, код MQL о нажатии не в курсе.
2. Передано событие? Нет, а как?
3. Советник увидев изменение значения переменной отреагировал на это - только опрашивая DLL по таймеру, нет способов из DLL дернуть код МТ4/5. Сейчас ввели в язык указатели на функции... ХЗ, может, там можно что-то намутить, не пробовал. В плюсах точно можно.
4. Посмотрите реализацию событий на C#, если не изучали. Там все просто, ключевые слова для поиска - C# delegate, C# event
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Добрый день!
Кто может дать дельный совет. Нужно открыть ордер в терминале МТ4 из стороннего приложения. Интересует событийная модель взаимодействия между терминалом и приложением.
Например, когда нажимаешь на кнопку, в терминале/советнике срабатывает событие (WinAPI) и открывается ордер.