Открыть на GitHub

Схема стратегии «Первый сигнал дня»

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

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

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

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

  • Вход в лонг: Быстрая средняя пересекает медленную снизу вверх, пока позиция нулевая. Это сочетание запускает лонговый Flag, и, поскольку Flag срабатывает только при первой своей установке, пересечение исполняется лишь тогда, когда с момента последней смены даты лонг ещё не брался. Дальше Position modify покупает по рынку заданным объёмом и полностью отклоняет заявку, если что-то уже открыто.
  • Вход в шорт: Быстрая средняя пересекает медленную сверху вниз, пока позиция нулевая. Сигнал проходит через шортовый 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 Период медленной экспоненциальной скользящей средней. Держите его заметно выше быстрого, иначе средние будут пересекаться постоянно — а защёлка всё равно оставит только первое пересечение каждого дня.
Volume 1 Размер одного входа, в единицах инструмента. Используется обоими направлениями.
Take Profit, % 1.5 Расстояние take-profit, в процентах от цены входа.
Stop Loss, % 1 Расстояние stop-loss, в процентах от цены входа.

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

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

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

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