Выпущена бета-версия MetaTrader 4 Build 555 с обновленным языком MQL4 и Маркетом приложений

 

Выпущен MetaTrader 4 build 555 с обновленным языком MQL4 и Маркетом приложений

За последние полгода с момента выхода последнего публичного билда 509 была произведена огромная работа по улучшению всех компонентов торгово-информационной системы MetaTrader 4. Самым важным изменениям подвергся язык программирования торговых стратегий MQL4, это дало новые возможности для разработки торговых роботов и позволило запустить MetaTrader 4 Маркет - защищенный рынок приложений для терминала MetaTrader 4.

Мы начинаем публичное тестирование нового терминала MetaTrader 4 и призываем всех трейдеров присоединиться к нему, чтобы самостоятельно опробовать все его возможности и помочь разработчикам в исправлении найденных ошибок.

Для обновления на новый билд 555 клиентского терминала MetaTrader 4 достаточно подключиться к тестовому серверу demo.metaquotes.net:444

После окончания публичного бета-тестирования будет выпущен финальный билд нового терминала MetaTrader 4. Ниже списка изменений вы можете прочитать, что нового в MQL4.

MetaTrader 4 Client Terminal build 555

  1. Terminal: Язык программирования торговых стратегий MQL4 существенно доработан и приближен по функционалу к языку MQL5. Добавлены классы и структуры, расширен до уровня С++ синтаксис языка, что позволило реализовать все преимущества объектно-ориентированного программирования. Это означает, что теперь писать торговых роботов и технические индикаторы стало гораздо проще и быстрее, а экспертописатели получили новые возможности в единой среде разработке MetaEditor - отладку, профилировку, автодополнение и т.д. Более подробно о новых возможностях можно прочитать в отдельном разделе MetaEditor статьи на сайте MQL5.



    Увеличена скорость работы MQL4-программ, встроена поддержка DLL и Visual Studio, появился доступ к MQL5 Storage и многое-многое другое.

  2. Terminal: Добавлена вкладка "Маркет" для покупки и скачивания платных и бесплатных экспертов, сигналов и скриптов из MetaTrader 4 Маркет. Теперь любой разработчик MQL4-программ может стать Продавцом и предложить свои продукты миллионам трейдеров, торгующих через MetaTrader 4.



    Скачать демоверсию или купить полнофункциональное платное приложение на MQL4 из MetaTrader 4 Маркет можно прямо из терминала. Каждая покупка надежно защищена, разрешает от пяти активаций на разных компьютерах и не имеет никаких ограничений по времени работы, типу счета или брокеру. Любой платный индикатор или советник можно запустить перед покупкой в тестере стратегий MetaTrader 4 в визуальном режиме, чтобы получить представление о товаре.


  3. Terminal: Изменились структура и место хранения данных терминала - теперь данные каждого установленного терминала хранятся в отдельном каталоге данных терминала.

    Изначально, с момента релиза платформы MetaTrader 4 в 2005 году, выбранный каталог установки терминала являлся также и местом, где хранились все необходимые для работы данные - логи терминала, шаблоны и профили, котировки и т.д. Но в 2008 году с выпуском Windows Vista все операционные системы корпорации Microsoft стали жестко ограничивать полномочия пользователей с целью защиты от вредоносных программ, а также для того чтобы работа с программой под одной учетной записью никак не могла изменить или испортить данные этой же программы, необходимые для другой учетной записи.

    Начиная 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.

    В меню терминала "Файл" добавлена команда "Открыть каталог данных" для поиска и открытия каталога данных.




    В корне каждого каталога данных терминала также находится файл origin.txt, который содержит путь к папке установки терминала, к которой относятся эти данные. Это позволяет обратно сопоставить каждый каталог данных терминала с конкретным каталогом установки терминала, например, если у пользователя установлено несколько копий терминала MetaTrader 4. Такой способ работы с терминалом, когда каталог данных находится отдельно от каталога установки, является основным режимом и наиболее рекомендуем из соображений безопасности.

    Терминал можно также запускать в так называемом режиме Portable (как это было сделано в предыдущих билдах MetaTrader 4), когда данные терминала хранятся и записываются в каталог установки. Для этого необходимо использовать ключ "/portable". Для удобства на Рабочем столе можно создать дополнительный ярлык запуска терминала с нужным именем и добавить ключ прямо в ярлык:





  4. Terminal: В новом терминале изменена схема выставления торговых запросов. Ранее при выставлении торговых запросов создавалось дополнительное сетевое подключение, которое оставалось активным некоторое время после отправки последнего торгового запроса с целью обеспечения быстрой отсылки большого количества торговых запросов.

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

    В связи с переходом на новую модель обработки запросов была убрана возможность отмены еще не принятых сервером торговых заявок (кнопка "Отмена" на диалоге состояния торгового запроса).

  5. Terminal: Добавлен глобальный поиск по клиентскому терминалу MetaTrader 4 и MQL4.com. Поиск в клиентском терминале позволяет быстро находить необходимую информацию во всех разделах клиентского терминала, в Code Base, а также на сайтах MQL4.com и MQL5.com в целом.

    Используется пословный поиск с учетом морфологии русского и английского языков. Поиск осуществляется в разделах, указанных пользователем в настройках:




    Контекстное меню вкладки результатов поиска содержит дополнительные команды в зависимости от типа результата:




  6. Terminal: Добавлена команда быстрого выставления заказа на разработку MQL4-программ в разделе "Работа". Теперь трейдер может не только скачать любой код из бесплатной библиотеки, но и найти исполнителя для создания нужного индикатора или робота по собственному алгоритму. Процедура выполнения заказа описана в статье "Как заказать торгового робота на MQL5 и MQL4" и позволяет защитить интересы обеих сторон заказа - как исполнителя, так и заказчика.






  7. Terminal: Добавлена возможность отсылки Push-уведомлений о торговых транзакциях, происходящих на клиентском счете: добавление, изменение и удаление ордеров, активация отложенных ордеров и SL-TP, попадание счета под Margin Call и Stop Out. Push-уведомления приходят на мобильные терминалы, установленные на устройства под управлением iOS и Android, не зависят от номера мобильного телефона и доставляются при наличии интернет-подключения. Подробности можно прочитать в статье "MetaQuotes ID в мобильном терминале MetaTrader".






  8. Terminal: Добавлены отображение алертов на чарте и управление ими с помощью drag'n'drop. Также появилась возможность установить время истечения алерта.




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


  9. Terminal: В окне открытия демо-счетов добавлена возможность поиска сервера по имени компании.
    Достаточно указать имя компании (или фрагмент имени сервера), и терминал автоматически добавит в список все сервера, принадлежащие данной компании (сервера, имена которых включают в себя указанную строку):







  10. Terminal: В "Навигатор" добавлено отображение вложенных каталогов и иерархии экспертов, скриптов и индикаторов.



  11. Terminal: Повышена точность отображения времени открытия и закрытия торговых ордеров и позиций в списках открытых ордеров и позиций, истории торговли и торговых отчетах - добавлен показ секунд.


  12. Terminal: Повышена точность отображения времени последней котировки в окне обзора рынка и всплывающем окне обзора рынка - время последней котировки показывается с точностью до секунд (вместо точности до минут ранее).



  13. Terminal: Добавлены новые графические объекты: "Button", "Bitmap","Bitmap Label", "Rectangle Label". Данные объекты не могут быть установлены на чарты вручную и предназначены для организации собственного пользовательского интерфейса для MQL4-программ: экспертов, скриптов и индикаторов.

  14. Terminal: Повышена точность представления времени в Журнале клиентского терминала - добавлен показ миллисекунд.
  15. Terminal: Исправлено One Click-закрытиe позиций в списке открытых ордеров и позиций (по нажатию на крестик) - теперь в режиме Instant Execution используется значение приемлемого отклонения цены из настроек торговли.
  16. Terminal: Добавлена возможность копирования в буфер обмена на вкладке "Company".
  17. Terminal: Исправлено упорядочивание окон чарта по командам.
  18. Terminal: Исправлено сохранение профилей при переключении между чартами, развернутыми на полный экран.
  19. Terminal: Исправлено отображение ряда диалогов при использовании интерфейса на японском языке.
  20. Terminal: Для обеспечения оптимальной работы и высокой производительности все компоненты клиентского термина требуют поддержки процессором компьютера набора инструкций SSE2.
  21. Terminal: Оптимизировано сканирование наилучшей точки доступа.
  22. Terminal: Исправлены ошибки зацикливания, возникавшие в процессе обновления при отказе от поднятия прав при использовании UAC.
  23. Terminal: Исправлено отображение заголовка и тела новостей, а также писем внутренней почты, использующих кодировку UTF-8.
  24. Terminal: Исправлена ошибка, возникавшая вследствие отказа в диалоге соглашения "One-Click Trading" и в некоторых случаях приводившая к неверному отображению полей "Margin" и "Free Margin" в списке открытых ордеров и позиций.
  25. Terminal: Обновлен список стран в диалоге выбора при открытии демо-счета.
  26. Terminal: Обновлены и дополнены переводы интерфейса на шведский, венгерский, японский, итальянский, болгарский языки.
  27. Signals: Расширена информация о торговом сигнале:
    • добавлена информация о дате последней торговой операции и числе торговых операций за последнюю неделю.
    • добавлен график изменения средств "Equity" счета-источника торгового сигнала.
    • добавлена диаграмма "Distribution" распределения торговой активности по торговым инструментам.




  28. Signals: Добавлена опция безусловной синхронизации позиций между источником сигнала и счетом подписчика. Если данная опция включена, то синхронизация счетов подписчика и источника сигнала (в том числе закрытие уже имеющихся открытых позиций, не принадлежащих сигналу) производится без дополнительного подтверждения со стороны подписчика.



    Данная опция необходима при использовании сигналов на VPS (Virtual Private Server) и также может быть использована для повышения надежности синхронизации при работе с уже выбранным сигналом.

  29. Signals: На вкладке сигналов добавлено отображение числа новых торговых сигналов, добавленных за последние три дня.
  30. Signals: Добавлен учет минимального разрешенного объема и минимального шага объема при начальной синхронизации торговых позиций. Если размер локальной позиции меньше расчетного объема на стороне сигнала, то увеличение локальной позиции не производится, поскольку для этого необходимо переоткрыть позицию с потенциальной потерей спреда.
  31. Signals: Исправлено открытие и закрытие торговых позиций по инструментам с изменением типа исполнения с Instant Execution на Request Execution при превышении порогового значения объема ордера.
  32. Signals: При сопоставлении торговых инструментов между источником и подписчиком сигналов, при наличии нескольких подходящих символов у подписчика, теперь учитывается, разрешена ли торговля для этих символов.
  33. Signals: В информацию о торговом сигнале добавлены вкладки "History" и "Reviews".
  34. Signals: В списке сигналов добавлена колонка рейтинга сигнала.
  35. Signals: Из информации о торговых сигналах убран показ тикетов ордеров и позиций сигнала.
  36. Signals: Исправлена ошибка синхронизации торговых сигналов, возникавшая в некоторых случаях при большом количестве однонаправленных позиций одинакового объема.
  37. Signals: Добавлено автоматическое преобразование торговых инструментов GOLD <=> XAUUSD и SILVER <=> XAGUSD.
  38. Signals: Добавлен запрет подписки на торговые сигналы для счетов, работающих в режиме FIFO по требованиям NFA.
  39. Signals: Исправлена подписка на сигнал при работе в Wine (Linux и Mac).
  40. Tester: Исправлен учет тикового спреда, заданного в параметрах тестирования, при оптимизации с использованием тикового кэша.
  41. Исправления по сообщениям на форуме и крешлогам.


