The X - Универсальный торговый советник, конструктор стратегий

The X - Универсальный торговый советник, конструктор стратегий

27 июля 2016, 12:48
Vladislav Andruschenko
8
5 676

The X


Универсальный торговый советник Автоматический торговый робот с встроенными стратегиями по более, чем 20 стандартным индикаторам

Краткий список функций:

  • Усреднение против тренда,
  • Дополнительное открытие по тренду,
  • трейлингстоп, безубыток,
  • закрытие по общей прибыли или убытку,
  • Виртуальные стоплоссы тейкпрофиты и трейлингстопы,
  • возможность работать позициями или отложенными \ лимитными ордерами,
  • мартингейл,
  • трейлингстоп по Параболику,
  • Функции ограничения просадки,
  • торговля по времени и дням недели
  • и многое другое.....

Внимание! Новый универсальный торговый советник Exp - The xCustomEA, работающий на пользовательских индикаторах:



Основные параметры

НАСТРОЙКИ ТОРГОВЫХ СТРАТЕГИЙ

  • IndSigToTrade - Выбор типа сигналов;
  • TF_IndSigToTrade1 - Выбор ТаймФрейма для сигнала;
  • Signal_Reverse - Переворачивать сигнал главного индикатора;
  • ClosePositionifChangeOWNSignal - Закрывать противоположные позиции при смене главного сигнала;
  • OWNSIGNAL_shift- С какого бара брать сигнал 0 - с текущего 1 - с первого закрытого 2 - с второго закрытия.....;
  • FILTER_IndSigToTrade2 - FILTER_IndSigToTrade6 - Выбор типа сигналов для фильтрации(доступно использование сразу 5 фильтров);
  • FILTER_TF_IndSigToTrade2-FILTER_TF_IndSigToTrade6- Выбор ТаймФрейма для фильтра;
  • Filter1_Reverse-Filter6_Reverse - Переворачивать сигнал фильтра;
  • FILTERSIGNAL1_shift - FILTERSIGNAL6_shift- С какого бара брать сигнал 0 - с текущего 1 - с первого закрытого 2 - с второго закрытия.....;

ФУНКЦИИ СИГНАЛОВ

  • Show_alert_without_opening_positions - Показывать сообщение о новом сигнале, вместо открытия позиций;
  • OpenBarControlOnly - Открывать позиции только на открытии бара(Эмуляция режима "Только по открытым барам");
  • TypeTradeBUYSELL - Выбор типа позиций для открытия (BUYSELL, OnlyBuy, OnlySell);
  • MinuteToOpenNextPosition - Количество минут, после последнего открытия\закрытия для нового открытия позиций;
  • ReverseSignal - true - Переворачивать сигнал стратегии;
  • OpenOppositePositionAfterStoploss - Открыть противоположную позицию, после закрытия последней по стоплоссу;
  • ONlyOnePosbySignal - Открывать только 1 позицию: или BUY и / или SELL;
  • OnePosPerDirection - Разрешить по 1 позиции в одно направление(BUY SELL);
  • OnlyOnePositionPerMagic - Открывать только 1 позицию по магику(на всем счете);
  • OnlyAlternateSignals - Открывать только поочередно: BUY SELL BUY SELL;
  • MAX_BUY_POSITION -MAX_SELL_POSITION - Максимальное количество позиций BUY SELL;
  • ClosePosifChange - Закрывать позиции при обратном сигнале;
  • CloseChangeOnlyInProfit - Закрывать при обратном сигнале только если позиций в прибыли;
  • MaxSpreadToNotTrade - MinSpreadToNotTrade - Мин\Макс спред для разрешения работы советника;

