Открыть на GitHub

Схема стратегии «Пауза после убытка»

Простая импульсная схема несёт правило, которое решает, разрешена ли торговля вообще. Блок изменения P&L сообщает реализованный результат счёта, поэтому каждую закрытую сделку можно прочитать как прибыльную или убыточную, не измеряя цены. Убытки, идущие один за другим, подсчитываются, и когда счётчик доходит до своего предела, устанавливается блок Flag и держит торговлю закрытой заданное число свечей. Входы возобновляются только после того, как отсчёт закончится и флаг будет сброшен.

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

  • Завершённые часовые свечи подаются на Rate of Change с периодом в одну свечу — это процентное изменение цены закрытия относительно предыдущего закрытия, поэтому один индикатор несёт и порог входа, и порог выхода.
  • Два сравнения сопоставляют этот процент с двумя переменными: верхним порогом для движения вверх и нижним, отрицательным, — для движения вниз.
  • Блок Position сравнивается с нулём трижды — равно, больше и меньше, — что даёт проверку на отсутствие позиции для входов и проверки длинной и короткой позиции для выходов.
  • Вход — это логическое И трёх сигналов: импульс в нужную сторону, отсутствие позиции и отсутствие идущей паузы. Оба блока входа настроены только на открытие, поэтому схема держит одну позицию за раз и никогда её не наращивает.
  • Выход — это логическое И импульса в противоположную сторону и позиции с этой стороны; он запускает блок Position modify, настроенный на закрытие, который берёт объём из того, что удерживается.
  • Блок изменения P&L сообщает реализованный результат. Блок Previous value хранит значение, которое стояло до последнего изменения, а два сравнения говорят, снизился результат или вырос, — то есть закрытая сделка убыточная или прибыльная.
  • Убыток пропускает сохранённую серию через формулу, которая прибавляет единицу и записывает сумму обратно в ту же переменную; прибыль записывает поверх ноль. Сравнение нового счётчика с пределом и есть сигнал, запускающий паузу.
  • Этот сигнал устанавливает Flag и взводит блок N values, отсчитывающий завершённые свечи. Пока флаг установлен, сохранённая переменная состояния, читаемая на каждой свече, сообщает «пауза», логическое НЕ превращает это в «снова разрешено», и это третий вход обоих условий входа.

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

  • Вход в лонг: Rate of Change завершённой свечи выше порога для длинной позиции, позиции нет, и пауза не идёт. Position modify покупает объём заявки по рынку, только открытие.
  • Вход в шорт: Rate of Change завершённой свечи ниже порога для короткой позиции, позиции нет, и пауза не идёт. Position modify продаёт объём заявки по рынку, только открытие.
  • Выход: Позиция отдаётся, как только импульс разворачивается против неё: длинная закрывается, когда Rate of Change опускается ниже короткого порога, короткая — когда он поднимается выше длинного порога. Блок настроен на закрытие позиции, поэтому объём заявки берётся из самой позиции, и схема никогда не переворачивается с одной стороны на другую одной заявкой — противоположная сторона может быть открыта только более поздней свечой, из состояния без позиции. Выходы пауза не задерживает никогда; она задерживает только входы.

Параметры

Параметр По умолчанию Описание
Candles 01:00:00 Таймфрейм свечей, на которых работает вся схема. Пауза считается в этих же свечах, поэтому более длинная свеча делает паузу длиннее по времени.
Rate Of Change Length 1 На сколько свечей назад измеряет Rate of Change. При единице это процентное изменение от предыдущего закрытия — именно под него написаны оба порога; больший период превращает его в более широкую меру импульса, и пороги приходится расширять вместе с ним.
Long Threshold, % 0.3 Процентное изменение, которое открывает длинную позицию и закрывает короткую. Его увеличение делает и то и другое реже, а схему — более избирательной.
Short Threshold, % -0.3 Процентное изменение, которое открывает короткую позицию и закрывает длинную, записанное отрицательным числом. Оно не обязано зеркалить длинный порог; несимметричные значения смещают схему в одну сторону.
Order Volume 1 Размер каждой заявки на вход, в единицах инструмента. Выходы берут объём из позиции, поэтому там это значение не повторяется.
Consecutive Losses 3 Сколько закрытых сделок подряд должны оказаться убыточными, прежде чем торговля будет приостановлена. Прибыльная сделка возвращает счётчик к нулю, поэтому здесь считается серия, а не общее число; при единице паузу запускает каждая убыточная сделка.
Pause Candles 8 Сколько завершённых свечей длится пауза. Всё это время входы отклоняются, после чего флаг сбрасывается, а счётчик убытков возвращается к нулю.

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

  • Со стороны торговли паузу ничто не питает: счётчик серии и флаг управляются только результатом счёта, поэтому в схеме нет петли, и пауза может лишь отбирать разрешение, но никогда его не давать.
  • Блок Flag выдаёт значение только в момент первой установки, а блок N values игнорирует срабатывание, пока уже ведёт отсчёт, поэтому очередной сигнал об убытке во время идущей паузы не перезапускает и не продлевает отсчёт.
  • Отсчёт измеряется в завершённых свечах торгового таймфрейма, а не в событиях счёта, поэтому спокойный участок и активный дают паузу одинаковой длины.
  • Условия входа читают паузу из сохранённой переменной, а не из самого флага. Флаг сообщает о моменте; переменная хранит состояние — записывается true при установке флага, записывается false при окончании отсчёта и выдаётся на каждой свече, поэтому у обоих условий всегда есть свежее значение, чтобы соединить его с двумя другими сигналами.
  • Панель графика рисует свечи, Rate of Change, реализованный результат, заявки входа и выхода и каждое исполнение, поэтому участок, где сигналы достигались, но заявок за ними не последовало, легко узнать как паузу.

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

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