Мультитаймфреймовый индикатор TF PANEL

Индикатор TF PANEL
Мультитаймфреймовый индикатор TF PANEL удобное дополнение для тех, кто ориентируется на множество таймфреймов для принятия решения. Удобство заключается в том, что на одном графике можно наблюдать хоть за всеми (21) таймфреймами одновременно. Таймфреймы отображаются в объектах-графиках в подокне SUBWINDOW.

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

С индикатором TF PANEL удобнее работать, чем, если переключать таймфреймы штатными средствами терминала пытаясь запомнить, что же там было на предыдущем кадре.

Или открывать несколько окон с одним и тем же символом устанавливая в каждом из них разные таймфреймы. Каждое окно занимает довольно много места, а в индикаторе TF PANEL для отображения цен используются графические объекты-графики, в которых нет ничего лишнего, за счёт чего и получается всё компактно уместить в один ряд.

После загрузки индикатора в нижней левой части основного графика появляется панель в виде кнопок таймфреймов, которые выстроены в один горизонтальный ряд. В конце ряда кнопка "<<", которая переключает панель в режим настройки объектов-графиков.

Озвучиваем торговые события в MetaTrader 5

Озвучиваем торговые события в MetaTrader 5
В этой статье рассмотрим такие вопросы, как включение в файл эксперта звуковых файлов и соответственно озвучивание торговых событий. Включение в файл означает, что звуковые файлы будут внутри эксперта, и если передать скомпилированную версию эксперта (*.ex5) другому пользователю, то не нужно будет передавать ему папку со звуковыми файлами и объяснять при этом, в какую директорию их разместить.

Для теста возьмём эксперта из предыдущей статьи Сохраняем результаты оптимизации торгового эксперта по указанным критериям. Я убрал из него всё, что не относится к текущей теме, чтобы было проще.

Чтобы озвучить торговое событие средствами MQL5 можно воспользоваться функциями Alert() и PlaySound().

Если использовать функцию Alert(), то будет воспроизводиться всегда один и тот же звук и при этом будет открываться окно с сообщением. Как это выглядит можно посмотреть в статье Введение в MQL5. Вывод информации в печать в разных режимах.


Звук для алерта можно установить в настройках терминала: Главное меню/Сервис/Настройки или одновременное нажатие клавиш Ctrl+O. Далее в разделе События нужно установить флажок Разрешить звуковые оповещения о событиях и в выпадающем списке алертов выбрать подходящий звук (см. рисунок ниже).

Сохраняем результаты оптимизации торгового эксперта по указанным критериям

Сохраняем результаты оптимизации торгового эксперта по указанным критериям
Продолжим серию статей по программированию на MQL5. На этот раз рассмотрим, как можно получать результаты по каждому проходу оптимизации во время оптимизации параметров эксперта. При этом сделаем так, чтобы, если условие-(я), которое-(ые) будет-(ут) настраиваться во внешних параметрах, исполняется, показатели этого прохода будут записываться в файл. Кроме показателей тестов будем сохранять ещё параметры, по которым был получен этот результат.

Для реализации задуманного возьмём уже готового эксперта с простым торговым алгоритмом из статьи Как устанавливать/модифицировать торговые уровни и не получить ошибку? и просто добавим туда все необходимые функции. Я подготовил код подобно тому, как это было сделано в последних статьях. То есть, все функции распределены по разным файлам и подключены к основному файлу проекта. Как подключать файлы к проекту можно посмотреть в статье Использование индикаторов для формирования условий в эксперте.

Чтобы получить доступ к данным во время оптимизации в MQL5 есть специальные функции: OnTesterInit(), OnTester(), OnTesterPass() и OnTesterDeinit(). Кратко рассмотрим каждую из них:

  • - OnTesterInit() - с помощью этой функции определяется начало оптимизации.
  • - OnTester() - в этой функции будет производиться добавление так называемых фреймов во время оптимизации после каждого прохода. Что такое фреймы будет объясняться ниже.
  • - OnTesterPass() - эта функция принимает фреймы во время оптимизации после каждого прохода.
  • - OnTesterDeinit() - в этой функции генерируется событие об окончании оптимизации параметров эксперта.

Теперь нужно разобраться, что такое фреймы. Фрейм это своего рода структура данных отдельного прохода оптимизации. Фреймы во время оптимизации сохраняются в архив *.mqd, который создаётся в каталоге MetaTrader 5/MQL5/Files/Tester. К данным (фреймам) этого архива можно обращаться, как во время оптимизации "на лету", так и после окончания оптимизации. Например, на сайте mql5.com в статье Визуализируй стратегию в тестере MetaTrader 5 показан пример того, как можно визуализировать процесс оптимизации "на лету" и затем включить просмотр всех результатов после оптимизации.