ОСНОВНЫЕ ФУНКЦИИ ТОРГОВЛИ

  • StopOrderUSE - Использовать Отложенные ордера или лимитные ордера, false = Открывать позиции;
  • StopOrderDeltaifUSE - Дистанция для отложенных ордеров;
  • StopOrderDayToExpiration - Экспирация отложенного ордера в днях(1 - текущий день, 0 - без экспирации, хх- количество дней);
  • StopOrderBarToExpiration - Экспирация отложенного ордера в барах(По текущему ТФ);
  • ReInstallStopOrdersNewSignalAppears - Переустанавливать отложенный ордер при смене сигнала;
  • TypeFilling - Тип заливки ордеров по регламенту брокера. Auto - автоопределение типа заливки;
  • RoundingDigits - Округление цен открытия\модификации\отложенного ордера;
  • Sounds - Звуковое сопровождение открытия и модификации позиций;
  • Magic - Магический номер;
  • CommentToOrder - Комментарий к открываемым позициям;
  • Slippage - Проскальзования в пунктах;

ФУНКЦИИ СТОП ОРДЕРОВ

  • VirtualStops - Виртуальные стоплосс\тейкпрофит\трейлингтов вместо реальных;
  • ForcedModifySLTP - Принудительная модификация стоплосс и тейкпрофита на октрытых позициях;
  • SetMinStops - Автоматическое приведение установленных стопов (стоп-лосс, тейк-профит, трейлинг-стоп, дистанция, безубыток) до минимально возможного уровня на сервере;
  • StopLoss - Стоплосс, 0 - не используется;
  • TakeProfit - Тейкпрофит , 0 - не используется;

НАСТРОЙКИ АВТОЛОТА И МАРТИНГЕЙЛА

  • lot - Фиксированный лот;
  • DynamicLot - Динамический лот;
  • LotBalancePcnt - % риска от депозита для динамического лота;
  • RiskRate - Курс валюты депозита по отношению к доллару для расчета динамического лота;
  • MaxLot - Максимальный лот при расчете;
  • Martin - Если 1 то не используется, Коэффициент мартина на следующую сделку после убыточной;

УСРЕДНЕНИЕ

  • UseAverage - Использовать усреднение, открытие дополнительных ордеров против тренда;
  • OnlyModify - Не открывать позиции усреднения, но использовать модификацию стоплосс\тейкпрофита;
  • TakeProfitALL - Общий тейк-профит всех позиций при открытии позиции усреднения;
  • Distance - Дистанция открываемых позиций сетки;
  • DistanceMartin - Коэффициент дистанции сетки;
  • LotsMartinAverager - Увеличение лота для сетки позиций;
  • MaxOrders - Максимальное количество колен, 0 - неограничен;


ДОЛИВКА ПО ТРЕНДУ

  • AdditionalOpening - Использовать открытие дополнительных ордеров по тренду;
  • StopLossALL - Общий тейк-профит всех позиций при открытии позиции усреднения;
  • DistanceAdditionalOpen - Дистанция открываемых позиций сетки для доливки по тренду;
  • LotsMartinAdditionalOpen - Увеличение лота для сетки позиций;
  • MaxOrdersOpenAdditionalOpen - Максимальное количество колен 0 - неограничен;

НАСТРОЙКИ ВРЕМЕНИ РАБОТЫ

  • TradeStartStopbyTime- = true, false. Если true то:
  • SeveralTimeWork - Время торговли в формате Час старта торговли:Минута старта торговли - Част стоп торговли: Минута стоп торговли. ;
  • OpenHour OpenMinute - Час - Минута открытия торгов;
  • ClosePeriod_Minute - Количество минут торговли от времени OpenHour OpenMinute ;
  • CloseHour CloseMinute - Час - Минута закрытия торгов;
  • CloseAllTradesByOutOfTime -Закрывать позиции по истечению торгового времени;
  • TradeByDays(Торговля по дням) - Days - (Выбор дней торговли) через запятую;
  • DayForOptimization - День торговли для оптимизатора;
  • TradeStartbyTimeMonday -Начинать торговлю в понедельник;
  • OpenHourMonday - OpenMinuteMonday - Час - Минута открытия торгов;
  • TradeStartStopbyTimeFriday -Начинать торговлю в пятницу;
  • OpenHourFriday - OpenMinuteFriday- Час - Минута открытия торгов;
  • CloseHourFriday - CloseMinuteFriday - Час - Минута закрытия торгов;
  • CloseFriday - true, false(если true, то закрывать не зависимо от состояния (в прибыли или в убытке); если false, то открытые позиции закрываются согласно алгоритму);

