![]() |
/ | Статьи |
Cтатьи Тестер
Визуализация тестирования. История сделок.
Авторизуйтесь или зарегистрируйтесь , чтобы добавить новую статью
|
Визуализация тестирования. История сделок. [ en ]1. МотивацияВ клиентском терминале MetaTrader 4 появилась функция визуализации тестирования. Она позволяет контролировать процесс тестирования экспертов на качественно новом уровне. Теперь трейдер-программист может наблюдать за каждым действием своего эксперта, проверяя его работу на истории!Об использовании визуализатора вы можете прочитать в статье Тестирование экспертов в клиентском терминале MetaTrader 4. Взгляд изнутри. В настоящей статье будет описано, как сделать тестер стратегий максимально похожим на терминал. В моей предыдущей статье Визуализация тестирования. Расширение функциональности. было описано, как реализовать закладку "Торговля" при тестировании. Сейчас мы добавим к ней закладку "История счета". 2. Задача и реализацияДля начала нам придется смириться с тем, что точную копию "Истории счета" мы сделать не сможем. Для этого пришлось бы писать сложную программу с использованием dll. Да это и ни к чему, так как закладка "Результаты" тестера содержит практически всю информацию о совершенных операциях. Наша же задача
заключается в отображении актуальной информации на экране. Это может
быть очень удобно при анализе работы эксперта. Теперь не будет
необходимости постоянно переключаться между закладками.
Остается напомнить, что для создания подокна, в котором будет
отображаться история, необходимо создать индикатор, и, прикрепив его к
графику, сохранить шаблон под именем tester.tpl либо в шаблоне
<имя_эксперта>.tpl (вы можете скачать индикатор прямо из статьи). ![]() Сохранение шаблона для тестирования
Теперь можно заняться подготовкой эксперта. В этом тоже нет ничего сложного: ... double _Commission = 0.0; string _Comment = ""; datetime _Expiration = -1; #include <VisualTestingTools.mq4> int init() { if(FastEMAPeriod >= SlowEMAPeriod) return(-1); vTerminalInit(); vHistoryInit(); return(0); } int start() { if(FastEMAPeriod >= SlowEMAPeriod) return(-1); vTerminalRefresh(); vHistoryRefresh(); int _GetLastError = 0; ... Вы можете скачать готового эксперта здесь. 3. Тестирование Давайте теперь попробуем протестировать
нового эксперта. Для этого откроем окно тестера стратегий, выберем из
выпадающего списка эксперта CrossMACD_DeLuxe_VisualHistory и нажмем на кнопку свойства. ![]() Окно тестера стратегий У эксперта появилось несколько новых внешних переменных - они объявлены во включаемом файле VisualTestingTools.mq4. Часть из них предназначена для управления закладкой Терминал, часть - для закладки История счета, но большинство - общие: - 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, применительно к Тейк Профиту позиций; - SellOPColor, SellSLColor и SellTPColor - то же самое, только для Sell-позиций. Устанавливаем значения переменных на свое усмотрение и нажимаем "ОК". Проверяем, установлена ли галочка "Визуализация", и запускаем тестирование: ![]() Визуализация тестирования: окна "Терминала" и "Истории счета" загружены ![]() Эксперт открыл позицию, и она отобразилась в "Терминале" ![]() Как только позиция закрылась, она "перекочевала" в Историю счета, а на её место пришла другая. Обратите внимание, что поле StopLoss подсвечено красным - позиция была закрыта по Стоп Лоссу. ![]() Вторая позиция закрылась, на этот раз по Тейк Профиту. Обратите внимание, что последние позиции отображаются сверху в Истории счета. Таким образом, мы всегда будем видеть самые свежие события. ![]() Так выглядит наш виртуальный Терминал спустя несколько минут.
Проблема, описанная мной в статье Визуализация тестирования. Расширение функциональности., касается и индикатора vHistory:
если в шаблоне, который использует тестер, индикатор будет не во втором
подокне, для правильной работы функций, отвечающих за обновление
Истории счета, необходимо указать номер подокна явно: vHistory_win = WindowFind( "vHistory" ); if ( IsTesting() ) { vHistory_win = 2; } 5. Заключение Ниже приведены скриншоты, иллюстрирующие закладку "История счета" в разных ситуациях. ![]() ![]() ![]() Прикрепленные файлы:
![]() ![]() ![]() Предупреждение:
все права на данные материалы
принадлежат MetaQuotes Software Corp. Полная или частичная перепечатка запрещена.
|