Обсуждение статьи "Использование AutoIt с MQL5"

 

Опубликована статья Использование AutoIt с MQL5:

В статье рассматривается создание скриптов для терминала MetraTrader 5 путем интеграции MQL5 с AutoIt. Я покажу, как автоматизировать различные задачи с помощью пользовательского интерфейса терминала, а также представлю класс, использующий библиотеку AutoItX.

AutoIt содержит инструмент AutoIt Window Info Tool для получения информации об окнах приложения.

Перемещая перекрестие (Finder Tool) по любой части целевого приложения, мы получаем сведения о свойствах каждого отдельного компонента. Эти компоненты называются элементами управления. В их число входят кнопки, выпадающие меню, вкладки и много других типов элементов управления для создания приложений. Каждый элемент управления связан с окном. Приложение может состоять из нескольких окон. Обычно есть главное окно, к которому прикрепляются дочерние окна. Если дочерние окна прикреплены к главному, все элементы управления, заключенные в дочерних окнах, становятся частью главного окна приложения. При использовании AutoIt для поиска элемента управления важно, с каким окном он связан – дочерним или главным.

На приведенной ниже gif-анимации мы видим, что перекрестие перемещается по разным областям MetaTrader 5. Обратите внимание на настройки Window Info Tool при выборе меню Options (параметры). Опции Freeze (заморозка), Always On Top (поверх всех окон) и Use Spy++ Control Detection Logic (использовать логику обнаружения управляющего элемента Spy++) включены.


Автор: Francis Dube

 

Подскажите, пожалуйста, как нажать кнопку, позволяющую включить/выключить автотрейдинг (Ctrl+E)? Должен ли я использовать `ALGOTRADECHECK_BUTTON` или `WINDOWTEXT_EA` или может быть что-то другое? Простите меня, если я был невнимателен, но кажется, что вы проверяете, что экспертам разрешено торговать, когда добавляете их на график (b.t.w. что, если другой эксперт уже там?), так что это может быть отдельный публичный метод для этого.

Спасибо за отличную работу!

 
Daniel Lagoshniak проверяете, что экспертам разрешено торговать, когда добавляете их на график (b.t.w. что, если другой эксперт уже там?), так что это может быть отдельный публичный метод для этого.

Спасибо за отличную работу!

ALGOTRADECHECK_BUTTON` и `WINDOWTEXT_EA` должны использоваться только для взаимодействия с диалогами советника. То, что вы пытаетесь сделать, не реализовано в данном классе. Но этого можно добиться, используя метод CAutoIt 'ControlSend() для отправки комбинации клавиш (Ctrl+E) в терминал, или можно выбрать кнопку на панели инструментов и эмулировать нажатие с помощью ControlLeftClick().

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

 

Код без комментариев... Не есть хорошо...

А так спасибо!

 

AutoIt - отличный инструмент, но имейте в виду, что последнее обновление было в марте 2018 года...

;)

 
Очень интересная и полезная статья. Спасибо автору!
 
А подскажите, пожалуйста, как задать третий параметр в этой функции int AU3_WinGetPos(string, string, LPRECT); и получить эти координаты?
 

в комплекте VS есть более полезный и овеянный разработчиками Microsoft spy

а AutoIt не является свободно-доступным ПО (он shareware), за него надо платить и непонятно как вообще пропустили его рекламную статью

 
Да, AutoIt это здорово, я на самом деле написал AutoMTF в Autoit
 

Есть ли способ установить цвет красного и синего в Market Watch на сплошной цвет, а не на градацию? Я использую Autoit для считывания цвета, но каждый раз, когда я перезапускаю торговое приложение, он меняется, что приводит к изменению цвета пикселей.

Мне также нужен способ прочитать прибыль каждой открытой позиции с помощью Autoit