Советник Mind the Gap

28.03.2020 12 0

Тот, кто уже какое-то время торгует или просто следит за графиками, знает о гэпах — ценовых разрывах.

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

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

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

Но в торговле гэпов есть свои нюансы. Во-первых, они не всегда отрабатываются, во-вторых, крупные игроки могут в них расставлять свои ловушки, зарабатывая на неосторожных спекулянтах.

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

Алгоритм торговли

Торгует, как уже понятно, советник раз в неделю по понедельникам.

Устанавливается на таймфрейм M15.

Рекомендуется торговать гэпы на следующих валютных парах:

  • AUDCAD
  • AUDCHF
  • AUDNZD
  • EURAUD
  • EURJPY
  • EURNZD
  • EURUSD
  • GBPCHF
  • GBPJPY

И первое, что делает робот, это в понедельник в 00-05 ищет гэпы. Гэпы, соответствующие определённому критерию:

Для покупок робот замеряет расстояние от цены Low последней свечи в пятницу до цены Open понедельника. Для продаж он смотрит расстояние от цены High пятничной свечи до Open понедельника. Эти расстояния должны быть не меньше значения параметра MinGap и не больше MaxGap.

Если подходящих данному условия гэпов нет, то MindtheGap отдыхает неделю до следующего понедельника.

Следующим шагом советник замеряет расстояние от цены текущей до High и Low последней свечи в пятницу. Эта величина должна быть не меньше MinGap.

Если меньше, то робот уходит в режим ожидания.

Если оба первых фильтра пройдены, то дальше робот смотрит, куда закрылась первая свеча понедельника: бычья она или медвежья.

И по результатам этого наблюдения делает шаги следующие. Они уже зависят от того, будет робот торговать ситуацию для покупок или для продаж.

Рассмотрим вариант для покупок.

Пусть свеча медвежья, и цена закрытия ниже цены открытия:

  1. Робот пробует найти возможность поставить отложенный ордер на цену открытия недели. Если расстояние недостаточное, то он переходит к следующему пункту.
  2. Идёт проверка возможности войти по рынку. Проверка идет по индикаторам WPR и CCI, но при условии, что в настройках активированы пункты UseWPREnter и UseCCIEnter. Если хоть один индикатор включен, но фильтры по ним не пройдены, то робот уходит в ожидание. Если они отключены оба, и нет возможности установить отложенный ордер, то советник просто войдет по рынку.
  3. Дальше берется среднее значение спреда за последние 100 свечек и сравнивается с параметром MaxSpread. Если среднее меньше, то происходит вход по рынку, если меньше, то уход в режим ожидания.
  4. Если хоть одна из активированных проверок не пройдена, робот уходит в режим ожидания.

Если свеча по закрытию бычья:

  1. Здесь отложенные ордера не ставятся. Есть фильтрация осцилляторами на максимальное значение спреда. Если какие-то из проверок не проходят, то советник уходит в режим ожидания.

Режим ожидания:

  1. Идёт проверка по осцилляторам.
  2. Сравнение по максимальному спреду.
  3. В этом режиме MindtheGap пребывает не протяжении стольких свечей, сколько указано в параметре CandlesToWait. Если за это время ни один фильтр не прошли, то торговая ситуация просто пропускается.

Если робот входит по рынку, то отложенные ордера удаляются автоматически. Если отложенные ордера срабатывают, то автоматически происходит выход из режима ожидания.

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

Если активирован пункт ExitInLoss, то робот может закрывать сделки с минусом, если по фильтрам осцилляторов появятся сигналы на выход из рынка. Если этот пункт отключен, то для выхода из сделки при появлении сигналов должна быть небольшая прибыль. Её размер определяется параметром MinExitTP, который рассчитывается относительно тейк-профита.

Величина тейка указывается в соответствующем пункте. Но его размер все равно сравнивается с размерами гэпа по параметрам MinGap и MaxGap. Если тейк профит меньше MinGap, то будет использовать MinGap. Если тейк больше MaxGap, то за значение тейка будет приниматься значение MaxGap.

Стоп лосс устанавливается в пункте с одноименным названием.

Риск на сделку рекомендуется ставить не более 3% от депозита.

Работу с риском можно контролировать в пункте LotVariant. В нём можно выбрать, как задавать лот: фиксированным значением или в % от депозита.

Есть возможность включать трейлинг-стоп и отдельно можно разрешить тралить только тогда, когда по сделке уже есть прибыль.

Сетки, мартингейл не используются.

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

У MindtheGap довольно много настроек, с которыми предварительно можно ознакомиться ниже в этой статье.

 

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

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

Вот сводные результаты:

Советник устойчив на протяжении длительного периода и показывает стабильный прирост.

Настройки

Служебные настройки

  • SetPeriod — значение периода автоустановки.
  • WorkPeriod — значение периода, когда советнику разрешено работать.
  • TralPeriod — задается величина периода работы трейлингов и слежки за сигналами на выход из сделок.
  • DataRefreshPeriod — как часто робот должен обновлять котировки пары, на которой торгует.
  • MinTradesOpt — значение параметра для пользовательского критерия оптимизации.
  • CalculateDST — рассчитывает DST.
  • Manual_GMT_Offset — указывается разница в часах с Гринвичем.
  • ExpertName — имя советника.
  • Magic — уникальный номер для сделок робота, если 0 — робот создаёт этот номер произвольно.

Фильтр спреда

  • MaxSpread — величина допустимого максимального спреда.
  • MaxAvSpread — величина допустимого среднего спреда по паре.

Настройки сигнала на вход

  • FinishHour — задаётся час, в который робот заканчивает искать сигналы на вход.
  • MinGapSize — величина минимального гэпа, выраженная в условных единицах волатильности.
  • MaxGapSize — величина максимального гэпа, выраженная в условных единицах волатильности.
  • UseMAFilter — включает фильтр в виде скользящей средней. Если она наклонена вверх, то берутся только сигналы на покупку и наоборот.
  • MAPeriod — размер периода скользящей средней.
  • MAMethod — метод расчёта скользящей.
  • MAPrice — указывается вид цен для расчёта скользящей.
  • MAHistory — указывается период, на котором будет определяться наклон скользящей.

Осцилляторные фильтры

DeMarker фильтр

  • UseDemFilter — вкл/выкл фильтр.
  • DemFilterPer— задаётся период для индикатора.
  • DemFilterLevel — указываются значения максимального и минимального уровней шкалы индикатора.

WPR фильтр

  • UseWPRFilter — вкл/выкл фильтр.
  • PRFilterPer — задаётся период для индикатора.
  • WPRFilterLevel — указываются значения максимального и минимального уровней шкалы индикатора.

Stochastic фильтр

  • UseStochFilter — вкл/выкл фильтр.
  • StochFilterKPer, StochFilterSPer — задаются периоды для линий индикатора.
  • StochFilterLevel — указываются значения максимального и минимального уровней шкалы индикатора.

CCI фильтр

  • UseCCIFilter — вкл/выкл фильтр.
  • CCIFilterPer — задаётся период для индикатора.
  • CCIFilterLevel — указываются значения максимального и минимального уровней шкалы индикатора.

Фрактальный фильтр

  • UseFractalFilter — вкл/выкл фильтр.
  • MidFractalDist, OppositFractalDist — величина минимальной дистанции до фракталов сверху и снизу.

Фильтр волатильности

  • UseMaxDRangeFilter — вкл/выкл фильтр оценки размера прошлой дневной свечи.
  • MaxDRange — максимально допустимый размер дневной свечи в условных единицах волатильности.
  • MinDRange — минимально допустимый размер дневной свечи в условных единицах волатильности.
  • UseVolaFilter — вкл/выкл фильтр по волатильноти.
  • VolFilterHist — вкл/выкл историю.
  • MaxCandle1, MinCandle1, MaxCandle2, MinCandle2, MaxCandle3, MinCandle3 — мин и макс значения свечей, выраженные в условных единицах волатильности.

Фильтр новостей

  • AvoidNews  — вкл/выкл фильтр новостей.
  • AvoidHighImpactNews  — вкл/выкл функцию избегания торговли при новостях высокой степени важности.
  • AvoidMediumImpactNews  — вкл/выкл функцию избегания торговли при новостях средней степени важности.
  • AvoidLowImpactNews  — вкл/выкл функцию избегания торговли при новостях низкой степени важности.
  • MinsBeforeNews — количество минут, за которое торговля будет приостановлена до выхода новости.
  • MinsAfterNews — количество минут, через которое после новости торговля будет возобновлена.

Манименеджмент фильтры

МаксРиск фильтр

  • UseMaxRiskFilter — включает использование максимального риска по всем фильтрам.
  • MaxRisk — максимальный допустимый процент риска от депозита.

Фильтр корреляции

  • BalancePairFilter — вкл/выкл фильтр, запрещающий торговать по парам, имеющим между собой корреляцию.

Фильтр минимального расстояния между сделками

  • SafetyViolation — включает режим контролирования временного интервала между сделками.
  • MinMinutesBetweenTrades — размер в минутах минимального временного промежутка между сделками.
  • MinBarsBetweenTrades — минимальный интервал времени между сделками, но уже в барах.