ТРЕЙЛИНГСТОП

  • TrailingStopUSE - Использовать трейлинг-стоп;
  • IfProfTrail - Использовать только для профитных позиций - режим безубытка;
  • TrailingStop - Дистанция трейлинга, 0 - минимально допустимый;
  • TrailingStep - Шаг дистанции;
  • SaveTPafterTrailingStop - Сохранять Тейкпрофит при модификации трейлингстопа;

ТРЕЙЛИНГСТОП по PARABOLIC SAR

  • TrailingStopSAR - Использовать трейлинг-стоп по Параболику;
  • TrailingStopSAR_TimeFrame - ТФ индикатора;
  • step - maximum- Настройки индикатора SAR;

НАСТРОЙКИ БЕЗУБЫТКА

  • MovingInWLUSE - Перенос позиции в безубыток;
  • LevelWLoss - Переносим стоплосс в +LevelWLoss пунктов;
  • LevelProfit - Когда сделка вышла в плюс LevelProfit пунктов;

ЗАКРЫТИЕ ПО ОБЩЕМУ ПРОФИТУ И УБЫТКУ

  • TypeofClose - Тип закрытия по прибыли;
  • TrailOptions - Дистанция для трейлинга прибыли(работает от параметра prifitessss );
  • TypeofClose - Шаг модификация трейлинга прибыли;
  • CloseProfit - Закрывать если +;
  • prifitessss - Количество юнитов (в зависимости от выбора TypeofClose) для закрытия профита;
  • CloseLoss - закрывать если -;
  • lossss - Количество юнитов (в зависимости от выбора TypeofClose) для закрытия убытка;
  • OFFAfterClosePROF OFFAfterCloseLOSS- Закрывать советник при достижении прибыли\убытка;
  • CloseTerminalAfterClosePROF CloseTerminalAfterCloseLOSS- Закрывать терминал при достижении прибыли\убытка

НАСТРОЙКИ ВАЛЮТНЫХ ПАР

  • PAIR1-PAIR12 - Вы можете указать названия валютных пар для торговли одним советником сразу на 12 валютах одновременно;

НАСТРОЙКИ ИНДИКАТОРОВ

  • Indicators options - стандартные настройки индикаторов, Настраивайте только те индикаторы, которые Вы выбрали в качестве сигнала \ фильтра;

НАСТРОЙКИ ЛИМИТА ПРИБЫЛИ\УБЫТКА

  • LimitFor - Лимит расчета по временному диапазону;
  • LimitType - Тип учета лимита(доллары, пункты, проценты);
  • LimitForLosses - Указывается убыток значение в валюте депозита;
  • LimitForProfits - Указывается прибыль значение в валюте депозита;
  • ClosebyLIMITING - Закрывать по достижению лимита;
  • UseCurrentProfit - учитывать прибыль текущих открытых позиций;

НАСТРОЙКИ ОГРАНИЧЕНИЯ ПРОСАДКИ

  • DrawDown_Level - включить блок управления просадкой;
  • Type_DrawDownHR - тип расчета просадки на основе сделок в истории и текущих сделок ;
  • DrawDown_Level_One - первый уровень просадки в процентах;
  • Type_Deal_Level_One - действие при прохождении первого уровня просадки (отключить новые сигналы \ отключить усреднение сделок или дополнительное открытие \ отключить все сделки \ вывести сообщение)
  • DrawDown_Level_Two - второй уровень просадки в процентах ;
  • Type_Deal_Level_Two - действие при прохождении второго уровня просадки (закрыть все выгодные позиции \ закрыть все убыточные позиции \ закрыть все \ вывести сообщение) ;