MetaTrader 4 MultiTerminal build 555

  1. Исправлена ошибка, заключавшаяся в некорректном обновлении списка ордеров после их удаления для некоторых случаев.
  2. Исправлен показ текущей плавающей прибыли по счету - в прибыли не учитывалось значение накопленных свопов по открытым позициям.
  3. Повышена точность отображения времени последней котировки в окне обзора рынка и всплывающем окне обзора рынка.
  4. Исправлено отображение заголовка и тела новостей, а также писем внутренней почты терминала, использующих кодировку UTF-8.
  5. Повышена точность представления времени в журнале терминала - добавлен показ миллисекунд.
  6. Исправления по крешлогам.

Автоматическое обновление доступно через систему 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

  • Добавлены новые типы данных char, short, long, uchar, ushort, uint, ulong и double. Это позволит легко переносить коды из других C++ подобных языков. Данные разного типа обрабатываются с разной скоростью. Целочисленные данные обрабатываются быстрее всего. Для обработки данных двойной точности используется специальный сопроцессор. Однако из-за сложности внутреннего представления данных с плавающей точкой они обрабатывается дольше, чем целочисленные. Введена операция приведения типов.
  • Строки теперь представлены в формате Unicode, раньше они были в формате ANSI (однобайтовые). Это необходимо учитывать, если программа использует DLL и передает в них строковые переменные.
  • Предопределенная переменная Volume теперь имеет тип ulong, таймсерии для доступа к объемам также представлены массивами типа ulong. В старых программах MQL4 рекомендуется делать явное приведение данных этого типа к целевому типу, чтобы избежать ошибки переполнения типа.
  • Добавлены структуры и классы, указатели объектов, тип void и ключевое слово this для получения объектом ссылки на самого себя. Поддерживаются все стандарты объектно-ориентированного программирования:
  • ООП позволяет писать программы с использованием классов, что облегчает отладку и разработку больших программ, позволяет многократно использовать наработки благодаря наследованию. Но это не означает, что теперь нельзя писать на MQL4 в процедурном стиле, как это было раньше. Вы можете писать свои программы как и раньше, если вам не нужны новые возможности.
  • Предопределенные функции init(), deinit() и start() остались для совместимости, но вместо них теперь можно использовать OnInit(), OnDeinit(), OnStart(), OnCalculate(), OnTick(). Кроме того, добавились новые предопределенные функции-обработчики OnTimer(), OnChartEvent(), OnTester(). В старом MQL4 предопределенные функции могли иметь любые параметры и любой тип возврата, вызов этих функций осуществлялся не по сигнатуре, а по имени. В новом MQL4 все предопределенные функции должны точно соответствовать своим сигнатурам, то есть иметь четко определенный состав параметров и тип возврата.
  • Имена переменных теперь не могут содержать спецсимволы и точки, а также именами не могут быть новые ключевые слова языка MQL4. Старые программы на MQL4 можно будет прогнать через новый компилятор и легко исправить все такие ошибки по сообщениям компилятора.
  • Приоритет операций теперь приведен к стандартам языка Cи. В старых программах MQL4 для надежности вы можете расставить круглые скобки для явного указания приоритета, если не уверены.
  • В логических операциях теперь используется укороченная проверка условия. В старой версии MQL4 вычислялись все выражения, и только потом производилась проверка условия. Например, пусть есть проверка двух условий с использованием логического И
      if(condition1 && condition2)
        {
         // некоторый блок операций
        }
    Если выражение condition1 окажется равным false, то вычисление выражения condition2 проводиться уже не будет, так как результат false && true все равно будет равен false.
  • ArrayCopyRates() также изменила свое поведение, раньше она производила виртуальное копирование в массив double[][6], теперь же производится виртуальное копирование в массив MqlRates[]. Для совместимости осталось копирование в массив double[][6], но это копирование не виртуальное, а реальное.
  • В файловых операциях количество одновременно открытых файлов теперь может достигать 64, в старом MQL4 было не более 32. При этом раньше файлы всегда открывались в режиме FILE_SHARE_READ, FILE_SHARE_WRITE, теперь желательный режим открытия нужно указывать явно.
  • Изменилась также работа с функциями, областью видимости переменных и освобождением памяти в локальных массивах. Так как изменений оказалось достаточно много, то для обеспечения максимальной совместимости со старым подходом к написанию программ MQL4 было решено ввести новое свойство #property strict. При создании новой программы MQL4 с помощью мастера MQL это свойство всегда добавляется в шаблон. Ниже в таблице перечислены все различия между старым MQL4, новым MQL4 без использования strict и новым MQL4 с указанием строгого режима компиляции
    #property strict