Настройки сигнала на выход

  • ExitProfitCoef — значение минимальной прибыли для выхода.
  • ExitMinutes — указывается минимальный временной интервал от начала сделки для выхода из неё.
  • ExitSignal1вкл/выкл.
  • ExitOnStoByTime — параметр выхода после минимального времени.
  • ExitOnStoInProfit — если активировано, то выход будет происходить только, если есть прибыль не меньше минимально установленной.
  • StochExitPer — размер периода стохастика.
  • Stoh_Close_Level — размер уровня закрытия.
  • ExitSignal2 — вкл/выкл второй сигнал на выход.
  • ExitOnExtrByTime — параметр выхода по истечении минимального времени.
  • ExitOnExtrInProfit — разрешает выход из сделки только при прибыли не меньшей минимального разрешенного значения.
  • X3, X4 — задаются значения экстремумов для выхода из позиций.
  • ExitSignal3 — вкл/выкл третий сигнал на выход.
  • ExitOnWPRByTime — активирует выход по истечении минимального времени.
  • ExitOnWPRInProfit — разрешает выход только при прибыли не меньшей минимально разрешенной.
  • CCIExitPeriod — значение периода CCI.
  • WPRExitPeriod — значение периода WPR.
  • CCIExitLevel — значение уровня для выхода по CCI.
  • WPRExitLevel — значение уровня для выхода по WPR.

Настройки Stoploss

  • MinSL, MaxSL — минимальное количество пунктов для максимального и минимального стоп-лосса.
  • StopVariant — выбор варианта стоп-лосса.
  • Фиксированный — количество пунктов фиксированного стопа.

Стоп по ATR

  • ATR_SL_TF — размер периода ATR.
  • ATR_SL_Coeff — значение коэффициента ATR.

Стоп по фракталам

  • Fract_SL_TF — размер периода, на котором будет идти поиск фракталов.
  • Fract_SL_History — значение на истории для фракталов.
  • Fract_SL_Delta — величина отступа от найденных фракталов.

Настройки TakeProfit

  • TPVar — выбор между фиксированным тейком и тейком, выраженным в % от стоп-лосса.
  • TP — количество пунктов для фиксированного тейк-профита.
  • TPProc — размер тейкав % от стоп-лосса.
  • VirtualTP — параметр виртуальнго тейк-профита.

Настройки ММ

  • LotVariant — выбор между фиксированным лотом, фиксированным процентом, фиксированной пропорцией Ральфа Винса.
  • FixLot — размер фиксированного лота.
  • Risk — размер риска в % от депозита.
  • MoneyForMinLot  — объём денег на депозите на размер минимального лота.

Общие настройки тралов

  • UseTralInLoss — разрешает использование тралла при убыточной позиции.
  • TralStep — размер минимального шага трейлинг-стопа.
  • MinTral — минимальная дистанция до цены для установки стопа.

Трал стандартный

  • UseTralOnPips — вкл/выкл использование трейлинг-стопа по умолчанию.
  • TrailingStop — количество пунктов для трала от текущей цены.

Трал по теням свечей

  • UseTrailingByShadows — вкл/выкл трал по теням свечей.
  • Shadow_TR_TF — параметр периода, на котором будут учитываться тени.
  • Shadow_TR_History — интервал истории.

Трал по фракталам

  • TralFraktalOn — вкл/выкл трейлинг по фракталам.
  • FraktalTF — размер периода.
  • FraktalBars — интервал истории для поиска фракталов.
  • FraktalOtstup — величина отступа.

БУ (безубыток)

  • UseBE — вкл/выкл трал в безубытке.
  • BELevel — количество пунктов для определения безубытка.
  • BEPlusPips — размер отступа от цены открытия.

БУ в процентах от тейка

  • UsePercBE — вкл/выкл трейлинг в безубытке, выраженный в % от тейк-профита.
  • BEPerc — % от тейк-профита.

Прочие торговые настройки

  • VolHist — интервал истории, за который будет рассчитываться волатильность.
  • Slippage — максимально допустимый размер проскальзывания.
  • RetryAttempts — число попыток робота на совершение тех или иных действий (закрытие ордера, открытие, трейлинг-стоп и так далее).
  • SleepTime — интервал в секундах между попытками.
  • SleepMaximum — максимальное время попыток в секундах.
  • ECNAccount — при ECN аккаунтах необходимо включить.
  • UseComments — активирует отображение комментариев в журнале.
  • UsePanel — вкл/выкл отображение панели.

Заключение

MindtheGap показывает себя крепким торговым советником с консервативными правилами управления рисками.

Он приносит совсем скромную по меркам трейдинга доходность. Но и риски при этом под строгим контролем. А, как известно, тише едешь — дальше будешь.

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

Скачать MindtheGap