ОСТАЛЬНЫЕ НАСТРОЙКИ

  • Tester Withdrawal - Блок эмуляции вывода средств в тестере стратегий;


Список индикаторов и фильтров

Параметры эксперта IndSigToTrade..FILTER_IndSigToTrade2, FILTER_IndSigToTrade3.

Список индикаторов и фильтров

Параметры эксперта IndSigToTrade..FILTER_IndSigToTrade2, FILTER_IndSigToTrade5.
Сигнал

  1. Сигнал - происходит тогда, когда есть все условия для сигнала, например факт пересечения линий МА. Или появление новой точки ZigZag .
  2. Например : Пересечение уровня 70 для индикатора RSI это сигнал. А если RSI выше уровня 70, то это уже фильтр. 
  3. Сигнал - это то, что появляется в момент поступления котировок, фиксируется на баре. Советник принимает факт совершения сигнала.
  4. Например: Включился свет. Это сигнал потому, что свет только что включился. При включении света , человек проснулся. Это сигнал.
  5. Открытие позиций происходит по факту совершения сигнала, линии пересеклись , тогда открывается позиция. Если линии были пересечены ранее, то это не сигнал. Сигнал уже прошел. 

Фильтр:

  1. Фильтр - Это текущее положение индикатора, например текущее положение линий МА относительно друг друга. Или текущая последняя вершина ZIGZAG 
  2. Фильтр - это то, что на данный момент показывает индикатор. Это не факт совершения сигнала. Это текущее положение индикатора. 
  3. Например: Свет горел. Это фильтр потому, что свет уже был включен и он уже горит.  При включенном свете человек уже не спит. Это фильтр.
  4. Фильтрация сигналов происходит по текущему значению индикатору. Если Быстрая МА выше медленной МА, то это фильтр на то, что должны открываться только BUY.


No Signal

В главный сигнал добавлен No Signal 
При выборе которого, советник игнорирует главный сигнал и торгует по фильтрам. 
При использовании главного индикатора, сигнал формируется как есть! на текущем баре.! 
Это означает, что сигнал на открытие появляется как факт совершения сигнала. Если сигнал есть а фильтр не разрешает открывать позицию, тогда сигнал игнорируется. 
При использовании NoSignal, Вы можете игнорировать факт совершения главного сигнала и работать по фильтрам. 
При использовании фильтров, сигналом считается текущее положение индикаторов относительно их сигналов , но не факт совершения сигнала.

Например:

  1. Сигнал - это пересечение двух МА между собой и факт совершения сигнала есть точка пересечения двух МА.
  2. Фильтр - это положение двух МА относительно друг друга. Если в прошлом они пересеклись, то фильтр показывает текущее положение линий МА.  


Moving Average (MA) (Сигнал 1)

Сигнал рассчитывается по взаимному расположению двух скользящих средних, одна из которых должна иметь меньший период (быстрая МА), а другая, соответственно, больший (медленная МА). Их параметры можно указать в переменных.

Сигнал BUY выдается, когда быстрая МА располагается выше медленной, а сигнал SELL, когда медленная выше быстрой. Состояние "нет сигнала" не используется.

Moving Average Convergence/Divergence (MACD) (Сигнал 2)

Оперрует четырьмя переменными. Сигналы также просты: BUY - главная линия выше сигнальной, SELL - главная линия ниже сигнальной. "Нет сигнала" не используется.

Stochastic Oscillator (Сигнал 3)

Осциллятор состоит из двух линий - главной и сигнальной, что позволяет торговать по сигналам пересечения этих линий. Сигнал BUY - главная линия выше уровня , сигнал SELL - главная линия ниже уровня.

Индикатор RSI (Сигнал 4)

Подобен CCI и DeMarker'у. Сигналами являются выход из зон перекупленности (RSIHighLevel) и перепроданности (RSILowLevel). Поэтому редкие сигналы BUY соответствуют пересечению верхнего уровня сверху вниз, а сигналы SELL - пересечению нижнего уровня снизу вверх. Основное состояние - "нет сигнала". Период индикатора можно задать в параметре RSIPeriod, а цену расчета - в параметре RSIPrice.

Commodity Channel Index (CCI) (Сигнал 5)

Также используются все три сигнала, но основное состояние все же "нет сигнала". Редкое появление торговых сигналов соответствует пересечению верхнего уровня сверху вниз (BUY) и пересечению нижнего уровня снизу вверх (SELL). Верхний и нижний уровни определяются значением внешних параметров CCIHighLevel и CCILowLevel. Период и цена расчета индикатора определяются значениями CCIPeriod и CCIPrice.

Williams Percent Range (WPR) (Сигнал 6)

Стоит в одном ряду с RSI, CCI и DeMarker. Сигнал BUY - пересечение уровня перекупленности (WPRHighLevel) сверху вниз, сигнал SELL - пересечение уровня перепроданности (WPRLowLevel) снизу вверх. Все остальное - "нет сигнала". Изменять извне можно только параметр периода индикатора - WPRPeriod.

Полосы Боллинджера (Bollinger Bands) (Сигнал 7)

Присутствуют все три типа сигналов: BUY - цена закрытия предыдущей свечи ниже нижней линии, SELL - цена закрытия предыдущей свечи выше верхней линии, "нет сигнала" - цена закрытия свечи между линиями.

Индикатор Envelopes (Сигнал 8)

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

Alligator (Сигнал 9)

Также для всех линий используется одинаковый метод усреднения (AlligatorMethod) и цена расчета (AlligatorPrice). Особенностью индикатора является то, что все линии имеют положительный сдвиг вправо. Это позволяет без опаски читать значения индикатора на текущем баре, так как они уже точно сформированы и изменениям не подлежат.

Сигнал BUY - линия губ выше линии зубов, а линия зубов выше линии челюстей, сигнал SELL - линия губ ниже линии зубов, а линия зубов ниже линии челюстей. Во всех остальных случаях сигнала нет.

Moving Average of Oscillator (OsMA) (Сигнал 10)

Сигналы считаются немного по-другому: BUY - значение гистограммы выше нуля, SELL - значение гистограммы ниже нуля. Состояние "нет сигнала" будет лишь в тех редких случаях, когда значение OsMA будет равно нулю.

Awesome Oscillator (AO) (Сигнал 11)

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

Ichimoku (Сигнал 12)

принцип работы по пересечению линий TENKANSEN и KIJUNSEN, Если TENKANSEN больше чем KIJUNSEN - сигнал на BUYЕсли TENKANSEN меньше чем KIJUNSEN - сигнал на SELL

Accelerator/Decelerator (AС) (Сигнал 13)

Такие же сигналы как и у AO

Bar (Сигнал 14)

Работа по направлению бараЕсли Close свечи выше чем Open свечи (Бычья свеча  )- сигнал BUYЕсли Close свечи ниже чем Open свечи (Медвежья свеча  )- сигнал SELL

ADX  (Сигнал 15)

стратегия сигналов из справочника: https://www.metatrader5.com/ru/terminal/help/indicators/trend_indicators/admi данный сигнал может принимать два типа сигналов на открытие если ADXLevel =0, тогда используется стратегия: Уайлдер предлагает покупать, если +DI пересекает выше -DI, и продавать, когда +DI пересекает ниже -DI. если ADXLevel !=0, тогда используется стратегия: Уайлдер предлагает покупать, если +DI пересекает выше -DI при этом +DI выше ADXLevel, и продавать, когда +DI пересекает ниже -DI при этом -DI выше ADXLevel. При использовании ADX в качестве фильтра, используется положение линий +DI>-DI = только BUY, +DI<-DI = только SELL, ADXLevel не используется. 

ZIGZAG (Сигнал 17)

