Открыть на GitHub

Переключение тренда с блокировкой на паузу

Пересечения двух экспоненциальных средних на быстрой серии свечей дают куда больше сигналов, чем реально происходит смен тренда, а череда пересечений возле одного ценового уровня способна набить счёт входами, которые гасят друг друга. Эта схема берёт пересечение, тратит его и затем запирает эту сторону на фиксированное число свечей. Замок — блок Flag, обратный отсчёт, который снова его открывает, — блок Delay value, а запускает отсчёт блок Combination, сводящий исполнения обоих направлений в одну линию «вход состоялся».

Обзор стратегии

  • Завершённые свечи одной серии питают быструю и медленную экспоненциальные скользящие средние; ни один элемент схемы не реагирует на ещё формирующуюся свечу.
  • Два блока Crossing читают одну и ту же пару средних, но с переставленными входами, поэтому один из них истинен ровно на том баре, где быстрая средняя пересекает медленную снизу вверх, а другой — ровно там, где сверху вниз.
  • Блок Position, сравниваемый с нулём, говорит, пуста ли позиция, длинная она или короткая, и именно этот ответ превращает пересечение в разрешённый сигнал, а не просто в наблюдение.
  • У каждого направления свой Flag. Сигнал входа — его триггер, а Flag пропускает триггер только в первый раз, когда он выставлен, поэтому второй и все последующие сигналы этой стороны молча отбрасываются.
  • Входы — блоки Position modify, открывающие позицию только при нулевой позиции, благодаря чему разрешённый сигнал и реально выставленная заявка идут в ногу друг с другом.
  • Оба блока входа отправляют свои исполнения в один Combination, и эта единственная линия взводит блок Delay value, передаёт исполнение в Position protection и рисует исполнения на графике.
  • Delay value считает завершённые свечи после исполнения и выдаёт один импульс, когда счёт заканчивается; этот импульс заведён на вход сброса обоих Flag, и обе стороны снова открыты для работы.
  • Противоположное пересечение при открытой позиции собирается вторым Combination и закрывает сделку, а дистанции take-profit и stop-loss могут завершить её раньше.

Правила входа и выхода

  • Вход в лонг: Быстрая средняя пересекает медленную снизу вверх на завершённой свече при нулевой позиции. Логическое условие, объединяющее эти два факта, взводит длинный Flag; если Flag ещё заперт после предыдущего входа в лонг, сигнал на этом и гаснет, и ничего не заявляется. Иначе Flag срабатывает один раз, Position modify покупает по рынку заданным объёмом, и Flag остаётся выставленным, пока его не освободит обратный отсчёт.
  • Вход в шорт: Быстрая средняя пересекает медленную сверху вниз на завершённой свече при нулевой позиции. Сигнал проходит через короткий Flag по тому же правилу, и Position modify продаёт по рынку тем же объёмом. Два Flag независимы, поэтому запертая длинная сторона не мешает взять короткую.
  • Выход: Пересечение вниз в лонге и пересечение вверх в шорте сходятся в блоке Combination, который запускает один Position modify, настроенный на закрытие, и объём закрытия он вычисляет сам. Position protection работает параллельно, от исполнения входа, и может завершить сделку раньше — на дистанции take-profit или stop-loss. Разворот одной заявкой не делается: сначала позиция возвращается к нулю, а противоположная сторона открывается позже — пересечением, которое застанет позицию пустой, а эту сторону незапертой.

Параметры

Параметр По умолчанию Описание
Candles 00:05:00 Таймфрейм серии свечей, на которой работает вся схема. Он же задаёт единицу паузы: она считается в свечах этой серии.
Fast EMA Length 14 Длина быстрой экспоненциальной скользящей средней.
Slow EMA Length 40 Длина медленной экспоненциальной скользящей средней. Держите её заметно больше быстрой; средние близкой длины пересекаются постоянно, и всю фильтрацию тогда выполняла бы защёлка.
Cooldown Candles 72 Число завершённых свечей, на которое сторона остаётся запертой после исполнения входа. Увеличение прореживает сделки, уменьшение позволяет «пиле» дать несколько входов подряд.
Volume 1 Объём одного входа, в единицах инструмента. Используется обоими направлениями.
Take Profit, % 1.5 Дистанция take-profit, в процентах от цены входа.
Stop Loss, % 1 Дистанция stop-loss, в процентах от цены входа.

Детали диаграммы

  • Flag никогда не выдаёт false. Это защёлка, а не вентиль: он сообщает о моменте, когда его выставили, а всё, что он блокирует, он блокирует молчанием — поэтому сторону снова открывает вход сброса, а не логическое Not.
  • Delay value взводится только из пустого состояния. Исполнение, пришедшее при уже идущем отсчёте, его не продлевает, поэтому пауза отсчитывается от первого исполнения серии, а не от последнего.
  • Отсчёт двигает сама серия свечей: свечи идут на считающий вход и уменьшают счётчик, поэтому пауза выражена в барах и следует таймфрейму, а не астрономическим часам.
  • Импульс сброса открывает сразу обе стороны, тогда как запирается каждая сторона отдельно. Направление, которое за время паузы не торговало, будет разблокировано импульсом, оплаченным другим направлением, — в этом и состоит намеренное отличие защёлки на каждую сторону от единого глобального таймера.
  • Условие входа требует нулевой позиции, и блок входа намеренно отказывается работать из любого другого состояния: защёлку тратит сам сигнал, поэтому сигнал, который не удалось бы исполнить, впустую израсходовал бы паузу этой стороны.

Использование

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