Сделал библиотеку сервисных функций к МТ4, чтобы поменьше параметров в функциях было и коды команд не запоминать. Сделал самые основные.
По сути, это оболочки к WinAPI функциям.
#import "ServicesMT4.dll"//===================================================================================================================================================// 1. Функция закрывает указанное окно графика.void ServiceCloseChart(int hChart); // Системный дескриптор закрываемого окна графика.//===================================================================================================================================================// 2. Функция удаляет эксперт с указанного графика. В случае успеха функция возвращает TRUE, иначе - FALSE.bool ServiceDeleteExpert(int hChart); // Системный дескриптор окна графика, удаляемого эксперта.//===================================================================================================================================================// 3. Функция снимает выделения с графических объектов. В случае успеха функция возвращает TRUE, иначе - FALSE.bool ServiceDeselectObjects(int hChart); // Системный дескриптор окна графика, удаляемого эксперта.//===================================================================================================================================================// 4. Функция управляет диалоговым окном завершения скрипта и возвращает системный дескриптор диалогового окна завершения скрипта, если окно есть,// иначе - NULL. Скрипт работает только с русской и английской локализациями.int ServiceDialogScript(int bInstruction); // Команда для диалогового окна завершения скрипта: TRUE - завершить скрипт, FALSE - не завершать скрипт.//===================================================================================================================================================// 5. Функция включает или отключает эксперты, управляя кнопкой "Советники".void ServiceExpertEnabled();
//===================================================================================================================================================// 6. Функция управляет горячими клавишами терминала МТ4.void ServiceHotKeys(int ucKey1, // Горячая клавиша №1.int ucKey2); // Горячая клавиша №2.//===================================================================================================================================================// 7. Функция вызывает окно списка индикаторов.bool ServiceListIndicators(int hChart); // Системный дескриптор окна графика, где вызывается окно списка индикаторов.//===================================================================================================================================================// 8. Функция загружает на указанный график эксперт по его имени.void ServiceLoadExpert(int hChart, // Системный дескриптор окна графика, куда загружается эксперт.string szNameExpert); // Имя загружаемого эксперта.//===================================================================================================================================================// 9. Функция загружает на указанный график пользовательский индикатор по его имени.void ServiceLoadCustomIndicator(int hChart, // Системный дескриптор окна графика, куда загружается индикатор.string szNameIndicator); // Имя загружаемого индикатора.//===================================================================================================================================================//10. Функция загружает на указанный график скрипт по его имени.void ServiceLoadScript(int hChart, // Системный дескриптор окна графика, куда загружается скрипт.string szNameScript); // Имя загружаемого скрипта.//===================================================================================================================================================//11. Функция загружает на указанный график стандартный индикатор по его имени.void ServiceLoadStdIndicator(int hChart, // Системный дескриптор окна графика, куда загружается индикатор.string szNameIndicator); // Имя загружаемого индикатора.//===================================================================================================================================================//12. Функция отключает автопрокрутку графика.void ServiceNoAutoScroll(int hChart); // Системный дескриптор окна графика, где отключается автопрокрутка.//===================================================================================================================================================//13. Функция открывает окно графика символа, расположенного в строке nLine окна "Обзор рынка".void ServiceOpenChart(int nLine); // Номер строки в окне "Обзор рынка".//===================================================================================================================================================//14. Функция вызывает меню свойств эксперта. В случае успеха функция возвращает TRUE, иначе - FALSE.bool ServicePropertiesExpert(int hChart); // Системный дескриптор окна графика, где вызывается меню свойств эксперта.//===================================================================================================================================================//15. Функция пересканирования серверов. В случае успеха функция возвращает TRUE, иначе - FALSE.bool ServiceRescanServers();
//===================================================================================================================================================//16. Функция делает окна МТ4 и графика активным.void ServiceSetActiveChart(int hChart); // Системный дескриптор активируемого окна.//===================================================================================================================================================//17. Функция позиционирует график по левой границе на указанное время.void ServiceSetBar(int hChart, // Системный дескриптор окна графика, куда загружается индикатор.datetime lTime); // Номер бара у левой границы окна.//===================================================================================================================================================//18. Функция устанавливает указанный таймфрейм по его номеру на указанном графике. В случае успеха функция возвращает TRUE, иначе - FALSE.bool ServiceSetTimeframeByNumber(int hChart, // Системный дескриптор окна графика, где устанавливается ТФ.int nTimeFrame); // Номер устанавливаемого ТФ от 0 до 8.//===================================================================================================================================================//19. Функция устанавливает указанный таймфрейм по его периоду на указанном графике. В случае успеха функция возвращает TRUE, иначе - FALSE.bool ServiceSetTimeframeByPeriod(int hChart, // Системный дескриптор окна графика, где устанавливается ТФ.int nPeriod); // Период устанавливаемого ТФ: PERIOD_M1 1 1 минута;// PERIOD_M5 5 5 минут;// PERIOD_M15 15 15 минут;// PERIOD_M30 30 30 минут;// PERIOD_H1 60 1 час;// PERIOD_H4 240 4 часа;// PERIOD_D1 1440 1 день;// PERIOD_W1 10080 1 неделя;// PERIOD_MN1 43200 1 месяц.//===================================================================================================================================================//20. Функция устанавливает указанный таймфрейм по его имени на указанном графике. В случае успеха функция возвращает TRUE, иначе - FALSE.bool ServiceSetTimeframeByName(int hChart, // Системный дескриптор окна графика, где устанавливается ТФ.string sName); // Имя устанавливаемого ТФ: "M1" 1 минута;// "M5" 5 минут;// "M15" 15 минут;// "M30" 30 минут;// "H1" 1 час;// "H4" 4 часа;// "D1" 1 день;// "W1" 1 неделя;// "MN1" 1 месяц.//===================================================================================================================================================//21. Функция эммулирует тик для эксперта на указанном графике.void ServiceTickExpert(int hChart); // Системный дескриптор окна графика, для эмуляции тика для эксперта.//===================================================================================================================================================//22. Функция эммулирует тик для индикаторов на указанном графике.void ServiceTickIndicators(int hChart); // Системный дескриптор окна графика, для эмуляции тика для индикаторов.//===================================================================================================================================================//23. Функция меняет размер баров на графике.bool ServiceZoom(int hChart, // Системный дескриптор окна графика, для эмуляции тика для эксперт.int bZoom); // Направление изменения размеров баров: TRUE - увеличение размера на один шаг;// FALSE - уменьшение размера на один шаг.//===================================================================================================================================================#import
Коды кнопок смотрятся в Spy++ (Control ID)
И используются для получения дескриптора кнопки:
hButtonStart = GetDlgItem(hTester, 0x40A);
Имя окна hTester никак не могу найти в программе Spy++. Если можно или скриншот где это написано или по действиям.
Большой труд, респект.
Gans-deGlucker,
Могу поделиться MT4TermComm, в личку мыло если интересует.
Большой труд, респект.
Gans-deGlucker,
Могу поделиться MT4TermComm, в личку мыло если интересует.
Я думаю не только Gans-deGlucker интересно и остальным тоже.
Ну если админы и суппорт меня не "почикают" насовсем за эти хаки, то могу прямо сюда выложить )).
Ну если админы и суппорт меня не "почикают" насовсем за эти хаки, то могу прямо сюда выложить )).
Прецедентов репрессий не было, выложите пожалуйста.
Почему-то этот код сдвигает в начало графика:
Хотя, где-то видел, что 55 двигает до указанного номера бара.
Может другой код нужен и какой?
Хотя, где-то видел, что 55 двигает до указанного номера бара.
Крайний параметр - время бара. Например, Time[nBar].
Сделал библиотеку сервисных функций к МТ4, чтобы поменьше параметров в функциях было и коды команд не запоминать. Сделал самые основные.
По сути, это оболочки к WinAPI функциям.
Сделал библиотеку сервисных функций к МТ4, чтобы поменьше параметров в функциях было и коды команд не запоминать. Сделал самые основные.