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

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

MetaTrader 5Примеры | 23 июня 2016, 12:05
5 892 10
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)
Последние комментарии | Перейти к обсуждению на форуме трейдеров (10)
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".
Elias Ramos
Elias Ramos | 6 сент. 2024 в 19:46
Is it possible to make the indicator the same as the balance and equity chart from the strategy tester? Could you guide me if it's possible to do that?
Elias Ramos
Elias Ramos | 6 сент. 2024 в 19:50
?
Универсальный торговый эксперт: Интеграция со стандартными модулями сигналов MetaTrader (часть 7) Универсальный торговый эксперт: Интеграция со стандартными модулями сигналов MetaTrader (часть 7)
Эта часть статьи посвящена интеграции торгового движка CStrategy с модулями сигналов, входящих в стандартную библиотеку MetaTrader. Материал описывает способы работы с сигналами и создание пользовательских стратегий на их основе.
Графические интерфейсы VIII: Элемент "Календарь" (Глава 1) Графические интерфейсы VIII: Элемент "Календарь" (Глава 1)
В восьмой части серии о создании графических интерфейсов в среде торговых терминалов MetaTrader мы рассмотрим сложные составные элементы управления: календари, древовидный список, файловый навигатор. Каждому из этих элементов будут посвящены отдельные статьи, поскольку материал довольно объемный. Итак, в первой главе этой части описывается элемент "Календарь" и его расширенная версия — "Выпадающий календарь".
Графические интерфейсы VIII: Элемент "Древовидный список" (Глава 2) Графические интерфейсы VIII: Элемент "Древовидный список" (Глава 2)
В предыдущей главе восьмой части серии о графических интерфейсах рассматривались элементы «Статический календарь» и «Выпадающий календарь». Вторую главу посвятим не менее сложному составному элементу, такому как «Древовидный список», без которого не обходится ни одна полноценная библиотека для создания графических интерфейсов. Представленная в этой статье реализация древовидного списка содержит в себе множество гибких настроек и режимов, что позволит максимально точно настроить этот элемент управления под свои нужды.
С чего начать при создании торгового робота для Московской биржи MOEX С чего начать при создании торгового робота для Московской биржи MOEX
Многие трейдеры на Московской бирже хотели бы автоматизировать свои торговые алгоритмы, но не знают с чего начать. Язык MQL5 предлагает не только огромный набор торговых функций, но и готовые классы, которые максимально облегчают первые шаги в алготрейдинге.