Смотри, как бесплатно скачать роботов
Ищи нас в Facebook!
Ставь лайки и следи за новостями
Интересный скрипт?
Поставь на него ссылку - пусть другие тоже оценят
Понравился скрипт?
Оцени его работу в терминале MetaTrader 5
Советники

Ilan 1.6 Dynamic HT - эксперт для MetaTrader 5

Опубликовал:
Vasiliy Sokolov
Просмотров:
19584
Рейтинг:
(67)
Опубликован:
2015.02.12 14:43
Обновлен:
2016.11.22 07:33
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу

Реальный автор:

Неизвестен.

Базовый алгоритм, лежащий в основе Ilan Dynamic 1.6 HT, прост. Он основывается на усреднении цены с постепенным увеличением объема каждой сделки.

Например, если цена после открытия первой длинной позиции пошла вниз и превысила определенный диапазон в пунктах, открывается новая длинная позиция, с уже большим объемом.

Таким образом, средняя цена входа Ilan Dynamic постоянно приближается к текущей рыночной цене. Благодаря этому нужно просто дождаться небольшого ценового отката и зафиксировать все открытые к этому времени позиции с прибылью, используя TakeProfit. Общая картина входов Ilan 1.6 Dynamic соответствует этому скриншоту из тестера стратегий MetaTrader 5:

Как видно, цена шла против трех позиций на покупку, однако после небольшого отката все три позиции были зафиксированы со значительной прибылью. На скриншоте указаны также уровни TakeProfit (зеленые горизонтальные) и StopLoss (красные горизонтальные отрезки).

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

Помимо TakeProfit, Ilan 1.6 Dynamic позволяет использовать классический StopLoss, трейлинг стоп, выход по времени, выход по индикатору CCI и выход по уровню Equity всех сделок.


Результаты тестирования

Результаты тестирования Ilan 1.6 Dynamic могут сильно различаться в зависимости от выбранного таймфрейма, периода тестирования, инструмента, брокера и начальных условий.

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

 

Предупреждение: Незафиксированная прибыль/убыток или Equity Ilan 1.6 Dynamic может существенно отличаться от его баланса, что хорошо видно на графике. В случае безоткатного движения цены его Equity серьезно проседает, и в конечном итоге такая торговая тактика может привести к MarginCall и полному разорению счета. Работайте с Ilan 1.6 Dynamic только во время флэта и используйте его экспоненту лота с осторожностью!


Параметры и их значения

Ilan 1.6 Dynamic по умолчанию сконфигурирован оптимальным образом. Большая часть его параметров в этом режиме не используется. Однако вы можете провести индивидуальную настройку параметров.

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

Название параметраЗначение
по умолчанию
Описание параметра
Основные параметры эксперта
LotExponent  1.4
 На сколько умножать лот, при выставлении следующей позиции. Например, при LotExponent = 1.4 и Lots = 0.1, первая позиция откроется с лотом 0.1, вторая усредняющая позиция откроется с лотом 0.2 (0.1 * 1.4^2),  третья с лотом 0.3 (0.1 * 1.4^3), седьмая с лотом 1.0 (0.1 * 1.4^7). Этот параметр следует изменять осторожно. Его значения варьируются от 1.0 (сверконсервативная торговля) до 2.0 (суперагрессивная торговля);
MaxTrades 10  Сколько позиций может быть открыто в одну сторону. Если лимит позиций исчерпан, новые позиции не открываются, а старые позиции закрываются по подходящему условию выхода (зависит от настроек). 
DynamicPips  true  Истина, если используется динамический ценовой диапазон.
DefaultPips  120  Уровень ценового канала в пипсах по умолчанию.
Glubina 24   Ilan 1.6 Dynamic рассчитывает ценовой диапазон между High и Low за последние несколько баров. Параметр указывает, сколько баров необходимо брать для такового расчета.
DEL  Коэффициент, указывающий какую долю из ценового диапазона необходимо брать для определения следующего уровня покупки или продажи. 
Lots  0.1   Размер лота первой сделки. 
lotdecimal   Сколько знаков после запятой рассчитывать для лота.   0 - нормальные лоты (1.0), 1 - минилоты (0.1), 2 - микро (0.01)
TakeProfit 100   Уровень прибыли в пунктах от текущей цены, при достижении которого все открытые позиции закрываются.
slippage 30  Уровень предельно допустимого проскальзывания в пунктах.
MagicNumber  2222   Магический номер эксперта. 
Параметры, определяющие сигналы на вход в рынок 
RsiPeriod 14  Период индикатора RSI.
RsiMinimum 30.0  Если индикатор RSI ниже текущего уровня, то покупки не совершаются.
RsiMaximum  70.0  Если индикатор RSI выше текущего уровня, то продажи не совершаются.
Использование и конфигурация классического StopLoss уровня
UseStopLoss false  По умолчанию, уровень стоп-лосс не используется, однако вы можете включить его, выставив значение этой переменной в true.
StopLoss 500.0  Уровень стоп-лосс в пунктах (по умолчанию используется значение для пятизначных котировок).
Использование и конфигурация Equity Stop
UseEquityStop false  Истина, если требуется закрыть позиции в случае если суммарный убыток по всем позициям достиг некоторого процента от максимально достигнутой прибыли.  
EquityPercent 1.0  Процент прибыли всех открытых позиций, от текущего equity счета. При превышении этого процента включается выход всех позиций по Equity стопу.
TotalEquityRisk 20.0  Процент убытка от максимально достигнутого equity, при котором происходит выход из всех существующих позиций.
Использование и конфигурация TrailingStop
UseTrailingStop false  По умолчанию трейлинг стоп не используется, но вы можете включить его, установив эту переменную в значение true.
TrailStart 100.0  Уровень средневзвешенной прибыли всех позиций в пунктах, при привышении которой производиться трал.
TrailStop 100.0  Уровень в пунктах между текущей ценой и StopLoss, который надо поддерживать.
Использование и конфигурация стопа по индикатору CCI
UseCCIStop false  По умолчанию, использование стопа по индикатору CCI отключено, однако вы можете включить его, установив эту переменную в значение true 
CCIPeriod 55  Период индикатора CCI.
CCILevel 500  Если значение CCI > CCILevel (500 по умолчанию) все короткие позиции закрываются. Если значение CCI меньше -500 (по умолчанию) - закрываются все длинные позиции.
Использование и конфигурация выхода по времени
UseCloseByTime  false  По умолчанию выход по времени не используется, но Вы можете включить его, установив эту переменную в значение true
MaxTradeOpenHours  48  Количество часов, с момента открытия первой позиции, после достижения которых все позиции принудительно закрываются по времени. Учитывается только торговое время. Время выходных и праздников пропускается.

Режимы тестирования. Оптимальные инструменты и таймфреймы.

Ilan 1.6 Dynamic создавался для извлечения прибыли в первую очередь из краткосрочных ценовых движений. Его оптимальный таймфрейм — 15 минутный график (M15). Настройки по умолчанию необходимо использовать для пятизначных котировок. Эксперт поддерживает тестирование в следующих режимах:

  • Every Tick (каждый тик). Эксперт необходимо тестировать в этом режиме, если вы используете трейлинг стоп и вам важен точный выход по уровню TakeProfit, CCI Stop и EquityStop.
  • 1 minute OHLC. Это компромиссный режим, сочетающий высокую скорость тестирования и точность исполнения сигналов.
  • Open prices only (Только по ценам открытия). Это наиболее быстрый режим. Из-за особенностей виртуализации, TakeProfit остановки срабатывают в этом режиме лишь в момент открытия бара. Таким же образом срабатывают CCI Stop и EquityStop. Однако во многих случаях такое искусственное загрубление приносит лучший результат, чем тестирование в режиме "все тики".

Алгоритм Ilan 1.6 Dynamic успешно проходит тестирование как в обычном режиме, так и в режиме с произвольной задержкой (Random Delay).

Рекомендуемые инструменты

Ilan 1.6 Dynamic рекомендуется использовать на всех валютных парах, склонных к долгим бестрендовым периодам. Для этих целей подойдут: EURUSD, USDJPY, GBPUSD, USDCHF, EURCHF и другие основные пары. Его настройки оптимизированы для пятизначных валютных пар. Если Вы хотите использовать эксперт на четырехзначных валютных парах, прежде всего необходимо уменьшить следующие параметры в десять раз:

  • DefaultPips - 12;
  • TakeProfit - 10;
  • slippage - 3;
  • StopLoss - 50.

Как скомпилировать эксперт и заставить его работать (обязательно для прочтения!)

Ilan 1.6 Dynamic в своей работе активно использует так называемую сетку ордеров, а также индивидуальное сопровождение каждого ордера (позиции).

Для такой работы ему необходима специальная виртуализация, позволяющая работать в окружении MetaTrader 5 так, как это принято в MetaTrader 4. Для этого он использует вызовы функций библиотеки HedgeTerminalAPI, работая в окружении, которое она предоставляет. О том, как использовать эту библиотеку, написано в статье "Разнонаправленная торговля и хеджирование позиций в MetaTrader 5 с помощью API HedgeTerminal, часть 2". Если Вы захотете модифицировать торговую логику эксперта, ознакомьтесь с данной статьей для понимания того, как работает код эксперта.

Перед началом работы необходимо установить библиотеку HedgeTerminalAPI на свой компьютер. После этого необходимо будет скопировать программные модули, которые использует эксперт на свой компьютер (прикреплены к данному описанию). Опишем их более подробно.

  • ilan_1.6_dynamic_ht.mq5 - Основной модуль. Содержит торговую логику эксперта. Тег "HT" в названии указывает, что для работы эксперта требуется библиотека HedgeTerminalAPI. Это единственный файл, который необходимо расположить в папке каталог_данных_терминала\MQL5\Experts\, все остальные модули ниже необходимо расположить в каталог_данных_терминала\MQL5\Include\.
  • prototypes.mqh - Собственно файл прототипов, необходимый для взаимодействия с библиотекой.
  • drawhedgeposition.mqh - Трассирует (отрисовывает) сделки эксперта так, как это принято в MetaTrader 4 (см. первый скриншот). Разнонаправленные позиции отрисовываются параллельно друг другу, а не вслед друг за другом, как в MetaTrader 5.
  • environment.mqh - Модуль торгового окружения эксперта. Собирает всю необходимую торговую информацию, необходимую эксперту. С его помощью можно узнать, сколько всего позиций открыто текущим экспертом, какова их прибыль/убыток и много другой полезной информации.
  • testertable.mqh - Отображает простую таблицу всех открытых позиций эксперта в тестере стратегий. Если вы хотите, чтобы позиции эксперта отображались в визуальной таблице в режиме реального времени, используйте панель HedgeTerminal.
  • indicators.mqh - Модуль индикаторов. Содержит простой интерфейс к доступу данным индикаторов.
  • tradestate.mqh - Модуль торгового состояния эксперта. В MetaTrader 5 может пройти некоторое время, прежде чем исполненный ордер попадет в историю ордеров и его можно будет проанализировать. Этот модуль помогает правильно дождаться попадания ордера в историю.

Как визуализировать работу эксперта и контролировать его работу через ручное управление?

Ilan 1.6 Dynamic управляет сразу несколькими позициями, направленными в одну сторону. Все эти позиции видны в MetaTrader 5 как единая нетто-позиция. Чтобы иметь удобный доступ к управлению позициями эксперта, а также в каждый момент времени представлять его торговое состояние необходимо дополнительно установить демонстрационную панель HedgeTerminal. После своего запуска она отобразит позиции эксперта подобным образом:


 Более подробно о работе панели и способах интеграции с экспертами использующими библиотеку HT написано в статье "Разнонаправленная торговля и хеджирование позиций с помощью панели HedgeTerminal, часть 1".

KeyFinder KeyFinder

Скрипт находит и размечает на графике опорные точки Демарка и указывает их размерность.

Setting Chart Setting Chart

Настройка нескольких графиков в один клик.

KeyLevels KeyLevels

Индикатор ценовых уровней круглых чисел: 00, 20, 50, 80.

KeyFinder 2.0 KeyFinder 2.0

Скрипт находит и размечает на графике опорные точки Демарка и указывает их размерность.