Схема стратегии «Первый сигнал дня»
Пересечение двух экспоненциальных средних на пятиминутных свечах — сигнал обычный, а на быстром таймфрейме он повторяется много раз за день. Эта схема торгует только самый ранний сигнал каждого направления за календарный день и пропускает мимо все последующие пересечения. Память, которая это позволяет, — два блока 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, прогоните схему на исторических данных в тестере, затем подстройте параметры или сами кубики под свой инструмент, прежде чем торговать вживую.