MetaTrader 5 build 1375: Лента сделок и доступ к тикам при тестировании

Что нового в MetaTrader 5?

15 июля 2016

Terminal

  1. Добавлена лента сделок в стакане цен.




    Что такое лента сделок
    В ленте сделок в режиме реального времени отображается список всех сделок, заключаемых на бирже. По каждой сделке показывается время ее заключения, направление (покупка или продажа), цена и объем. Для удобного визуального анализа каждое направление сделки показывается отдельным цветом: синим - покупки, розовым - продажи, зеленым - неопределенное направление. Объемы сделки дополнительно показываются в виде гистограммы.

    Как лента сделок помогает понять рынок
    Лента сделок позволит анализировать рынки более детально. Направление сделки в ленте сообщает трейдеру, кто был инициатором ее заключения: покупатель или продавец. Объем заключаемых сделок позволит понять поведение участников рынка: крупные это игроки или мелкие, какова их активность. Скорость совершения сделок и их объем на определенных ценовых уровнях позволит сделать вывод о значимости этих уровней.

    Как использовать данные
    Помимо визуального анализа таблицы, вы можете выгрузить данные по сделкам в CSV файл. Далее их можно изучать в любом другом приложении, например MS Excel. В файле все данные разделены запятой:
    Time,Bid,Ask,Last,Volume,Type
    2016.07.06 16:05:04.305,89360,89370,89370,4,Buy
    2016.07.06 16:05:04.422,89360,89370,89370,2,Buy
    2016.07.06 16:05:04.422,89360,89370,89370,10,Buy
    2016.07.06 16:05:04.669,89360,89370,89370,1,Buy
    2016.07.06 16:05:05.968,89360,89370,89360,7,Sell
    Для сохранения данных в файл откройте контекстное меню:



    Для точного определения направления сделок торговая платформа брокера должна быть обновлена до версии 1375.
  2. Значительно уменьшено время между приходом тика/изменения стакана цен и вызовом точек входа OnTick и OnCalculate. Также уменьшено время между приходом события изменения торгового состояния и вызовом точек входа OnTrade и OnTradeTransaction. Таким образом, MQL5-программы теперь будут быстрее реагировать на рыночные события.
  3.  Ускорена отправка торговых запросов при использовании расширенной аутентификации с помощью SSL-сертификатов.
  4.  Обновлен перевод пользовательского интерфейса на персидский язык.
  5. Исправлено отображение команд установки SL/TP в контекстном меню графика при работе в режиме хеджинга.

Tester

  1. Добавлена возможность запрашивать тиковую историю при тестировании с помощью функции CopyTicks. Ранее данная функция не работала в тестере стратегий.

    • В режиме "Все тики" функция вернет историю сгенерированных тиков. Запросить можно не более 128 000 последних тиков.
    • В режиме "Каждый тик на основе реальных тиков" функция вернет историю реальных тиков. Глубина запрашиваемых данных ограничена только доступностью этих данных. Однако учитывайте, что последние 128 000 тиков кэшируются тестером стратегий, и запрос этих данных будет выполнен достаточно быстро. Более глубокая история запрашивается непосредственно с жесткого диска, а соответственно выполнение запроса займет значительно больше времени.
    • В режимах "Только цены открытия" и "M1 на OHLC" функция по-прежнему не будет работать, поскольку тиковая история фактически не создается.

  2. Добавлена поддержка времени с точностью до миллисекунд. Ранее в тестере стратегий квантом времени являлась одна секунда.

    • Теперь функции EventSetMillisecondTimer и Sleep работают более точно в тестере стратегий.
    • Повысилась точность подачи тиков при тестировании мультивалютных экспертов. Раньше, если в одну секунду укладывалось несколько тиков (тиковый объем минутного бара больше 60), всем им проставлялось одно и то же время. При тестировании моновалютных экспертов это не имеет большого значения, поскольку тики просто последовательно передаются эксперту. Однако при тестировании на нескольких парах важно знать, тик с какой пары пришел первым. Раньше тики по каждому символу передавались эксперту последовательно: сначала все тики за секунду по одному символу, затем - все тики по другому. Теперь они передаются с учетом миллисекунд.

      При тестировании на реальных тиках миллисекунды берутся из исходных тиковых данных. При генерации тиков проставление миллисекунд происходит в соответствии с тиковым объемом. Например, если в одной секунде умещается 3 тика, то им будет проставлено время 000, 333 и 666 миллисекунды.

  3. В режимах "По ценам открытия" и "M1 на OHLC" исполнение отложенных и SL/TP ордеров теперь осуществляется по заявленной, а не по текущей цене на момент исполнения. Алгоритм исполнения по рыночным ценам, используемый в точных режимах (все тики и реальные тики), не подходит для грубых режимов. В последних, промежуточные тики не генерируются, и разница между заявленной в ордере ценой и рыночной ценой на момент исполнения (Open или OHLC), может быть значительной. Исполнение ордеров по заявленной цене в режимах "По ценам открытия" и "M1 на OHLC" дает более точные результаты тестирования.

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




    Окно форвард-тестирования появляется только после завершения тестирования на основном промежутке времени.

  5. На графике тестирования теперь вместо уровня маржи выводится нагрузка на депозит, которая вычисляется как отношение маржи к средствам (margin/equity).


  6. Tester: Исправлен расчет комиссии в годовых процентах при тестировании.

  7. Tester: Исправлен пересчет и отображение баланса на графике, формируемом в процессе тестирования.

MQL5

  1. Изменено поведение функции OrderSend при выставлении, модификации и снятии ордеров. Поведение изменяется только при выводе ордеров во внешние торговые системы. Ранее управление функции OrderSend возвращалось после успешного размещения (обработки) ордера на сервере брокера. Теперь управление возвращается только после того, как сервер брокера получит уведомление от внешней торговой системы, что ордер в ней успешно размещен.

    Ниже схематично изображено предыдущее (красная стрелка) и текущее поведение функции:




  2. В структуру торгового результата MqlTradeResult добавлено поле retcode_external - код ошибки во внешней торговой системе. Проставление и виды этих ошибок зависят от брокера и внешней торговой системы, в которую выводятся торговые операции. Например, значения retcode_external, заполняемые Московской Биржей будут отличаться от DGCX.

  3. В перечисление ENUM_CHART_PROPERTY_STRING добавлены свойства CHART_EXPERT_NAME и CHART_SCRIPT_NAME. Теперь при помощи функции ChartGetString можно выяснить имена эксперта и/или скрипта, прикрепленного к графику, определенного параметром chart_id.

Signals

  1. Исправлена ошибка, из-за которой в некоторых случаях операции закрытия позиции встречной (close by) не копировались.
  2. Доработано автоматическое сопоставление валютных пар, содержащих RUB и RUR.

Market

  1. Исправлена сортировка по категории продукта.

MetaEditor

  1. Исправлена установка фокуса в поле текста замены при открытии диалога замены.
  2. Исправлена массовая замена текста при поиске вверх от текущей позиции.


Обновлена документация.