MetaTrader 5 build 2170: области видимости в MQL5 и глобальное обновление тестера стратегий
Мы выпустили новую версию платформы MetaTrader 5.
Обновление содержит следующие изменения:
Terminal: Полностью переработано управление встроенным сервисом Виртуального хостинга. Вся информация об арендованном терминале, а также функции миграции окружения, остановки и запуска теперь доступны в отдельной вкладке окна «Инструменты».
Ранее для работы с виртуальным хостингом использовалось контекстное меню счета в Навигаторе. Теперь же вся необходимая информация и команды управления всегда находятся у вас на виду во вкладке «VPS»:
В левой части доступна основная информация о подписке:
Данные по подключению: сравнение сетевых задержек между вашим терминалом на хостинг-сервере и терминалом на локальном компьютере.
Торговый счет, для которого арендован хостинг, и тарифный план.
Уникальный идентификатор подписки. Нажав на него, вы перейдете в раздел «Хостинг» в своем профиле на MQL5.community, где можно управлять подпиской.
Дата оформления и текущее состояние. Если ваш хостинг остановлен, вы немедленно об этом узнаете.
Кнопкой Старт/Стоп вы можете быстро останавливать и запускать виртуальный терминал.
В правой части показывается информация об оборудовании на хостинг-сервере, а также графики потребления ресурсов вашим терминалом. Если ваш эксперт или индикатор будет использовать чрезмерное количество памяти или процессорного времени, вы сразу это увидите и сможете своевременно отреагировать.
Здесь же доступна информация о последней миграции торгового окружения, а также команды для ее повторного проведения. Теперь вы не забудете перенести окружение после покупки хостинга.
Аренда виртуального хостинга теперь также осуществляется через вкладку «VPS». Сам процесс при этом не изменился, по-прежнему требуется всего пара шагов. Просто выберите тариф и подходящую систему для оплаты. Наилучший сервер для подключения именно к вашему брокеру будет подобран автоматически.
Terminal: Добавлена возможность быстрого перехода к пополнению/снятию средств с торгового счета на сайте брокера.
Теперь вам не нужно искать соответствующие функции в личном кабинете на сайте брокера. Команды для быстрого перехода к страницам пополнения счета и вывода средств стали доступны прямо в терминалах — в меню счетов в Навигаторе и на вкладке торговли в Инструментах:
Terminal: В спецификацию торгового инструмента добавлены новые поля:
Категория
Свойство используется для дополнительной маркировки финансовых инструментов. Например, в нем могут быть указаны секторы рынка, к которым относится символ: Agriculture, Oil & Gas и т.д. Показывается, только если соответствующая информация предоставляется брокером.
Биржа
Здесь указывается название биржи или площадки, на которой торгуется символ. Показывается, только если соответствующая информация предоставляется брокером.
Комиссия
Здесь отображается информация о комисcиях, взимаемых брокером при совершении сделок по инструменту. Показываются все подробности расчета:
Комиссии могут быть одноуровневыми и многоуровневыми, т.е. взиматься в одинаковом размере независимо от объема сделки/оборота или разниться в зависимости от их величины. Соответствующая информация выводится в спецификации.
Комиссии могут взиматься сразу при совершении сделки или в конце торгового дня/месяца.
Комиссии могут взиматься в зависимости от направления сделки: за вход, за выход или за оба типа операций.
Комиссии могут взиматься за каждый лот или за каждую сделку.
Комиссии могут взиматься в разных величинах: в деньгах, процентах или пунктах.
Terminal: В спецификацию инструментов добавлены дополнительные поля для опционов:
Тип опциона — кол или пут
Базис — базовый инструмент опциона
Цена страйк — цена исполнения опциона
Terminal: Добавлена поддержка трансляции "греков" для опционов: дельта, гамма, вега, тета, ро. Теперь для таких инструментов брокеры могут передавать дополнительную информацию в разделе статистики в обзоре рынка, что даст трейдерам больше возможностей для анализа:
Terminal: Теперь инструмент «Перекрестие» показывает расстояние между ценовыми уровнями не только в пипсах, но и в процентах:
Terminal: Теперь при совершении операций в режимах исполнения «По рынку» и «Биржевое» в диалогах торговли показывается итоговая цена сделки, если она известна на момент получения ответа от брокера.
Terminal: Исправлена ошибка, из-за которой команда «Показать все» в Обзоре рынка в некоторых случаях не выводила в список все доступные торговые инструменты.
MQL5: Изменена работа области видимости, что делает MQL5 еще более приближенным к C++. Программисты MQL5 получат гораздо больше свободы по использованию сторонних библиотек. Больше не нужно будет их модифицировать и приводить все идентификаторы к уникальному виду.
Также добавлена поддержка пространства имен (namespace), что дает еще больше свободы при использовании сторонних кодов/библиотек в своих программах.
MQL5: Ускорен доступ к данным таймсерий при помощи функций iTime, iOpen, iHigh, iLow, iClose, iVolume, iTickVolume, iSpread.
MQL5: Добавлена поддержка атрибута "=delete". Он позволяет запретить использование конкретных методов класса.
SYMBOL_CATEGORY — категория символа. Используется для дополнительной маркировки финансовых инструментов. Например, в нем могут быть указаны секторы рынка, к которым относится символ: Agriculture, Oil & Gas и т.д.
SYMBOL_EXCHANGE — название биржи или площадки, на которой торгуется символ.
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 отключено, при наступлении Стоп аута позиции закрываются, начиная с самой убыточной. При включении этой опции у закрываемых убыточных позиции будет дополнительно проверяться время их открытия. Сервер определяет убыточные позиции по каждому символу, находит для каждого символа наиболее старую позицию, а затем из найденных позиций закрывает ту, что дает наибольший убыток.
Добавлена возможность группировки параметров через «input group». Это позволяет визуально отделить одни параметры от других на основе заложенной в параметры логики.
Пример советника, у которого блок входных параметров разбит по их назначению:
input group "Signal"
input int ExtBBPeriod =20; // Bollinger Bands period
input double ExtBBDeviation =2.0; // deviation
input ENUM_TIMEFRAMES ExtSignalTF =PERIOD_M15; // BB timeframe
input group "Trend"
input int ExtMAPeriod =13; // Moving Average period
input ENUM_TIMEFRAMES ExtTrendTF =PERIOD_M15; // MA timeframe
input group "ExitRules"
input bool ExtUseSL =true; // use StopLoss
input int Ext_SL_Points =50; // StopLoss in points
input bool ExtUseTP =false; // use TakeProfit
input int Ext_TP_Points =100; // TakeProfit in points
input bool ExtUseTS =true; // use Trailing Stop
input int Ext_TS_Points =30; // Trailing Stop in points
input group "MoneyManagement"
sinput double ExtInitialLot =0.1; // initial lot value
input bool ExtUseAutoLot =true; // automatic lot calculation
input group "Auxiliary"
sinput int ExtMagicNumber =123456; // EA Magic Number
sinput bool ExtDebugMessage=true; // print debug messages
При запуске такого советника в тестере стратегий появляется возможность двойным кликом по имени группы сворачивать и разворачить блок входных параметров, а также одним кликом по чекбоксу группы выделять все её параметры для оптимизации.
MQL5: Исправлена ошибка, возникавшая при импорте функций из DLL, чьи имена пересекались с функциями MQL. Пример:
MQL5: Исправлено указание времени у новостей экономического календаря. Теперь время события передается с учетом часового пояса торгового сервера, к которому подключен терминал, а не часового пояса локального компьютера.
Стартовая страница
Теперь при запуске тестера вместо множества настроек пользователю предлагается выбрать одну из типовых задач и быстро приступить к ее решению. Новшество в первую очередь предназначено для пользователей, не имеющих опыта работы.
Мы выделили несколько основных задач по тестированию и оптимизации стратегий и представили их графически на первой странице. Помимо этого, со стартовой страницы теперь можно быстро перезапустить одну из предыдущих задач. Если вы запускали много задач, и все они не умещаются в списке, воспользуйтесь строкой поиска. Она позволяет найти тест по любому параметру: имени программы, инструменту, таймфрейму, типу моделирования и т.д.
Отсечение лишних параметров
Выбрав одну из задач на стартовой странице, вы переходите к более тонкой подстройке параметров тестирования: выбору эксперта, инструмента, периода и т.д. Для облегчения работы все параметры, которые не требуются для выбранной задачи, скрываются. Например, если вы выбрали математические вычисления, то вам потребуется задать только два параметра: выбрать программу для тестирования и режим оптимизации. Настройки периода тестирования, задержек и генерации тиков будут скрыты.
Удобство настройки тестирования
Для удобства некоторые параметры на странице настройки были перегруппированы. Также для параметров задержки и визуализации добавлены расширенные пояснения. Помимо этого, настройки тестирования теперь можно вручную сохранять и загружать, что позволит быстро возвращаться к предыдущим результатам.
Отсюда же вы можете быстро перейти к редактированию программы в MetaEditor.
Расчет прибыли в пипсах
Теперь в настройках вы можете включить расчет прибыли в пипсах. Это позволяет ускорить процесс тестирования за счет того, что прибыль не будет пересчитываться в валюту депозита через другие курсы (а соответственно не нужно скачивать их ценовую историю). Также в этом режиме не рассчитываются свопы и комиссии.
Учитывайте, что при расчете прибыли в пипсах объем совершаемых сделок не имеет значения. Для каждой сделки всегда рассчитывается только количество заработанных/потерянных пипсов. Также в этом режиме фактически отсутствует контроль маржи. Используйте его только для быстрой грубой оценки стратегии, а полученные результаты проверяйте в более точных режимах.
Общие улучшения
Кнопка запуска/остановки тестирования, а также полоса прогресса перенесены на панель вкладок. Это позволит контролировать процесс, в каком бы разделе тестера стратегий вы ни находились. Помимо этого, команды запуска и остановки тестирования добавлены в контекстные меню разделов настройки и входных параметров.
Tester: График результатов оптимизации теперь отображается в основной рабочей области терминала, а не в отдельном разделе тестера стратегий. Это позволяет использовать значительно больше пространства для отображения, что делает анализ данных более удобным.
Ранее результаты выполненных задач сохранялись в файлы только при оптимизации советников. Теперь кэш-файлы сохраняются и при одиночном тестировании, позволяя в любой момент вернуться к предыдущим расчетам — посмотреть всю статистику, а также графики баланса, эквити и загрузки депозита. Также в будущем это позволит сравнивать результаты тестов между собой.
Для загрузки предыдущих результатов тестирования используйте новую стартовую страницу тестера: нажмите «Предыдущие результаты» и выберите нужный файл:
Tester: Исправлены ошибки и оптимизирована работа с фреймами.
MetaEditor: Добавлена возможность настраивать стилизатор кода.
В MetaEditor встроен стилизатор кода, позволяющий автоматически оформлять исходный текст программы в соответствии с определенным стандартом. Теперь помимо обычного стиля оформления вы можете использовать и другие популярные стандарты. Для этого откройте настройки MetaEditor и выберите нужный стиль:
MetaEditor: В контекстное меню закладок файлов добавлена команда «Показать в Навигаторе». Она позволяет быстро найти открытый на редактирование файл в структуре папок редактора.
MetaEditor: Исправлено отображение ключевого слова union в подсказках.
Добавлен перевод пользовательского интерфейса на 18 новых языков:
Добрый день. Скажите пожалуйста в МТ5 есть ли возможность разместить названия открытых графиков в 2 — 3 ряда? Открыты примерно 50 графиков акций, и перемещаться по ним очень тяжело. Приходится жать на стрелку вправо 50 раз чтобы добраться до последнего графика.
Хаи от 8 апреля 2024 года пока что не были преодолены толком. Лишь слегка пока что. С поправкой на дивы, может, и ничего. А с поправкой на инфляцию — так себе. Каждый сам решает.
Это лишь ставка душит и новые налоги в 2025 будут. А так я инвестирую в фонд технологий ( туда входит немного акций softline ), что логичнее. В крации именно Баффет упустил на этом большую прибыль, бо...
Сергей Кузьмин, тогда очень странные и довольно истеричные «мысли вслух».
У ЕТранса долгов, в том числе и по высоким ставкам, овердохрена.
И, как разумный инвестор, я бы приветствовал обнуление...
Поржал. Здравствуй старый добрый MQL4. И стоило столько времени упираться?..