Сигналом для открытия позиции по индикатору ZIGZAG являются пересечение экстремумов ZIGZAG. При использовании сигналов важно настроить параметр shift. При значении 0 - позиция открывается сразу в сторону пересечения текущей ценой Bid последнего экстремума ZIGZAG. При значении 1 - позиция открывается тогда, когда пересечение зафиксировано на 1 закрытом баре. Последним экстремумом считается зафиксированный экстремум 1, когда от этого экстремума уже откладывается новый отрезок ZIGZAG. Пересечение максимальной и минимальной точки и является сигналом для открытия позиции. Фильтром ZIGZAG считается направление последнего отрезка ZIGZAG 0.

ATR (Сигнал 18)


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

Когда ATR растет это означает высокую волтаильность рынка.

Низкие показатели ATR означают Низкуя волатильность рынка.

Логика фильтра по ATR:

ЦЕНА(ATRprice) текущего бара больше ЦЕНЫ(ATRprice) предыдущего бара + (ATR*ATR_MULTIPLIER) = высокая волатильность фильтр BUY

ЦЕНА(ATRprice) текущего бара меньше ЦЕНЫ(ATRprice) предыдущего бара - (ATR*ATR_MULTIPLIER) = высокая волатильность фильтр SELL

 

ADX Wilder  (Сигнал 19) - Только для мт5

Технический индикатор Индекс Среднего Направления Движения Уайлдера (Average Directional Movement Index Wilder, ADX Wilder) помогает определить наличие ценовой тенденции. Данный индикатор построен в строгом соответствии с алгоритмом, описанным Уэллсом Уайлдером в книге "Новые концепции технических торговых систем".

Money Flow Index (Сигнал 20)

Торговля по индикатору Money Flow Index

Индекс Денежных Потоков (Money Flow Index, MFI) показывает интенсивность, с которой деньги вкладываются в

ценную бумагу или выводятся из нее. Построение и интерпретация индикатора аналогична Relative Strength

Index, с той только разницей, что в MFI учитывается и объем.

Сигналы индикатора аналогичны сигналам от индикатора RSI;

Fractals (Сигнал 21)

Торговля по индикатору Fractals

Сигналом для открытия позиций является пересечение  уровня последнего фрактала:

При пересечении вверх ценой последнего верхнего фрактала - открывается позиция BUY;

При пересечении вниз ценой последнего нижнего фрактала - открывается позиция SELL;

Фильтр: Аналогично главному сигналу:

Если цена выше последнего верхнего фрактала - только позиция BUY;

Если цена ниже последнего нижнего фрактала - только позиция SELL;

Внимание! Фрактал может рисоваться минимум на 2 закрытом баре и может отрисовываться в прошлое на

неограниченное количество баров назад. Учитывайте это при анализе сигнала!



Вопрос Ответ по программе Exp - The X

В чем указываются значения в параметрах в пунктах или пипсах?
В пунктах! понятие Пункт взято из значения переменной Point() 

  • Если у Вас 5\3 значный брокер, тогда 1 пункт = 0.00001\0.001 
  • Если у Вас 4\2 значный брокер, тогда 1 пункт = 0.0001\0.01 

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

Почему результаты тестирования в мт4 и мт5 терминалах разные?
Потому, что это разные терминалы, с разной историей котировок, с разными принципами работы тестера стратегий.

Какие настройки Вы используете у себя на сигнале?
Настройки по умолчанию. Я только тестирую правильность работы функций, а не прибыльность этого советника.

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


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

Можете добавить в советник несколько пользовательских индикаторов?
Нет, этот советник создавался только для стандартных индикаторов. Я не могу добавить все индикаторы Интернета в этот советник.  
Когда добавите еще индикаторов?
Я добавляю только те индикаторы, которые считаю нужными. К сожалению я не могу добавить все индикаторы в советника. Советник итак переполнен внешними параметрами

У меня не работает эта функция!
Я могу помочь Вам только тогда, когда ВЫ предоставите  полный отчет по ошибкам 

Файлы:
Поделитесь с друзьями: