Визуализация тестирования. Расширение функциональности.

Автор: lexy Среда, Сентябрь 10th, 2014 Нет комментариев

Рубрика: Разное

В 196-м билде клиентского терминала MetaTrader 4 появилась функция визуализации тестирования. Она позволяет контролировать процесс тестирования экспертов на качественно новом уровне. Теперь трейдер-программист может наблюдать за каждым действием своего эксперта, проверяя его работу на истории!

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

Постановка задачи

Чего не хватает при визуализации тестирования для полноценного анализа? Я думаю, в первую очередь — закладок «Торговля» и «История счета».

Сколько открыто позиций? Как скоро сработает отложенный ордер? С какой прибылью закрылась предыдущая позиция? Сколько используется маржи в данный момент и как далеко до MarginCall? При реальной торговле ответы на эти и многие другие вопросы мы ищем на закладках «Торговля» и «История счета» терминала. Но что делать при тестировании? Ответ очевиден — добавить эти закладки в визуализатор.

Технические ограничения

Оптимальным решением поставленной задачи было бы создание двух индикаторов в отдельном окне — для закладки «Торговля» и для «Истории счета». Но тут нас ожидает проблема — индикатор, работающий на графике визуализатора, не имеет доступа к тестируемому («виртуальному») счету, все данные — в том числе, список открытых позиций — он получает из активного рабочего счета.

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

Второй проблемой, с которой нам придется столкнуться, будет ограниченность окна «История счета». Создание полноценного окна с полосой прокрутки и другими удобными функциями заняло бы слишком много времени, а польза от него была бы весьма сомнительной. Ведь у нас есть закладка «Результаты» тестера, она содержит практически всю информацию о совершенных операциях.

Наша «История счета» будет отображать только актуальную информацию. Например, 10 последних закрытых сделок.

Подготовка к использованию

Для начала, загрузите из CodeBase все необходимые файлы:

  • включаемый файл VisualTestingTools.mq4 - в директорию «\MetaTrader 4\experts\include\«;
  • два индикатора - vTerminal.mq4 и vHistory.mq4 - в директорию «\MetaTrader 4\experts\indicators\«;
  • и тестового эксперта VisualizationTestExpert.mq4 - в директорию «\MetaTrader 4\experts\«.

После этого откройте и скомпилируйте (F5) оба индикатора и, при необходимости, эксперта.

Вторым шагом будет создание шаблона tester.tpl. Для этого настройте внешний вид графика (цветовая схема, линии сетки, масштаб), «прицепите» к нему индикаторыvTerminal.mq4 и vHistory.mq4, включите автопрокрутку и воспользуйтесь командой контекстного меню графика «Сохранить шаблон»:

Вы можете загрузить из CodeBase и использовать шаблон, который создал я — просто сохраните его в директорию «\MetaTrader 4\templates\«.

Интеграция в произвольного эксперта

Функции, реализующие отображение информации, находятся во включаемом файле VisualTestingTools.mq4. Прежде всего надо «подключить» его к эксперту — перед объявлением функций вставить строку:

#include <VisualTestingTools.mq4>

После этого необходимо добавить вызов функций, создающих графические объекты и обновляющих информацию. Две — в функцию init() эксперта, и две — в функцию start(). Если у эксперта нет функции init(), ее надо объявить:

int init()
{
    vTerminalInit();
    vHistoryInit();
    return(0);
}

int start()
{
    vTerminalRefresh();
    vHistoryRefresh();

    // код эксперта

    return(0);
}

Вы можете использовать эксперта VisualizationTestExpert.mq4, в котором все необходимые изменения уже сделаны.

Внешние переменные

После подключения файла VisualTestingTools.mq4 в эксперте появляется блок внешних переменных «< — - — VisualTestingTools — - — >»:

Их назначение интуитивно понятно, но я все же расскажу о них подробнее:

  • TerminalRows - максимальное количество строк закладки » Торговля «, отображаемых на экране. Если установить TerminalRows = 0, терминал обновляться не будет;
  • HistoryRows - максимальное количество строк закладки «История счета», отображаемых на экране. Если установить HistoryRows = 0, история счета обновляться не будет;
  • BigText - установите true, если хотите использовать большой размер шрифта;
  • SignalPoints - расстояние в пунктах, начиная с которого будут «подсвечиваться» поля Стоп Лосс, Тейк Профит и Цена открытия (для отложенных ордеров). Например, при SignalPoints = 10 поле Стоп Лосс изменит цвет, когда цена будет в 10-ти пунктах от уровня Стоп Лосс позиции;
  • ShowCancelled - установите true, если хотите видеть в истории сделок отмененные ордера;
  • ShowExpired - установите true, если хотите видеть в истории сделок отложенные ордера, у которых наступило время истечения;
  • MainColor - цвет заголовочных строк Терминала и Истории счета и строки информации о торговом счете Терминала (Баланс, Эквити, …).
  • BuyColor - цвет информации о Buy-позициях;
  • BuyOPColor - цвет поля Цена открытия закладки » Торговля «, на который будет меняться основной цвет при приближении текущей цены к уровню открытия Buy Stop и Buy Limit — ордеров.
  • BuySLColor - для закладки » Торговля «: цвет, на который будет меняться основной цвет при приближении цены к уровню Стоп Лосс Buy-позиций. Для закладки «История счета»: цвет, на который будет меняться основной цвет, если Buy-позиция закрылась по Стоп Лоссу;
  • BuyTPColor - то же, что и BuySLColor, применительно к Тейк Профиту позиций;
  • Sell Color, SellOPColor, SellSLColor и SellTPColor - то же самое, только для Sell-позиций;
  • vTerminal_SubWindow и vHistory_SubWindow - номер подокна индикатора vTerminal и vHistory, соответственно (подробнее — в разделе «Возможные проблемы»).

Использование

Следующий видеоролик демонстрирует процесс тестирования эксперта VisualizationTestExpert.mq4 с подключенными закладками «Торговля» и «Истрия счета» в режиме визуализации:

 

 

Как по мне, получилось очень неплохо.

 

Возможные проблемы

Стоит упомянуть об одной особенности, связанной с использованием индикаторов vTerminal и vHistory.
Функция, отвечающая за поиск окна индикатора (WindowFind), при тестировании не работает. Поэтому для корректной работы номера подокон индикаторов надо задавать явно. Именно для этого и добавлены переменные vTerminal_SubWindow и vHistory_SubWindow.

Если в шаблоне tester.tpl используются другие индикаторы, отображаемые в отдельном окне, надо задавать «номера» индикаторов vTerminal и vHistory в соответствии их реальному расположению: самый верхний — №1, ниже — №2, и так далее. Если используется шаблон только с двумя индикаторами, менять значения переменныхvTerminal_SubWindow и vHistory_SubWindow необходимости нет.

Заключение

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

 

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

 

 

Источник: mql4.com

Оставить комментарий

Чтобы оставлять комментарии Вы должны быть авторизованы.

Похожие посты