Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Ilnur, наверно можно все-таки, если дополнительно обновить "keyboard input-state table" в нужном потоке.
Вот это надо бы попробовать на MQL, может поможете?:
Я не знаком с такой возможностью.
Думаю, что приведенный Вами код, можно перевести в MQL. Но, не понимая как он работает, будет трудно его отлаживать.
P.S. Может быть проще сначала активировать окно с заданным хендлом, затем пользуясь функцией keybd_event() посылать
нужное сочетание клавиш.
Я не знаком с такой возможностью.
Думаю, что приведенный Вами код, можно перевести в MQL. Но, не понимая как он работает, будет трудно его отлаживать.
P.S. Может быть проще сначала активировать окно с заданным хендлом, затем пользуясь функцией keybd_event() посылать
нужное сочетание клавиш.
Да, бог с ним, с этим кодом. Возьму более простой вариант с keybd_event.
Задача такая: есть три окна:
EURUSD, H1 + скрипт
GBPUSD, H1 + скрипт
EURUSD, H1
Надо после закрытия/открытия терминала прикрепить скрипты к тем чартам, где были.
Как ее можно решить?
Как ее можно решить?
Легко. Переделать скрипт в советник.
При смене ТФ перегрузка при открытии терминала автоподгрузка.
Да, бог с ним, с этим кодом. Возьму более простой вариант с keybd_event.
Задача такая: есть три окна:
EURUSD, H1 + скрипт
GBPUSD, H1 + скрипт
EURUSD, H1
Надо после закрытия/открытия терминала прикрепить скрипты к тем чартам, где были.
Как ее можно решить?
Возможное решение:
1) Назначаем каждому скрипту, которые нужно запустить после старта терминала, горячие клавиши.
2) Создаем конфигурационный файл, н-р, start.ini, содержащий одну строку Script=LoadScripts. Здесь LoadScripts - имя скрипта, который будет запущен после старта терминала.
3) Создаем скрипт LoadScripts.mq4, который последовательно активирует окна с заданным хендлом и программно нажимает на нужное сочетание клавиш.
4) Загружаем терминал с конфигурационным файлом start.ini.
Здесь я выкладывал код функции, который активируют график с заданным хендлом. Как нажимать на горячие клавиши с помощью функции keybd_event() Вы уже знаете.
Легко. Переделать скрипт в советник.
Я ему это в первом же посте посоветовал. Но видимо простых путей человек не ищет...Ну ничего, всем будет польза, может решение через api (если таковое будет найдено) пригодится в других задачах...
Возможное решение:
1) Назначаем каждому скрипту, которые нужно запустить после старта терминала, горячие клавиши.
2) Создаем конфигурационный файл, н-р, start.ini, содержащий одну строку Script=LoadScripts. Здесь LoadScripts - имя скрипта, который будет запущен после старта терминала.
3) Создаем скрипт LoadScripts.mq4, который последовательно активирует окна с заданным хендлом и программно нажимает на нужное сочетание клавиш.
4) Загружаем терминал с конфигурационным файлом start.ini.
Здесь я выкладывал код функции, который активируют график с заданным хендлом. Как нажимать на горячие клавиши с помощью функции keybd_event() Вы уже знаете.
Вместо п.1-4 я поступил по-другому: использую советник (RestoreScripts), который запускается вместе с терминалом. Он отлично запускает скрипты при смене ТФ, читая из глобальных переменных хендлы их окон и их горячие клавиши.
Но это при смене ТФ. При загрузке терминала он не знает новые хендлы окон. Я могу конечно ему заголовки окон со скриптами оставить перед выходом, но в примере специально показал случай со скриптом на одном из двух окон "EURUSD,H1".
Можно конечно порядковый номер окна ему передавать (z-order). Но если я просто закрываю окно, советник тут же повесит скрипт на следующее по порядку окно. А при закрытии терминала - если он закрывает окна начиная с нижнего, z у всех будет одинаковый.
Вот, вопрос в этом. Может будут какие мысли?
Спасибо.
Легко. Переделать скрипт в советник.
При смене ТФ перегрузка при открытии терминала автоподгрузка.
Как, подскажете?
Чтобы советник висел на 5-10 чартах, котировки real-time для ручной торговли, и процессор не перегружен?
Вот, вопрос в этом. Может будут какие мысли?
В CodeBase скоро появится. Решение простейшее до смешного.
Да, понял. Управлять скриптами из одного эксперта неоправданно сложно.
Надо каждому скрипту дать персональный индикатор на этом же чарте, и все будет просто.
Продолжим изучать API на других примерах.
Ilnur и всем, спасибо за помощь.
по-моему самое простое решение запуска кода при смене таймфрейма это
if (UninitializeReason()== REASON_CHARTCHANGE) вашКод();