Таблица отличий между компиляторами

Старый компилятор MQL4
Новый компилятор MQL4
Новый MQL4 с #property strict
Точки входа init(), start(), deinit() могут иметь любые параметры и любой тип возврата init(), start(), deinit(), оставленные для совместимости,
и новые OnInit(), OnStart(), OnCalculated, OnTick(), OnTimer(), OnChartEvent(), OnTester(), OnDeinit() должны точно соответствовать своим сигнатурам
Имена переменных практически любые (кроме зарезервированных слов), включая спецсимволы и точки
Имена переменных не могут иметь спецсимволы и точки.
Список зарезервированных слов расширен, поэтому именами не могут быть такие широко распространенные слова, как short, long, const и т.д.
Область видимости переменной - от объявления (даже во вложенном блоке) до конца функции
Область видимости переменной - от объявления до конца блока, в котором переменная объявлена
Неявная инициализация всех переменных (и глобальных, и локальных) нулями
Инициализация только глобальных переменных. Из локальных переменных неявно инициализируются только строки.
Локальные массивы при выходе из функции не освобождаются
Локальные массивы освобождаются при выходе из функции
Локальные массивы освобождаются при выходе из блока {}
Ошибка "Array out of range" (индекс за пределами массива) не приводит к критической ошибке *
То же. Кроме массивов структур и классов, для которых эта ошибка является критической
"Array out of range" - критическая ошибка и приводит к остановке программы
Структур и классов нет
Структуры и классы есть. Появились дополнительные типы данных
Строки - однобайтовые.
datetime - 32-битное целое.
Предопределенная переменная Volume имеет тип double
Строки - юникодные.
datetime - 64-битное целое.
Предопределенная переменная Volume имеет тип ulong
ArrayCopyRates() производит виртуальное копирование в массив double[][6] ArrayCopyRates() производит виртуальное копирование в массив MqlRates[]. Для совместимости осталось копирование в массив double[][6], но это копирование не виртуальное, а реальное
Функции могут не возвращать значения, даже если они имеют тип. Для этого в конце функции компилятором автоматически проставляется return(0)
Функции любого типа всегда должны возвращать значение
Количество одновременно открытых файлов - 32
Количество одновременно открытых файлов - 64
Файлы всегда открываются в режиме совместного использования **
Режим совместного использования нужно указывать явно с помощью FILE_SHARE_READ и/или FILE_SHARE_WRITE

