Выпущена бета-версия MetaTrader 4 Build 555 с обновленным языком MQL4 и Маркетом приложений
Неточность в таблице:
Функции любого типа всегда должны возвращать значение
Надо так:
Функции любого типа всегда должны возвращать значение, кроме void.
Когда добавят мультивалют в тестер?
архитектура не позволяет в мт4 - идите в мт5
"Array out of range" - критическая ошибка и приводит к остановке программы
Ура!!! Наконец-то, а то сколько бессонных ночей))
Спасибо. Теперь новые билды будут выходить с анонсами?
Опечатка:
Terminal: Добавлены новые графические объекты: "Button", "Bitmap","Bitmap Label", "Rectangle Label". Данные объекты не могут быть установлены на чарты вручную и предназначены для организации собственного пользовательского интерфейса для MQL5-программ: экспертов, скриптов и индикаторов.
Опечатка:
Спасибо, исправлено
Начиная c ОС Windows Vista, был введен механизм контроля учетных записей пользователей - UAC (User Account Control). Основная идея введения данного механизма состояла в том, чтобы разделить неизменяемые данные самой программы, которые хранятся в каталоге установки, от данных пользователя, которые используются и модифицируются этой программой в результате работы программы. Таким образом, появилась необходимость все данные каждого пользователя хранить в отдельной папке. Более подробно о том, что такое UAC, вы можете прочитать в справке Windows или узнать из статьи в википедии.
В новой версии все данные конкретного пользователя, работающего с терминалом MetaTrader 4 из отдельной конкретной папки установки, хранятся в специальном месте, называемом каталог данных терминала. Находится этот каталог на системном диске (диске, на котором установлена операционная система Windows) по пути следующего вида
C:\Users\Имя_учетной_записи\AppData\Roaming\MetaQuotes\Terminal\Instance_idгдe:
- С: - имя системного диска;
- Имя_учетной_записи - учетная запись пользователя, под которой он работает в Windows;
- Instance_id - уникальное имя папки, в которой хранятся данные этого пользователя для работы с конкретной копией терминала MetaTrader 4.
А каким образом пользователь теперь должен сохранять советники, полученные (приобретенные) им вне Маркета? Сейчас, когда я отправляю клиенту советник, то говорю, что ему нужно сохранить его в папку вида <МТ4>\experts\ (ну или C:\Users\<UserName>\AppData\Local\VirtualStore\Program Files (x86)\<MT4>\experts\ если UAC включен). Пользователь прямо из письма сохраняет файл в нужную папку. При этом если код открытый, то при запуске терминала он автоматически компилируется. Все к этому давно привыкли и вроде всем довольны.
В новой версии это не работает. Пробовал сохранять исходники и в <МТ4>\experts\, и в <МТ4>\MQL4\Experts\ - терминал их не видит :(
Хотя при этом исходники двух советников из стандартной поставки в <МТ4>\MQL4\Experts\ лежат. [Зачем?]
Получается, что при сохранении советника пользователь должен проводником добраться до папки вида C:\Users\Имя_учетной_записи\AppData\Roaming\MetaQuotes\Terminal\. Если у него при этом установлено 5 терминалов МТ4, то там он увидит список из пяти папок вида Instance_id. И как ему объяснить, в какую именно папку сохранять советник?
Хотелось бы понять, скажем так, Use Case этого процесса с точки зрения разработчиков.
Получается, что при сохранении советника пользователь должен проводником добраться до папки вида C:\Users\Имя_учетной_записи\AppData\Roaming\MetaQuotes\Terminal\. Если у него при этом установлено 5 терминалов МТ4, то там он увидит список из пяти папок вида Instance_id. И как ему объяснить, в какую именно папку сохранять советник?
Хотелось бы понять, скажем так, Use Case этого процесса с точки зрения разработчиков.
Похоже, Вы не прошли дальше раздела о "размере груди" (ц)
В меню терминала "Файл" добавлена команда "Открыть каталог данных" для поиска и открытия каталога данных.
Похоже, Вы не прошли дальше раздела о "размере груди" (ц)
Т.е. предполагается, что пользователь должен сохранить файл советника в произвольное место, потом в терминале открыть эту папку и перетащить советник туда? Верно?
Сам я просто никогда не пользовался проводником Windows (использую Total Commander), поэтому не додумался до такого решения.
Но теперь другой вопрос (для меня гораздо более важный): Можно ли как-то программно определить путь к папке данных, если известна папка установки терминала?
Создал заявки в Сервисдеске
#907069 - Групповая загрузка котировок в Архиве котировок.
#907070 - Не правильно работает функция меню "Окно" - "Новое окно".
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Выпущен MetaTrader 4 build 555 с обновленным языком MQL4 и Маркетом приложений
За последние полгода с момента выхода последнего публичного билда 509 была произведена огромная работа по улучшению всех компонентов торгово-информационной системы MetaTrader 4. Самым важным изменениям подвергся язык программирования торговых стратегий MQL4, это дало новые возможности для разработки торговых роботов и позволило запустить MetaTrader 4 Маркет - защищенный рынок приложений для терминала MetaTrader 4.
Мы начинаем публичное тестирование нового терминала MetaTrader 4 и призываем всех трейдеров присоединиться к нему, чтобы самостоятельно опробовать все его возможности и помочь разработчикам в исправлении найденных ошибок.
После окончания публичного бета-тестирования будет выпущен финальный билд нового терминала MetaTrader 4. Ниже списка изменений вы можете прочитать, что нового в MQL4.
MetaTrader 4 Client Terminal build 555

Увеличена скорость работы MQL4-программ, встроена поддержка DLL и Visual Studio, появился доступ к MQL5 Storage и многое-многое другое.Изначально, с момента релиза платформы MetaTrader 4 в 2005 году, выбранный каталог установки терминала являлся также и местом, где хранились все необходимые для работы данные - логи терминала, шаблоны и профили, котировки и т.д. Но в 2008 году с выпуском Windows Vista все операционные системы корпорации Microsoft стали жестко ограничивать полномочия пользователей с целью защиты от вредоносных программ, а также для того чтобы работа с программой под одной учетной записью никак не могла изменить или испортить данные этой же программы, необходимые для другой учетной записи.
Начиная c ОС Windows Vista, был введен механизм контроля учетных записей пользователей - UAC (User Account Control). Основная идея введения данного механизма состояла в том, чтобы разделить неизменяемые данные самой программы, которые хранятся в каталоге установки, от данных пользователя, которые используются и модифицируются этой программой в результате работы программы. Таким образом, появилась необходимость все данные каждого пользователя хранить в отдельной папке. Более подробно о том, что такое UAC, вы можете прочитать в справке Windows или узнать из статьи в википедии.
В новой версии все данные конкретного пользователя, работающего с терминалом MetaTrader 4 из отдельной конкретной папки установки, хранятся в специальном месте, называемом каталог данных терминала. Находится этот каталог на системном диске (диске, на котором установлена операционная система Windows) по пути следующего вида
гдe:
В меню терминала "Файл" добавлена команда "Открыть каталог данных" для поиска и открытия каталога данных.
В корне каждого каталога данных терминала также находится файл origin.txt, который содержит путь к папке установки терминала, к которой относятся эти данные. Это позволяет обратно сопоставить каждый каталог данных терминала с конкретным каталогом установки терминала, например, если у пользователя установлено несколько копий терминала MetaTrader 4. Такой способ работы с терминалом, когда каталог данных находится отдельно от каталога установки, является основным режимом и наиболее рекомендуем из соображений безопасности.
Терминал можно также запускать в так называемом режиме Portable (как это было сделано в предыдущих билдах MetaTrader 4), когда данные терминала хранятся и записываются в каталог установки. Для этого необходимо использовать ключ "/portable". Для удобства на Рабочем столе можно создать дополнительный ярлык запуска терминала с нужным именем и добавить ключ прямо в ярлык:
Теперь при выставлении торговых запросов все запросы передаются через основное соединение с торговым сервером. Таким образом значительно сокращается время обработки торговых запросов, особенно первого торгового запроса, за счет отсутствия дополнительного ожидания установки соединения с торговым сервером. Для работы новой схемы обработки также необходимо обновление торгового сервера - на старых торговых серверах запросы по-прежнему выставляются в отдельном соединении.
В связи с переходом на новую модель обработки запросов была убрана возможность отмены еще не принятых сервером торговых заявок (кнопка "Отмена" на диалоге состояния торгового запроса).
Используется пословный поиск с учетом морфологии русского и английского языков. Поиск осуществляется в разделах, указанных пользователем в настройках:
Контекстное меню вкладки результатов поиска содержит дополнительные команды в зависимости от типа результата:
При разрешенной опции управления торговыми уровнями с чарта значение цены у алерта может быть изменено перетаскиванием мышью на новый ценовой уровень. Алерт может быть отключен или удален с помощью вызова контекстного меню на соответствующем уровне на графике.
Достаточно указать имя компании (или фрагмент имени сервера), и терминал автоматически добавит в список все сервера, принадлежащие данной компании (сервера, имена которых включают в себя указанную строку):

Данная опция необходима при использовании сигналов на VPS (Virtual Private Server) и также может быть использована для повышения надежности синхронизации при работе с уже выбранным сигналом.Исправления по сообщениям на форуме и крешлогам.
MetaTrader 4 MultiTerminal build 555
Автоматическое обновление доступно через систему LiveUpdate.
Что нового в MQL4
Язык программирования MQL4 полностью переработан и достиг уровня MQL5 - теперь писать торговых роботов на MQL4/5 можно в единой среде разработке MetaEditor и используя единые стиль, библиотеки и инструменты отладки.
MQL4 пользуется заслуженной популярностью среди разработчиков автоматических торговых систем благодаря простоте изучения и огромному количеству кода, наработанного за многие годы использования терминала MetaTrader 4. Но вместе с тем, ему были присущи и некоторые недостатки, проистекающие из главного преимущества - простой язык программирования не позволял писать сложные системы и затруднял портирование отлаженных библиотек из языков высокого уровня. Поэтому мы решили перенести в него максимум функций и возможностей языка MQL5, полностью сохраняя функционал MQL4. То есть все мощные функции MQL5, включая ООП и компилятор в нативный код, станут доступны в MQL4.
Для этого мы разработали единый компилятор, который автоматически поддерживает оба языка MQL4 и MQL5. MetaEditor тоже становится единым для обеих платформ MetaTrader 4 и MetaTrader 5. С его помощью можно компилировать как MQL4, так и MQL5 из любой версии. Для работы также сразу становится доступным и MQL5 Storage.
Защита MQL4-программ поднимается на один уровень с MQL5, в новых EX4/EX5-файлах очень серьезная и полностью переработанная защита по сравнению со старым EX4. А это значит, что для MetaTrader 4 становится доступным и Маркет защищенных приложений на EX4.
Кроме того, в язык MQL4 добавлены новые графические объекты и новые функции по работе с графиками. Стандартная библиотека из MQL5 будет портирована и в MQL4, что предоставит для разработчиков программ новые возможности по созданию собственных графических интерфейсов и торговых библиотек. Теперь в MetaTrader 4 можно создавать полноценные приложения с использованием ресурсов.
Изменения в языке MQL4
Таблица отличий между компиляторами
и новые OnInit(), OnStart(), OnCalculated, OnTick(), OnTimer(), OnChartEvent(), OnTester(), OnDeinit() должны точно соответствовать своим сигнатурам
Список зарезервированных слов расширен, поэтому именами не могут быть такие широко распространенные слова, как short, long, const и т.д.
datetime - 32-битное целое.
Предопределенная переменная Volume имеет тип double
datetime - 64-битное целое.
Предопределенная переменная Volume имеет тип ulong
* Следует обратить особое внимание на ошибку "Array out of range" - многие старые пользовательские индикаторы при запуске на графике будут выдавать эту ошибку в новом компиляторе в режиме strict. Желательно найти причину и устранить ее.
** В новом MQL4 и MQL5 за режим совместного использования файлов отвечают флаги FILE_SHARE_READ и FILE_SHARE_WRITE, которых не было в старом MQL4.