Торговая система A BATTERY OUT BBANDS

Автоматизированная торговая система A BATTERY OUT BBANDSСодержание:

1. Параметры торгового эксперта.
2. Дополнительные параметры и возможности.
3. Сигналы и условия для совершения торговых операций.
4. Оптимизация параметров и тестирование эксперта.
5. Анализ полученных результатов.
6. Скачать файлы.

Торговый советник для использования в торговом терминале MetaTrader 5. Используется один стандартный индикатор Bollinger Bands для формирования сигналов на открытие позиции. Эксперт отслеживает движения цены из канала. Сигналы и модификация позиции производятся по сформировавшимся барам текущего таймфрейма. Есть возможность включить/выключить Take Profit, Stop Loss, Trailing Stop, переворот позиции, наращивание объёма позиции, перевод защитного уровня (Stop Loss) в зону безубытка на указанное количество пунктов от текущего уровня цены позиции. Также можно включить/отключить фильтр, который указывает эксперту, что открывать позицию можно только, если отклонение от средней линии в текущий момент не больше указанного количества пунктов. Это даёт возможность поймать движение (тренд) в самом начале. Ещё есть такие возможности, как: ограничить количество наращивания объёма позиции и переоткрытие позиции с целью фиксации текущей прибыли.

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

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


1. Параметры эксперта.

Есть возможность настроить такие параметры в эксперте:

  • - Magic Number – магический номер (идентификатор сделок эксперта).
  • - Deviation – проскальзывание цены в пунктах.
  • - Period BBANDS – период индикатора Bollinger Bands. Индикатор уже есть в стандартном наборе терминала и его не нужно скачивать отдельно.
  • - Deviations BBANDS – отклонение границ от средней линии.
  • - Shift BBANDS - смещение индикатора по горизонтали.
  • - Range BBANDS – фильтр, который позволяет указать размер отклонения от средней линии в пунктах, при котором можно открывать позицию. Например, если установить значение 100, то эксперт не будет открывать позицию, если текущее отклонение больше этого значения. Фильтр можно отключить, установив нулевое значение в этом параметре.
  • - Take Profit – уровень фиксации прибыли, который рассчитывается в пунктах от цены открытия позиции. При нулевом значении Take Profit устанавливаться не будет.
  • - Stop Loss – защитный уровень, который рассчитывается в пунктах от цены открытия позиции. При нулевом значении Stop Loss устанавливаться не будет.
  • - Step Trailing Stop Loss – шаг в пунктах для модификации защитного уровня в сторону прибыли. Уровень рассчитывается от максимумов (High) баров для позиций Sell и от минимумов (Low) баров для позиций Buy. При нулевом значении модификация защитного уровня не производится.
  • - Range Break Even Stop Loss – расстояние цены от текущей цены позиции. Если цена достигает этого уровня, то Stop Loss устанавливается на указанное количество пунктов в параметре Plus Points Break Even (см. ниже) в безубыток.
  • - Plus Points Break Even – количество пунктов, на которое будет установлен Stop Loss от текущей цены позиции в безубыток.
  • - ReOpen Position – переоткрытие позиции с целью фиксации прибыли. Переоткрытие производится каждый раз в момент, когда приходит сигнал на увеличение объёма позиции. Сначала позиция закрывается, а затем открывается снова с учётом объёма наращивания.
  • - Reverse Position – в этом параметре можно указать, использовать ли переворот позиции, если есть сигнал в противоположную сторону. Значение true означает, что переворот позиции будет осуществляться при противоположном сигнале.
  • - Lot – объём для открытия позиции (лот).
  • - Increase Volume – объём, на который будет увеличиваться объём позиции в случае, если исполняется условие (см. параметр Step Increase). Если установить нулевое значение, то наращивание объёма производиться не будет.
  • - Limit Increase – в этом параметре можно установить ограничение для наращивания объёма позиции. Например, если установить значение 5, то наращивание объёма позиции будет произведено только пять раз. Нулевое значение означает, что ограничение выключено, и объём позиции будет производиться, пока есть свободные средства.
  • - Step Increase – расстояние в пунктах, которое должна пройти цена от цены последней сделки текущей позиции (не путать с текущей ценой позиции), чтобы условие на увеличение объёма позиции было истинным.



2. Дополнительные параметры и возможности.

