Схема стратегии ATR Step Streak
Направление задают две скользящие средние, но в момент, когда они меняются местами, ничего не покупается. Схема выжидает фиксированное число завершённых свечей после этого момента и только затем спрашивает, стоит ли ещё входить в сделку. Ожиданием занимается блок N values: его взводит сравнение двух средних, и он подаёт голос, когда пройдёт заданное ему число свечей. Второе условие измеряет, сколько места осталось до границы недавнего диапазона, причём измеряет в волатильности, а не в цене: перед покупкой цена закрытия должна отстоять от наибольшего максимума не менее чем на один шаг ATR, а перед продажей — на тот же шаг выше наименьшего минимума.
Обзор стратегии
- Завершённые пятнадцатиминутные свечи поступают в конвертер, который выделяет цену закрытия, и в пять индикаторов: быструю и медленную простые скользящие средние, ATR, а также наибольший максимум и наименьший минимум недавнего канала.
- Два блока Comparison сравнивают средние между собой и выдают результат на каждой свече: один истинен, пока быстрая средняя выше медленной, другой — пока она ниже.
- Каждое сравнение взводит свой блок N values. Блок принимает на вход поток свечей, отсчитывает завершённые свечи, идущие после сигнала взведения, выдаёт одиночный импульс, когда счёт исчерпан, и взводится снова на следующем истинном сравнении, так что входная часть схемы работает на более медленном такте, чем рыночные данные.
- Блок Formula умножает ATR на множитель шага, а ещё два блока Formula превращают этот шаг в пару защитных уровней: наибольший максимум минус шаг и наименьший минимум плюс шаг.
- Ещё два сравнения проверяют, находится ли цена закрытия по-прежнему ниже верхнего защитного уровня и по-прежнему ли она выше нижнего, — то есть не ушла ли цена так далеко внутрь канала, что места для сделки уже не осталось.
- Блок Position сравнивается с нулевой переменной, поэтому входная часть схемы знает, пуста ли позиция.
- Каждая сторона собирает четыре условия в блоке Logical condition, настроенном на And: импульс от N values, сравнение средних, проверенное заново в тот же момент, запас до границы канала и отсутствие позиции. Ворота срабатывают только тогда, когда все четыре приходят вместе.
- Modify position открывает сделку по рынку объёмом из переменной, ещё два блока Modify position закрывают её по противоположному сравнению, Position protection взводится каждым исполнением входной заявки, а панель графика рисует свечи, обе средние, обе границы канала, все заявки и все сделки.
Правила входа и выхода
- Вход в лонг: Быстрая средняя выше медленной, блок N values этой стороны выдаёт свой импульс на текущей свече, цена закрытия ниже наибольшего максимума канала не менее чем на один шаг ATR, а позиция пуста. Все четыре условия сходятся в длинном And, и Modify position покупает по рынку объём заявки. Блок настроен только на открытие, поэтому, пока удерживается позиция любой стороны, ничего не покупается.
- Вход в шорт: Зеркальная картина: быстрая средняя ниже медленной, медвежий блок N values выдаёт свой импульс, цена закрытия выше наименьшего минимума канала не менее чем на один шаг ATR, а позиция пуста. Короткий And передаёт сигнал блоку Modify position, который продаёт по рынку объём заявки, тоже только на открытие.
- Выход: Выходов два. Первый — смена мест средними: сравнение, которое становится истинным после смены, запускает закрывающий блок той стороны, что удерживается, и этот блок отправляет по рынку всю позицию. Второй — Position protection: взводимый каждым исполнением входной заявки, он забирает прибыль на 2% и ограничивает убыток на 1%, отсчитывая их от цены закрытия завершённых свечей, которая подаётся на его ценовой вход. Поскольку оба входных блока работают только на открытие, сравнение, закрывающее сделку, никогда не открывает противоположную; следующему входу придётся дождаться очередного импульса, который застанет позицию пустой.
Параметры
| Параметр | По умолчанию | Описание |
|---|---|---|
| Candles | 00:15:00 | Таймфрейм свечей, на которых работает вся схема. Любой счёт в схеме — средние, ATR, канал, период ожидания — измеряется в этих свечах. |
| Fast SMA Length | 20 | Период быстрой средней. Сократите его — и средние будут меняться местами чаще, что чаще взводит блок ожидания и даёт больше входов. |
| Slow SMA Length | 60 | Период медленной средней. Разрыв между ним и быстрым периодом определяет, сколько тренд должен продержаться, чтобы вообще быть распознанным. |
| Bull Streak Bars | 3 | Сколько завершённых свечей отсчитывает блок N values длинной стороны между моментом, когда средние выстроились, и импульсом, который он выдаёт. Единица заставляет схему входить на свече после пересечения; большое значение отодвигает вход глубоко в движение и, поскольку блок взводится заново после каждого импульса, ещё и разносит входы дальше друг от друга. |
| Bear Streak Bars | 3 | То же ожидание на короткой стороне. Держите его равным длинному, если только два направления не должны подтверждаться за разное время. |
| ATR Length | 14 | Окно ATR, измеряющего волатильность. Оно задаёт единицу, в которой выражается расстояние до границы канала. |
| Step Multiplier | 2 | Сколько ATR запаса должно оставаться у цены до границы канала. Повысьте — и входы будут браться только вдали от экстремума, что случается реже; понизьте к нулю — и условие практически исчезнет, оставив отложенный трендовый сигнал наедине с собой. |
| Channel High Length | 20 | За сколько свечей берётся наибольший максимум. Это потолок, под которым длинный вход обязан оставаться на расстоянии шага. |
| Channel Low Length | 20 | За сколько свечей берётся наименьший минимум. Это пол, над которым короткий вход обязан оставаться на расстоянии шага. Держите его равным окну максимума, если только вам не нужен несимметричный канал. |
| Order Volume | 1 | Объём, отправляемый обоими входными блоками. Закрывающие блоки объём не берут: они отправляют столько, сколько держит позиция. |
| Take Profit, % | 2 | Цель по прибыли защитного блока в процентах от цены исполнения. |
| Stop Loss, % | 1 | Ограничение убытка защитного блока в процентах от цены исполнения. Вместе с целью оно определяет, сколько сделок завершится по защите, а не по смене мест средними. |
Детали диаграммы
- Блок N values — это задержка, а не счётчик идущих подряд баров: он взводится первым истинным сравнением, которое видит, отсчитывает следующие за ним завершённые свечи и подаёт голос один раз. Он не проверяет, держалось ли условие всё окно, — потому то же самое сравнение спрашивается ещё раз внутри And в момент прихода импульса: тренд, развалившийся за время ожидания, не проходит эту вторую проверку, и заявка не отправляется.
- Блок Logical condition сбрасывает свои входы сразу после того, как подал голос, поэтому входные ворота оцениваются только на тех свечах, что несут импульс. Между двумя импульсами сравнения продолжают обновляться, но до входных блоков ничего не доходит, — именно это удерживает схему, условия которой истинны часами, от торговли на каждой свече.
- Защитные уровни строятся тем же ATR, что измеряет волатильность, поэтому расстояние, которое цена обязана сохранять до границы канала, растёт, когда рынок движется быстрее, и сокращается, когда он успокаивается. Оба канальных индикатора включают в расчёт оцениваемую свечу, поэтому уровень движется вместе с экстремумами, а не отстаёт от них.
- Константы схемы — ноль, объём заявки и множитель шага — запускаются потоком свечей, поэтому их значения приходят на том же такте, что и значения индикаторов, с которыми их сравнивают и перемножают.
- Закрывающие блоки подключены напрямую к сравнениям средних, поэтому срабатывают на каждой свече, где средние держат этот порядок. Фильтрацию выполняет их условие закрытия: когда позиции на этой стороне нет, блок не делает вообще ничего, и ни одна заявка схему не покидает.
Использование
Импортируйте файл .json в Designer, прогоните схему на исторических данных в тестере, затем подстройте параметры или сами кубики под свой инструмент, прежде чем торговать вживую.