Бета-версия платформы MetaTrader 5 build 2155: Области видимости в MQL5, глобальное обновление тестера стратегий и встроенного хостинга
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Flops, 2019.09.07 08:37
Баг
Вложенные директории в Навигаторе на втором уровне и глубже сортируются в обратном порядке. win7x64, mt5x64.
Не исправлено ((
И ещё одна проблема (регрессия)
В MetaEditor при компиляции всей папки (через контекстное меню в Навигаторе) mqh не компилируются, таким образом пропала возможность массово компилировать mqh для проверки ошибок.
Когда ME перестанет фризить от больших исходников, даже разбитых на инклюды?
Уже нет сил, переключение от вкладки с кодом на другую вкладку занимает по 10 минут.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
MetaQuotes Software Corp., 2019.09.20 16:36
Комиссия
Здесь отображается информация о комисcиях, взимаемых брокером при совершении сделок по инструменту. Показываются все подробности расчета:
- Комиссии могут быть одноуровневыми и многоуровневыми, т.е. взиматься в одинаковом размере независимо от объема сделки/оборота или разниться в зависимости от их величины. Соответствующая информация выводится в спецификации.
- Комиссии могут взиматься сразу при совершении сделки или в конце торгового дня/месяца.
- Комиссии могут взиматься в зависимости от направления сделки: за вход, за выход или за оба типа операций.
- Комиссии могут взиматься за каждый лот или за каждую сделку.
- Комиссии могут взиматься в разных величинах: в деньгах, процентах или пунктах.
Например, следующая запись означает, что комиссия начисляется немедленно при совершении сделок входа и выхода. При объеме сделки от 0 до 10 лотов комиссия взимается в размере 1.2 USD за операцию. При объеме сделки от 11 до 20 лотов комиссия будет взиматься в размере 1.1 USD за каждый лот сделки.
0 - 10 | 1.2 USD за сделку
11 - 20 | 1.1 USD за лот
Ждем MQL-доступа к полям.
- MQL5: Добавлена поддержка закрытия позиций по правилу FIFO.
- В перечисление ENUM_ACCOUNT_INFO_INTEGER добавлено значение ACCOUNT_FIFO_CLOSE — признак того, что позиции можно закрывать только по правилу FIFO. Если значение свойства равно true, то позиции по каждому символу разрешается закрывать только в том порядке, в котором они были открыты — сначала самую старую, затем более новую и т.д. При попытке закрыть позиции в ином порядке будет получена ошибка. Для счетов без хеджингового учета позиций (ACCOUNT_MARGIN_MODE!=ACCOUNT_MARGIN_MODE_RETAIL_HEDGING) свойство всегда равно false.
- Добавлен новый код возврата сервера TRADE_RETCODE_FIFO_CLOSE
— запрос отклонен, так как для торгового счета установлено правило "Разрешено закрывать существующие позиции только по
правилу FIFO".
Закрытие позиций может осуществляться тремя основными способами:
- Закрытие через клиентский терминал — это закрытие позиций трейдером вручную, при помощи торгового робота, через сервис "Сигналы" и т.д. При попытке закрыть позиции не по правилу FIFO трейдер получит соответствующую ошибку.
- Закрытие при срабатывании Стоп Лосса или Тейк Профита — эти ордера обрабатываются на стороне сервера, соответственно и закрытие позиций в таком случае инициируется не трейдером (терминалом), а самим сервером. Если для позиции сработал Стоп Лосс или Тейк профит, и эта позиция не соответствует правилу FIFO (по тому же инструменту есть более ранние позиции), то она не будет закрыта.
- Закрытие при срабатывании Стоп аута — такие операции также обрабатываются на стороне сервера. В обычном режиме, когда
закрытие по правилу FIFO отключено, при наступлении Стоп аута позиции закрываются, начиная с самой убыточной. При
включении этой опции у закрываемых убыточных позиции будет дополнительно проверяться время их открытия. Сервер
определяет убыточные позиции по каждому символу, находит для каждого символа наиболее старую позицию, а затем из
найденных позиций закрывает ту, что дает наибольший убыток.
Новая придумка?
Ничего не понятно, причем тут FIFO и закрытие позиций. Как эти придумки отразятся на трейдерах?
В новых билдах что-то конкретно поломали в MQL. Коды, которые раньше нормально компилировались, теперь выдают сотни (а то и тысячи!) ошибок.
Вот например первое, что попалось на глаза:
template<typename T> class A { }; template<typename T> class B : A<T> { }; // class type expected, pointer to type 'void' is not allowed class C : B<void*> { };
Что это за нововведение такое? С каких пор шаблон стал принимать только классы? И почему ошибка в классе B, а не в C, в котором инициируется шаблон с типом void*?
Ждем MQL-доступа к полям.
SymbolInfoString(NULL,SYMBOL_CATEGORY); SymbolInfoString(NULL,SYMBOL_EXCHANGE);
А вот комиссий и вправду нету...
Новая придумка?
Ничего не понятно, причем тут FIFO и закрытие позиций. Как эти придумки отразятся на трейдерах?
Для биржи - никак
FIFO - первый пришел - первый ушел.
Эта придумка для хеджингового учета позиций
Для биржи - никак
FIFO - первый пришел - первый ушел.
Эта придумка для хеджингового учета позиций
Надеюсь на это.
Я знаю что такое FIFO.
Поэтому и не понятно. Значит на хеджинговом счете например цена дошла до Тейк Профита - а сервер в ответ FIFO ?
Как и где посмотреть эту очередь FIFO?
На бирже я знаю как, а на форекс не представляю.

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
В пятницу 20 сентября 2019 года будет выпущена обновленная версия платформы MetaTrader 5 в бета-режиме. Призываем всех трейдеров присоединиться к тестированию новой версии платформы, чтобы самостоятельно опробовать все ее возможности и помочь разработчикам в исправлении найденных ошибок.
Для обновления на новый 2155 билд платформы MetaTrader 5 достаточно нажать "Помощь \ Проверить обновления десктопа \ Последняя бета-версия":
После окончания данного этапа бета-тестирования будет выпущен финальный билд новой платформы MetaTrader 5.
Обновление содержит следующие изменения:
Ранее для работы с виртуальным хостингом использовалось контекстное меню счета в Навигаторе. Теперь же вся необходимая информация и команды управления всегда находятся у вас на виду во вкладке "VPS":
В левой части доступна основная информация о подписке:
Кнопкой Старт/Стоп вы можете быстро останавливать и запускать виртуальный терминал.
В правой части показывается информация об оборудовании на хостинг-сервере, а также графики потребления ресурсов вашим терминалом. Если ваш эксперт или индикатор будет использовать чрезмерное количество памяти или процессорного времени, вы сразу это увидите и сможете своевременно отреагировать.
Здесь же доступна информация о последней миграции торгового окружения, а также команды для ее повторного проведения. Теперь вы не забудете перенести окружение после покупки хостинга.
Аренда виртуального хостинга теперь также осуществляется через вкладку "VPS". Сам процесс при этом не изменился, по-прежнему требуется всего пара шагов. Просто выберите тариф и подходящую систему для оплаты. Наилучший сервер для подключения к именно вашему брокеру будет подобран автоматически.
Теперь вам не нужно искать соответствующие функции в личном кабинете на сайте брокера. Команды для быстрого перехода к страницам пополнения счета и вывода средств стали доступны прямо в терминалах — в меню счетов в Навигаторе и на вкладке торговли в Инструментах:
Категория
Свойство используется для дополнительной маркировки финансовых инструментов. Например, в нем могут быть указаны секторы рынка, к которым относится символ: Agriculture, Oil & Gas и т.д. Показывается, только если соответствующая информация предоставляется брокером.
Биржа
Здесь указывается название биржи или площадки, на которой торгуется символ. Показывается, только если соответствующая информация предоставляется брокером.
Комиссия
Здесь отображается информация о комисcиях, взимаемых брокером при совершении сделок по инструменту. Показываются все подробности расчета:
Например, следующая запись означает, что комиссия начисляется немедленно при совершении сделок входа и выхода. При объеме сделки от 0 до 10 лотов комиссия взимается в размере 1.2 USD за операцию. При объеме сделки от 11 до 20 лотов комиссия будет взиматься в размере 1.1 USD за каждый лот сделки.
0 - 10 | 1.2 USD за сделку
11 - 20 | 1.1 USD за лот
Пример: в коде объявлено две структуры с одинаковым именем, но в разных классах. Ранее такое объявление выдавало ошибку компиляции "identifier already used". Теперь такой код будет успешно скомпилирован и исполнен. При этом для правильного обращения к нужной переменной/структуре/функции не из ее области видимости должен указываться класс, в данном случае — CBar::Item.
Также добавлена поддержка пространства имен (namespace), что дает еще больше свободы при использовании сторонних кодов/библиотек в своих программах.
В результате исполнения программа выведет следующий результат:
2019.09.18 13:39:35.949 TestScript (AUDCAD,H1) NS::func
2019.09.18 13:39:35.949 TestScript (AUDCAD,H1) C::C
2019.09.18 13:39:35.949 TestScript (AUDCAD,H1) NS::C::C
В этом примере для строк "a1=a2" и "b1=b2" компилятор выдаст ошибки:
function 'void A::operator=(const A&)' was explicitly deleted here
attempting to reference deleted function 'void B::operator=(const B&)'
function 'void B::operator=(const B&)' was implicitly deleted because it invokes deleted function 'void A::operator=(const A&)'
Закрытие позиций может осуществляться тремя основными способами:
Ранее компиляция такого кода выдавала ошибку:
Теперь вместо ошибки по умолчанию будет использоваться встроенная функция MQL, как имеющая больший приоритет. А для вызова импортированной функции необходимо явно указать область видимости:
Стартовая страница
Теперь при запуске тестера вместо множества настроек пользователю предлагается выбрать одну из типовых задач и быстро приступить к ее решению. Новшество в первую очередь предназначено для пользователей, не имеющих опыта работы.
Мы выделили несколько основных задач по тестированию и оптимизации стратегий и представили их графически на первой странице. Помимо этого, со стартовой страницы теперь можно быстро перезапустить одну из предыдущих задач. Если вы запускали много задач, и все они не умещаются в списке, воспользуйтесь строкой поиска. Она позволяет найти тест по любому параметру: имени программы, инструменту, таймфрейму, типу моделирования и т.д.
Отсечение лишних параметров
Выбрав одну из задач на стартовой странице, вы переходите к более тонкой подстройке параметров тестирования: выбору эксперта, инструмента, периода и т.д. Для облегчения работы все параметры, которые не требуются для выбранной задачи, скрываются. Например, если вы выбрали математические вычисления, то вам потребуется задать только два параметра: выбрать программу для тестирования и режим оптимизации. Настройки периода тестирования, задержек и генерации тиков будут скрыты.
Удобство настройки тестирования
Для удобства некоторые параметры на странице настройки были перегруппированы. Также для параметров задержки и визуализации добавлены расширенные пояснения. Помимо этого, настройки тестирования теперь можно вручную сохранять и загружать, что позволит быстро возвращаться к предыдущим результатам.
Отсюда же вы можете быстро перейти к редактированию программы в MetaEditor.
Расчет прибыли в пипсах
Теперь в настройках вы можете включить расчет прибыли в пипсах. Это позволяет ускорить процесс тестирования за счет того, что прибыль не будет пересчитываться в валюту депозита через другие курсы (а соответственно не нужно скачивать их ценовую историю). Также в этом режиме не рассчитываются свопы и комиссии.
Общие улучшения
Кнопка запуска/остановки тестирования, а также полоса прогресса перенесены на панель вкладок. Это позволит контролировать процесс, в каком бы разделе тестера стратегий вы бы ни находились. Помимо этого, команды запуска и остановки тестирования добавлены в контекстные меню разделов настройки и входных параметров.
Ранее результаты выполненных задач сохранялись в файлы только при оптимизации советников. Теперь кэш-файлы сохраняются и при одиночном тестировании, позволяя в любой момент вернуться к предыдущим расчетам — посмотреть всю статистику, а также графики баланса, эквити и загрузки депозита. Также в будущем это позволит сравнивать результаты тестов между собой.
Для загрузки предыдущих результатов тестирования используйте новую стартовую страницу тестера: нажмите "Предыдущие результаты" и выберите нужный файл:
В MetaEditor встроен стилизатор кода, позволяющий автоматически оформлять исходный текст программы в соответствии с определенным стандартом. Теперь помимо обычного стиля оформления вы можете использовать и другие популярные стандарты. Для этого откройте настройки MetaEditor и выберите нужный стиль:
Помимо этого, для стилизатора теперь можно задать следующие параметры:
Пробелов на отступ
Определяет количество пробелов, вставляемых при выравнивании вложенных конструкций:
Заменять табуляцию пробелами
При включении этой опции стилизатор будет заменять все символы табуляции в коде на символы пробелов. Количество символов на табуляцию определяется в разделе "Общие".
Удалять пустые строки
При включении этой опции стилизатор будет удалять из кода все строки, в которых есть только символ переноса строки.
Вставлять пробелы после запятых и точек с запятой
При включении этой опции стилизатор будет визуально отделять конструкции с перечислением элементов. Например:
Вставлять пробелы вокруг операторов объявления
При включении этой опции стилизатор будет вставлять пробелы вокруг операторов присваивания, равенства, сравнения и т.д. Например:
Обновление будет доступно через систему Live Update.