В эксперте есть дополнительные внешние параметры в самом начале списка:

  • - Section of List Symbols – в этом параметре можно указать, из какого раздела в файле символов нужно использовать символы для оптимизации/тестирования. Нумерация разделов начинается нуля.
  • - Update Report – при включении этого параметра эксперт запишет историю сделок в файл в конце теста. В этот отчёт будут включены балансы всех символов по отдельности и общий баланс, а также все просадки от локальных максимумов выраженные в процентах и средствах депозита. Файл-отчёт LastTest.csv создаётся в общей папке терминала в папке эксперта.
  • - On/Off Info Panel – с помощью этого параметра можно включить/отключить отображение информационной панели на графике.
  • - On/Off Sounds – установив этот параметр в положение true можно озвучить торговые операции.


Ниже показан пример заполненного файла ListSymbols.txt, в котором есть три набора символов для тестов. Файл  ListSymbols.txt должен находиться в локальной папке терминала в директории Metatrader 5\MQL5\Files. Каждый набор символов должен начинаться с заголовка, в котором есть символ наклонная черта "/". Вы можете подготовить сколько угодно наборов символов в файле. В эксперте установлено ограничение не более 100 символов в одном наборе. Если что-то неправильно сделано,  то эксперт будет проводить тест/оптимизацию только на текущем символе. Если в параметре Section of List Symbols установить значение, которое выйдет за пределы количества наборов символа в файле ListSymbols.txt, тест/оптимизация также будут проводиться только на текущем символе.

Несколько наборов символов для тестов в текстовом файле
 
Если Вы проводите тест сразу на множестве символов, то полезно посмотреть результаты по каждому из них не только по отдельности, но и всех вместе на одном графике. Поэтому включив параметр Update Reports, эксперт в конце теста запишет в файл отчёт, который можно потом открыть в Excel для анализа результатов на диаграммах. В статье "Записываем историю сделок в файл и строим графики балансов для каждого символа в Excel" я подробно описал, как подобный отчёт можно подключить к книге Excel и обновлять его потом (не закрывая) после каждого теста одним нажатием кнопки.

Информационная панель на графике, если параметр On/Off Info Panel в положении true, выглядит так, как показано на скриншоте ниже. В режиме визуализации во время теста она выглядит почти также (кроме фона). Не все графические объекты пока доступны в тестере. В одном из будущих билдов терминала это будет исправлено.

       
На панели отображаются все параметры эксперта, которые относятся к торговле. Те параметры, которые отключены и не участвуют в формировании условий, затенены (название серого цвета) и отмечены меткой FALSE красного цвета вместо значения параметра. Если включен фильтр Range BBANDS, то на панели значения этого параметра показаны, как текущее значение ценового диапазона (current) и установленное (set). На скриншоте выше это 19/50. Также видно, что название этого параметра синего цвета. Это означает, что условие в текущий момент истинно и если будет сигнал на открытие позиции, то она будет открыта. Если текущий размер диапазона больше, чем это указано в параметре, то название параметра на панели будет белого цвета.

Название параметра Period BBANDS на панели тёмно-зелёного цвета. Это означает, что он кликабелен. Если кликнуть левой кнопкой мыши на названии, на график будет установлен индикатор с текущими параметрами. Изменив период индикатора во внешних параметрах эксперта, индикатор будет переустановлен с новым параметром. Кликнув по названию, когда индикатор на графике, он будет удалён. Также он будет удалён, если удалить эксперта с графика.

Если установить параметр On/Off Sounds в положение true, торговые операции и результат сделки (прибыль/убыток) будут озвучены. На данный момент озвучены такие события:

  • - Ошибка при торговой операции.
  • - Открытие позиции/увеличение объёма позиции/срабатывание отложенного ордера.
  • - Установка/модификация отложенного ордера/Stop Loss/Take Profit.
  • - Закрытие позиции с прибылью.
  • - Закрытие позиции с убытком.


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



3. Сигналы и условия для совершения торговых операций.

Ниже показаны условия для торговых операций на примере с позицией SELL. Для позиций BUY всё аналогично, только в противоположную сторону.

  • - Позиция открывается, если сформировавшийся бар пересекает нижнюю границу индикатора Bollinger Bands вниз. Цена открытия сформировавшегося бара в этот момент выше нижней границы, а цена закрытия ниже (см. пример ниже). На факт пересечения проверяется первое и второе предыдущие значения границы канала, так как границы индикатора Bollinger Bands очень часто бегут впереди цены и пересечение на предыдущем значении (на первом сформировавшемся баре) не определяется. Также учитывается гэп. То есть, отслеживается такая ситуация, когда цена закрытия сформировавшегося бара ниже уровня, а цена открытия нового бара выше. При такой ситуации позиция тоже будет открыта. 

Сигнал на продажу

  • - При открытой позиции в эксперте начинает работать модуль по наращиванию объёма позиции, если это указано в параметре Increase Volume. Значение этого параметра должно быть больше нуля, чтобы модуль был включен в работу. Увеличение объёма производится только, если цена движется в прибыльную сторону и достигает уровня, который рассчитывается для позиций BUY, как: цена последней сделки плюс указанное количество пунктов в параметре Step Increase. Цена закрытия сформировавшегося бара должна быть выше рассчитанного уровня. На скриншоте ниже показано, как это происходит:

Наращивание объёма позиции без переоткрытия (без фиксации прибыли)

  • - Если параметр ReOpen Position установлен в положение true, при каждом увеличении объёма позиции будет производиться фиксация прибыли. Это показано на скриншоте ниже:

Наращивание объёма позиции с переоткрытием (с фиксацией прибыли)
 
  •  - Переворот позиции осуществляется, если включен параметр Reverse Position и исполняется условие на открытие позиции в противоположную сторону. В данном случае это пересечение верхней границы канала снизу вверх. На скриншоте ниже показана такая ситуация:

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



4. Оптимизация параметров и тестирование эксперта.

Оптимизируем параметры эксперта A BATTERY OUT BBANDS и затем протестируем его.

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

Режим торговли Произвольная задержка, на мой взгляд, должен быть установлен всегда и для оптимизации и для тестов. В этом режиме используется задержка для торговых операций, что приближает к реальности. На восьмичасовом  таймфрейме скорее всего лучшие результаты будут получены при дальних торговых уровнях, поэтому для оптимизации параметров вполне подходит режим Только цены открытия. Это самый быстрый режим, хоть и наименее точный.  Результат будет практически идентичен во всех режимах. Следует правда отметить, что в режиме Только цены открытия можно случайно найти ГРААЛЬ, когда торговые уровни находятся очень близко. Поэтому каждый тест нужно проверять в разных режимах (OHLC на M1 и Все тики) прежде, чем делать какие-то выводы.

В качестве примера проведём оптимизацию на одном символе EURUSD. Поиск одного набора оптимальных параметров для множества символов Вы можете попробовать провести самостоятельно, воспользовавшись сервисом распределённых вычислений в сети MQL5 Cloud Network. То есть, длительность оптимизации можно сократить в десятки или даже сотни раз задействовав тысячи процессоров.

Ниже на скриншоте показаны настройки тестера для оптимизации параметров:

Настройки тестера для оптимизации параметров
 
В настройках эксперта в тестере (раздел Входные параметры) установим диапазоны и шаги параметров так, как показано на скриншоте ниже:

Настройки эксперта для оптимизации параметров
 
Обратите внимание на значение (5) в параметре Section Of List Symbols. Как уже писалось выше, если установить значение больше, чем количество наборов символов в файле ListSymbols.txt, эксперт будет проводить тест/оптимизацию на текущем символе.

Объёмы для открытия позиции и наращивания объёма установим минимальными. После оптимизации их можно настроить отдельно, обращая внимание на просадку и загрузку депозита на вкладке Результаты.



5. Анализ полученных результатов.

Процесс оптимизации занял около двух часов на двухъядерном процессоре (Intel Core2 Duo  P7350 @ 2.00GHz). Ниже на скриншоте показан График оптимизации:

График оптимизации
     
Для демонстрации я выбрал результат, в котором все основные показатели на высоком уровне. Ниже показан результат, когда во внешних параметрах эксперта объём для наращивания равен 0.7 лота.

Результат теста
     
Практически идентичный результат с такими параметрами Вы получите и в других режимах (OHLC на M1 и Все тики). Ниже на скриншоте можно посмотреть показатели результата теста (вкладка Результаты):

Показатели результата теста
   

6. Скачать файлы.

Если у Вас ещё не установлен терминал MetaTrader 5, то Вы можете скачать его прямо сейчас: Скачать MetaTrader 5. По этой ссылке можно загрузить всегда самый последний билд торговой платформы.



Комментариев нет :

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