Как на MQL4 произвести запуск другой программы с расширением exe, как читать и писать данные на диск в файлы типа xls или txt?
Скажите, пожалуйста, как при написании индикатора на MQL4 произвести
запуск другой программы с расширением exe, для ее выполнения
и последующего использования результатов в индикаторе? Как
читать и писать данные на диск в файлы типа xls или txt?
- Как читать и писать данные на диск в файлы типа xls или txt из программы написанной на MQL4?
- Ошибки, баги, вопросы
- В каких случаях есть смысл держать часть кода робота в индикаторе?
trading_ivest писал (а):
Скажите, пожалуйста, как при написании индикатора на MQL4 произвести запуск другой программы с расширением exe, для ее выполнения и последующего использования результатов в индикаторе? Как читать и писать данные на диск в файлы типа xls или txt?
Для запуска программы нужно загрузить библиотеку 'Kernel32.dll' и вызвать её функцию CreateProcess (см. http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/createprocess. asp). Но так как в MQL нет возможности создавать структуры, то вероятно придётся написать пару строк в среде типа MS Visual C++, или ей подобной для создания своей библиотеки с интерфейсом типа StartApp. Затем включить её в файл *.mq4 (#import) :
#import "YourLibrary.dll" bool StartApp(); #import
О файловом вводе/выводе можно прочесть в справочном руководстве редактора - Ctrl+D, ветвь дерева File Functions.
Попробуйте так:
#import "kernel32.dll" int WinExec("your_program.exe", 0);сам не проверял, прочёл здесь: https://www.mql5.com/ru/forum/51553 . Надеюсь поможет. :)
Прошу прощения перепутал немного строчки... нужно так:
Это вначале программы (объявление импортируемой функции):
Это вначале программы (объявление импортируемой функции):
#import "kernel32.dll" int WinExec(string NameEx, int dwFlags);и там где надо произвести запуск пишешь это:
WinExec("notepad.exe", 1);Где на месте «notepad.exe» твоя программа. Когда второй параметр равен 1 — это означает запустить программу с видимым окном, когда 0 — в фоновом режиме.
Попробовал, всё работает. Главное при запуске эксперта не забыть
поставить галочку «Разрешить импорт функций из DLL» и убрать галочку «Ручное подтверждение вызвов».
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь