English 中文 Español Deutsch 日本語 Português
LifeHack для трейдера: индикаторы баланса, просадки, загрузки и тиков во время тестирования

LifeHack для трейдера: индикаторы баланса, просадки, загрузки и тиков во время тестирования

MetaTrader 5Примеры | 23 июня 2016, 12:05
5 833 8
Vladimir Karputov
Vladimir Karputov

Оглавление

Введение

Каждое визуальное тестирование в тестере стратегий терминала MetaTrader 5 может преследовать разные цели. Например, иногда нужно просмотреть после окончания тестирования, как изменялся баланс и эквити торгового счёта. Иногда при тестировании в режиме "Каждый тик на основе реальных тиков" нужно визуально оценивать вероятность возникновения тенденций. В общем, для каждого случая нужен отдельный LifeHack-индикатор. Применять разные индикаторы в тестере стратегий терминала MetaTrader 5 мы будем, сохраняя шаблон графика с именем tester.tpl (это шаблон графика, на который выводятся результаты тестирования).

Общий рецепт для применения индикаторов в тестере:

  1. На график прикрепляем один из индикаторов LifeHack-серии.
  2. Сохраняем шаблон как tester.tpl.
  3. Запускаем визуальное тестирование.

Можно сохранять шаблон по-другому — запуская специальный скрипт:

//+------------------------------------------------------------------+
//|                                  ChartSaveTemplateTester_tpl.mq5 |
//|                              Copyright © 2016, Vladimir Karputov |
//|                                           http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2016, Vladimir Karputov"
#property link      "http://wmua.ru/slesar/"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   ResetLastError();
//--- save the current chart in a template
   if(!ChartSaveTemplate(0,"tester"))
      MessageBox("Error SaveTemplate #"+IntegerToString(GetLastError()));
   else
      MessageBox("Template \"tester.tpl\" overwritten!");
  }
//+------------------------------------------------------------------+

В этом скрипте название шаблона "tester" зашито намертво, ведь скрипт узкоспециализированный. Также для него можно назначить горячую клавишу:

hot key 

Рис. 1. Назначение горячей клавиши 


Индикатор LifeHack Ticks

Индикатор тиков "LifeHack Ticks" показывает последние 300 тиков:

//--- indicator buffers
double         AskBuffer[];
double         BidBuffer[];
double         AskBufferTemp[];
double         BidBufferTemp[];
//--- parameters
int            InpVisible=300;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()

Параметр "InpVisible" можно менять — здесь у каждого свои предпочтения. Однако я не рекомендовал бы делать его более 1000 — незачем впустую нагружать терминал.

Кстати, этот индикатор прекрасно демонстрирует различие между реальными тиками и смоделированными:

real ticks

Рис. 2. "Каждый тик на основе реальных тиков"

all ticks

Рис. 3. "Все тики"

Визуально различия между двумя типами генерации тиков можно увидеть в этом видео:         

 

Также индикатор "LifeHack Ticks" в своём подокне отображает время последнего тика. Это даёт возможность в тестере стратегий, в режиме "Шаг за шагом" подойти к нужной дате и просмотреть тики за эту дату.

Например мы хотим увидеть прохождение тиков, начиная с 2016.06.03 15:00 на графике EURUSDH1:

EURUSDH1

Рис. 4. Исследуем тики с даты 2016.06.03 15:00

Последовательность действий:

1. Прикрепляем на график индикатор "LifeHack Ticks" и сохраняем шаблон графика под именем tester.tpl. Для этого делаем клик правой кнопкой мыши на графике и выбираем меню "Шаблоны" - "Сохранить шаблон...". В открывшемся проводнике выбираем шаблон "tester.tpl" (если такого шаблона ещё нет, то набираем в поле ввода его название) и жмём кнопку "Сохранить":

save template

Рис. 5. Сохранение шаблона графика

2. В тестере стратегий терминала MetaTrader 5 указываем диапазон дат так, чтобы в него попала дата 2016.06.03, выбираем символ EURUSD, указываем период тестирования H1 и выбираем тип тестирования "Каждый тик на основе реальных тиков":

ticks testing

Рис. 6. Тестирование.

3. Запускаем визуальное тестирование.

4. В тестере нажимаем кнопку "Приостановка визуализации, Space" (①), в поле ввода "Прокрутить до" указываем дату 2016.06.03 14:59 (②), и после этого перемещаем тики в режиме "Шаг за шагом" (③):

ticks testing 1

Рис. 7. Переход к нужной дате

или же включив тестирование на небольшой скорости. 


Индикатор LifeHack Balance Equity

Индикатор баланса и средств торгового счёта "LifeHack Balance Equity" в процессе визуального тестирования показывает, как меняется баланс и средства на торговом счёте.

LifeHack Balance Equity

Рис. 8. Индикатор "LifeHack Balance Equity"


Индикатор LifeHack Drawdown Load

Индикатор "LifeHack Drawdown Load" позволяет видеть во время визуального тестирования просадку и загрузку депозита. Просадка (drawdown) рассчитывается по формуле:

drawdown=(balance-equity)/balance*100.0 

Вот как выглядит индикатор "LifeHack Drawdown Load" вместе с индикатором "LifeHack Balance Equity" в тестере терминала MetaTradre 5:

LifeHack Drawdown Load

Рис. 9. Индикатор "LifeHack Drawdown Load"

Для удобства восприятия показаний в название меток индикатора добавлены типы отрисовки (line и histogram). Есть еще один важный момент: метки "Drawdown (line)" и "Load (histogram)" сохраняют своё максимальное значение на текущем баре. То есть, если на текущем баре была максимальная загрузка депозита 80%, а потом стала 10%, метка "Load (histogram)" сохранит максимальное значение, равное 80%.


Заключение

Надеюсь, что такой подход — формирование шаблона tester.tpl с необходимыми индикаторами серии LifeHack — поможет визуально обнаружить слабые и сильные стороны тестируемых программ. 


Прикрепленные файлы |
LifeHack_Ticks.mq5 (10.38 KB)
Последние комментарии | Перейти к обсуждению на форуме трейдеров (8)
Vladimir Karputov
Vladimir Karputov | 5 июл. 2016 в 19:28
Александр:
Ок. Я создаю шаблон, сохраняю. Но вот не наблюдаю я работу индикаторов баланса и эквити во время визуального тестирования.
С каким именем Вы создаёте шаблон? Покажите скриншот операции сохранения шаблона.
[Удален] | 6 июл. 2016 в 09:24

tester.tpl

в статье же написано.. 

где он должен лежать? 

Vladimir Karputov
Vladimir Karputov | 6 июл. 2016 в 09:29
Александр:

tester.tpl

в статье же написано.. 

Вы точно сначала на график набрасываете индикаторы LifeHack-серии, а потом сохраняете шаблон?

Общий рецепт для применения индикаторов в тестере:

  1. На график прикрепляем один из индикаторов LifeHack-серии.
  2. Сохраняем шаблон как tester.tpl.
  3. Запускаем визуальное тестирование.

 

В общем, давайте скриншоты, подробно, что Вы делаете... 

[Удален] | 6 июл. 2016 в 12:11
Заработало всё. Залез в лог визуального тестера и досмотрел, что есть запись о том, что надо перекомпилировать индикатор, хотя и не было абсолютно никаких ошибок при компиляции изначально. Возможно проблема вообще была в компиляторе, а не в тестере.
Vladimir Karputov
Vladimir Karputov | 26 нояб. 2019 в 14:52
Комментарии, не относящиеся к этой теме, были перенесены в "Вопросы от начинающих MQL4 MT4 MetaTrader 4".
Универсальный торговый эксперт: Интеграция со стандартными модулями сигналов MetaTrader (часть 7) Универсальный торговый эксперт: Интеграция со стандартными модулями сигналов MetaTrader (часть 7)
Эта часть статьи посвящена интеграции торгового движка CStrategy с модулями сигналов, входящих в стандартную библиотеку MetaTrader. Материал описывает способы работы с сигналами и создание пользовательских стратегий на их основе.
Графические интерфейсы VIII: Элемент "Календарь" (Глава 1) Графические интерфейсы VIII: Элемент "Календарь" (Глава 1)
В восьмой части серии о создании графических интерфейсов в среде торговых терминалов MetaTrader мы рассмотрим сложные составные элементы управления: календари, древовидный список, файловый навигатор. Каждому из этих элементов будут посвящены отдельные статьи, поскольку материал довольно объемный. Итак, в первой главе этой части описывается элемент "Календарь" и его расширенная версия — "Выпадающий календарь".
Графические интерфейсы VIII: Элемент "Древовидный список" (Глава 2) Графические интерфейсы VIII: Элемент "Древовидный список" (Глава 2)
В предыдущей главе восьмой части серии о графических интерфейсах рассматривались элементы «Статический календарь» и «Выпадающий календарь». Вторую главу посвятим не менее сложному составному элементу, такому как «Древовидный список», без которого не обходится ни одна полноценная библиотека для создания графических интерфейсов. Представленная в этой статье реализация древовидного списка содержит в себе множество гибких настроек и режимов, что позволит максимально точно настроить этот элемент управления под свои нужды.
С чего начать при создании торгового робота для Московской биржи MOEX С чего начать при создании торгового робота для Московской биржи MOEX
Многие трейдеры на Московской бирже хотели бы автоматизировать свои торговые алгоритмы, но не знают с чего начать. Язык MQL5 предлагает не только огромный набор торговых функций, но и готовые классы, которые максимально облегчают первые шаги в алготрейдинге.