* Следует обратить особое внимание на ошибку "Array out of range" - многие старые пользовательские индикаторы при запуске на графике будут выдавать эту ошибку в новом компиляторе в режиме strict. Желательно найти причину и устранить ее.

** В новом MQL4 и MQL5 за режим совместного использования файлов отвечают флаги FILE_SHARE_READ и FILE_SHARE_WRITE, которых не было в старом MQL4.

 

Неточность в таблице:

Функции любого типа всегда должны возвращать значение

Надо так:

Функции любого типа всегда должны возвращать значение, кроме void.

 
Когда добавят мультивалют в тестер?
 
berezhnuy:
Когда добавят мультивалют в тестер?

архитектура не позволяет в мт4 - идите в мт5
 
MetaQuotes:
"Array out of range" - критическая ошибка и приводит к остановке программы

Ура!!! Наконец-то, а то сколько бессонных ночей))

 

Спасибо. Теперь новые билды будут выходить с анонсами?

Опечатка:

Terminal: Добавлены новые графические объекты: "Button", "Bitmap","Bitmap Label", "Rectangle Label". Данные объекты не могут быть установлены на чарты вручную и предназначены для организации собственного пользовательского интерфейса для MQL5-программ: экспертов, скриптов и индикаторов.

 
komposter:

Опечатка:


Спасибо, исправлено
 
Terminal: Изменились структура и место хранения данных терминала - теперь данные каждого установленного терминала хранятся в отдельном каталоге данных терминала.

Начиная 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 этого процесса с точки зрения разработчиков.

 
Patrol:


Получается, что при сохранении советника пользователь должен проводником добраться до папки вида C:\Users\Имя_учетной_записи\AppData\Roaming\MetaQuotes\Terminal\. Если у него при этом установлено 5 терминалов МТ4, то там он увидит список из пяти папок вида Instance_id. И как ему объяснить, в какую именно папку сохранять советник?

Хотелось бы понять, скажем так, Use Case этого процесса с точки зрения разработчиков.


Похоже, Вы не прошли дальше раздела о "размере груди" (ц)

В меню терминала "Файл" добавлена команда "Открыть каталог данных" для поиска и открытия каталога данных.



 
Rosh:

Похоже, Вы не прошли дальше раздела о "размере груди" (ц)

Т.е. предполагается, что пользователь должен сохранить файл советника в произвольное место, потом в терминале открыть эту папку и перетащить советник туда? Верно?
Сам я просто никогда не пользовался проводником Windows (использую Total Commander), поэтому не додумался до такого решения.

Но теперь другой вопрос (для меня гораздо более важный): Можно ли как-то программно определить путь к папке данных, если известна папка установки терминала?

 

Создал заявки в Сервисдеске

#907069 - Групповая загрузка котировок в Архиве котировок.

#907070 - Не правильно работает функция меню "Окно" - "Новое окно".
Причина обращения: