Скачать MetaTrader 5

Визуализация тестирования. Ручная торговля.

17 октября 2006, 15:07
Andrey Khatimlianskii
4
9 412

Введение

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

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

В статье упоминаются программные средства, реализующие закладки "Торговля" и "История счета" при визуализации. Более подробно об их использовании можно почитать в статье Визуализация тестирования. Расширение функциональности.. Если вы ещё ни разу не работали с визуализатором, обязательно ознакомьтесь со статьей Тестирование экспертов в клиентском терминале MetaTrader 4. Взгляд изнутри.


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

Для начала, загрузите из CodeBase эксперта vHandsTrade.mq4. Его необходимо сохранить в директорию "\MetaTrader 4\experts\".

Если вы не пользовались "расширением функциональности" из вышеупомянутой статьи, загрузите из другого раздела CodeBase еще несколько файлов:

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

После этого откройте эксперта vHandsTrade.mq4 в MetaEditor-е и скомпилируйте его (клавиша F5). Подтверждением успешной компиляции будет служить сообщение в окне "Инструментарий":



Теперь, когда программа готова, можете заняться подготовкой шаблона графика.  Для этого откройте любой график, настройте его внешний вид по своему вкусу, прикрепите индикаторы vTerminal.mq4 и vHistory.mq4, и сохраните шаблон под именем vHandsTrade.tpl:




Обратите внимание, что для работы с "Тестером ручных стратегий" справа на графике должно быть свободное место - туда будут помещены элементы управления. Поэтому при создании шаблона обязательно включите опцию "Смещение графика":



Теперь можете заняться непосредственно настройкой советника.

Настройка советника

У каждого трейдера есть свои "торговые привычки". Чтоб использование "Тестера ручных стратегий" стало для вас максимально удобным, потратьте пять минут и настройте советника в соответствии с вашими предпочтениями.

В процессе работы вы будете открывать и закрывать позиции, устанавливать отложенные ордера, передвигать Стоп Лосс и Тейк Профит позиций. При этом у вас будет возможность выбирать размер лота для открываемых позиций, время истечения для отложенных ордеров и многое другое. Каждой из настраиваемых характеристик соответствует строка на панели управления:

 и две строки в коде эксперта:


Их назначение интуитивно понятно:
     - RISK (Risk) - % депозита, который будет использоваться при открытии позиции;
     - LOT (Lot) - размер лота, который будет использоваться при открытии позиции, если указан RISK = 0;
     - STOPLOSS (SL) - размер СтопЛосс для открываемых позиций, если при открытии не двигается линия СтопЛосс;
     - TAKEPROFIT (TP) - размер ТейкПрофит для открываемых позиций, если при открытии не двигается линия ТейкПрофит;
     - TRAILINGSTOP (TS) - размер ТрейлингСтопа, которым будут сопровождаться все позиции;
     - EXPIRATION (Exp) - время истечения отложенных ордеров в часах.

Вы можете поменять значения любой предопределенной характеристики прямо в коде. Например, если вы обычно открываете позиции с лотом 1.0, 2.0, 5.0, 10.0 и 50.0, поменяйте строку, где указаны размеры лота на вот такую:
     double LOT[] = { 1.0, 2.0, 5.0, 10.0, 50.0 };
После компиляции и запуска вы увидите следующую картину:


Если вы хотите, чтоб по умолчанию при запуске был выбран лот 5.0, вместо "int SELECTED_LOT = 1;" напишите
int SELECTED_LOT = 3;
   
Теперь 3-й по счету лот будет выбран по умолчанию:


Точно так же можно менять значения всех характеристик. Правило везде одинаковое: в массиве в фигурных скобках должно быть 5 чисел, разделенных запятой, а значение переменных SELECTED_*** должно быть от 1 до 5.

Внешние переменные и запуск

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


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


Собственно, у эксперта всего четыре внешних переменных, остальные он унаследовал от включаемого файла VisualTestingTools.mq4. Но для нормальной и удобной работы необходимо настроить все переменные: 
  • CommentsCount - максимальное количество сообщений, которое будет выводить эксперт на экран;
  • SelectedColor - цвет выбранного значения характеристики Risk, Lot, SL, TP, и так далее;
  • ModifyColor - цвет значка модификации ордера, который будет использоваться при ручной модификации;
  • TrailingColor - цвет значка модификации ордера, который будет использоваться при ТрейлингСтопе;
  • 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, применительно к Тейк Профиту позиций;
  • SellColor, SellOPColor, SellSLColor и SellTPColor - то же самое, только для Sell-позиций;
  • vTerminal_SubWindow и vHistory_SubWindow - номер подокон индикаторов vTerminal и vHistory (описание в предыдущей статье).

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

Первое знакомство

И вот, наконец, мы жмем кнопку Старт. Первое, что мы видим на графике - уже упоминаемая "Панель инструментов":



С ее помощью мы сможем открывать позиции, устанавливать отложенные ордера и выбирать значения предопределенных характеристик. Каждое действие мы рассмотрим подробнее в соответствующей главе, сейчас же только замечу, что все манипуляции с Панелью инструментов безопаснее делать в режиме паузы. Любое действие воспринимается экспертом как приказ и отмене не подлежит. Поскольку эксперт предназначен исключительно для тестера, неосторожность не причинит вам материального ущерба, но вы вполне можете испортить результаты, полученные в результате длительного и кропотливого тестирования.

Ниже на графике - окна "Терминала" и "История сделок". Пока мы не начнем торговлю, они будут пустыми:


С помощью "Терминала" мы сможем закрывать и модифицировать позиции, окно "Истории сделок" играет чисто информативную роль.

Открытие позиции

Попробуем открыть позицию. Для начала, необходимо определить размер лота и расстояние до СтопЛосса и ТейкПрофита - зачем потом тратить время на модификацию?

Как уже говорилось, выбор производится с помощью панели инструментов - необходимо выделить объект, содержащий необходимое значение, и переместить его в любую точку экрана. Одновременно можно перемещать любое количество объектов, т.е. если мы хотим установить Лот равным 1 и ТейкПрофит равным 100, необходимо перетащить соответствующие цифры в произвольную точку:


Теперь нажимаем F12 - приходит следующий тик, и эксперт отмечает выбранные значения:


При открытии позиции эксперт использует выбранное значение характеристики:
     - размер лота вычисляется по формуле Свободная маржа * Risk * 0.01 * Кредитное плечо / Размер контракта. Если Risk=0, используется выбранное значение Lot.
     - расстояние до Стоп Лосс определяется соответствующей линией (будет описано ниже). Если линия Стоп Лосс не двигалась с места, будет использовано выбранное значение SL;
     - расстояние до Тейк Профит определяется соответствующей линией. Если линия Тейк Профит не двигалась с места, будет использовано выбранное значение TP;
     - время истечения (только для отложенных ордеров) - используется выбранное значение Exp.

Открытие позиции происходит очень просто - достаточно перетащить соответствующую линию на график. Для каждого типа ордера есть 3 линии:
     - линия Цены Открытия (сплошная для Бай и Селл позиций, штриховая - для отложенных ордеров), она находится по центру, между линиями Стоп Лосс и Тейк Профит;
     - линия Стоп Лосс (штрихпунктирная), она находится снизу от линии Цены Открытия для Бай позиций, и сверху - для Селл позиций;
     - линия Тейк Профит (пунктирная) - сверху для Бай позиций, снизу для Селл позиций.

Отложенные ордера, которые устанавливаются над текущей ценой (Бай Стоп и Селл Лимит) находятся в верхнем ряду, а те, которые устанавливаются под ценой (Бай Лимит и Селл Стоп) - в нижнем ряду.

Итак, если вы хотите открыть Бай позицию с выбранными значениями Стоп Лосс и Тейк Профит (на данный момент 50 и 100, соответственно), просто перетяните линию открытия Бай позиции на график:


Теперь нажмите F12, и любуйтесь результатом:


Поскольку Бай и Селл позиции открываются исключительно по текущим ценам, нет необходимости позиционировать линию точно на цену - эксперт подставит правильные значения сам. А вот для отложенных ордеров цену открытия надо указывать правильную, иначе ордер установлен не будет.

Давайте, теперь попробуем установить Селл Стоп ордер:
     - размер лота - 10% от депозита;
     - цена открытия и Стоп Лосс устанавливаются вручную;
     - Тейк Профит отключен;
     - время истечения 30 минут (0.5 часа).

Возьмем все необходимые объекты и разместим на графике:


Жмем F12, и смотрим:


Кажется, все получилось.

Закрытие

Закрытие позиций и удаление отложенных ордеров - задача намного более простая. Все, что необходимо сделать - выбрать тикет ордера, который необходимо закрыть, и передвинуть:


Результат не заставит себя ждать - уже на следующем тике эксперт закроет позицию:


Удаление отложенных ордеров происходит точно так же.

Модификация

Управление модификацией ордеров объединяет в себе элементы открытия и закрытия позиций: для того, чтоб выбрать изменяемую характеристику (Цену Открытия, Стоп Лосс или Тейк Профит), необходимо переместить соответствующее поле.

После прихода следующего тика эксперт создаст Линию Модификации, с помощью которой можно изменить значение соответствующей характеристики:


 Передвинув линию на новое место, жмем F12 и видим результат:


Если же необходимо удалить Стоп Лосс или Тейк Профит вообще, просто удалите соответствующее поле:




Удалив поле Цена Открытия, можно закрыть позицию (удалить ордер) - кому-то этот способ может показаться более удобным.

Ограничений на количество одновременно модифицируемых параметров нет - можете менять хоть все открытые позиции за один тик.

Заключение

Прочитав статью, вы убедились, что не обязательно быть программистом чтоб тестировать свою стратегию на истории. С помощью визуального режима тестирования можно торговать на истории вручную.

Представленные в статье эксперт, библиотека и индикаторы позволяют симулировать реальный торговый терминал.

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

Специально для облегчения управления ордерами в реальном режиме времени создавался программный комплекс AutoGraf. Именно из него (с разрешения автора) были взяты некоторые идеи и куски кода при написании этой статьи. За что автору - огромное спасибо.

Andrey Khatimlianskii
Andrey Khatimlianskii | 17 окт 2006 в 15:37
Обсуждение - на форуме.
Sart
Sart | 29 мар 2007 в 15:18
komposter:
Обсуждение - на форуме.
Andrey Khatimlianskii
Andrey Khatimlianskii | 29 мар 2007 в 18:23
Sart:
Что такок тикер линии ? Одним словом не получается никак удаление и модификация ордеров в ручном видео тестировании. ..
Обсуждение - на форуме. Пожалуйста, задавайте вопросы там.
alex
alex | 3 апр 2013 в 20:50
komposter - Огромное Вам спасибо,от души.
Построение фрактальных линий Построение фрактальных линий

В данной статье описывается построение фрактальных линий различного типа при помощи трендовых линий и фракталов.

Разработка торговых тактик для FOREX Разработка торговых тактик для FOREX

Данная статья поможет начинающему трейдеру при выработке торговых тактик для работы на FOREX.

Секреты клиентского терминала MetaTrader 4: Библиотека файлов в MetaEditor'е Секреты клиентского терминала MetaTrader 4: Библиотека файлов в MetaEditor'е

При создании собственных программ важное значение имеет редактор кода. Чем больше функций предлагает редактор, тем удобнее и быстрее создаётся программа. Многие программы создаются на основе уже существующего кода. Вы используете индикатор или скрипт, но Вас не всё в нём устраивает? Скачайте код этой программы с нашего сайта и переделайте его под себя.

Альтернативный лог-файл c использованием HTML и CSS Альтернативный лог-файл c использованием HTML и CSS

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