Открыть на GitHub

Корзина из двух ног по расписанию с денежной защитой

Эта схема торгует по часам, а не по сигналу. В ней нет ни одного индикатора: раз в день открывается короткое окно входа, и схема покупает два инструмента в один и тот же момент, более позднее окно закрывает обе ноги, а между этими окнами денежная защита следит за тем, сколько заработала корзина, и закрывает её досрочно по цели по прибыли или по лимиту убытка.

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

  • Два блока Variable типа Security задают два инструмента, которыми торгует схема. Каждый из них питает собственную серию свечей, собственное действие на открытие и собственное действие на закрытие, поэтому объём и сопровождение у ног раздельные, хотя открываются и закрываются они вместе.
  • Sync удерживает две 5-минутные серии свечей, пока обе ноги не выдадут один и тот же бар, и выпускает их одним набором, поэтому в значении, которое рисуется для корзины, свежая цена одной ноги никогда не смешивается с устаревшей ценой другой.
  • Formula умножает каждую выпущенную цену закрытия на торгуемый объём этой ноги и складывает два произведения. Результат — то, сколько корзина реально стоит при тех объёмах, которыми торгует схема, и именно эта линия рисуется на панели графика.
  • Working time читает метку времени завершённых свечей первой ноги и открыт только внутри окна входа, поэтому через него проходит ровно один бар в день. Flag превращает это открытие в единственный импульс и остаётся взведённым, пока корзина не закрыта.
  • Взведённый импульс запускает два блока Position modify, настроенных на Open position. У каждого свой Security и свой Volume, а условие Open position делает пару молчаливой, если по этому инструменту позиция уже есть, поэтому один импульс никогда не сможет поставить вторую корзину поверх первой.
  • Strategy P&L питает Formula, которая складывает зафиксированные и открытые деньги. Вторая Formula вычитает величину, снятую в момент открытия корзины, и это превращает нарастающий итог счёта в результат одной только текущей корзины.
  • Логическое ИЛИ объединяет три причины закрыться: окно закрытия, результат корзины выше цели по прибыли и результат корзины ниже лимита убытка. Его сигнал ведёт два блока Position modify, настроенных на Close position, а также сбрасывает дневной Flag, поэтому следующее окно входа находит защёлку свободной.

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

  • Вход в лонг: Внутри окна входа завершённая свеча первой ноги открывает Working time, дневной Flag ещё не использован, и оба блока Open position срабатывают на одном импульсе: один покупает первую ногу на её собственный объём, другой покупает вторую ногу на её собственный объём. Каждая заявка — рыночная, и каждая подавляется на своём инструменте, если позиция по нему уже открыта.
  • Вход в шорт: Короткой стороны у схемы нет: у обоих входных блоков жёстко задано направление Buy. Короткая корзина — это одна настройка: переключите Direction у двух блоков Open position на Sell, и то же расписание, та же защёлка и та же денежная защита проведут корзину в обратную сторону.
  • Выход: Корзину закрывают три причины, и достаточно любой из них. Окно закрытия, которое ведут часы стратегии, а не приход свечей, закрывает по расписанию; результат корзины, поднявшийся выше цели по прибыли, закрывает досрочно в прибыли; результат корзины, опустившийся ниже лимита убытка, закрывает досрочно в убытке. Все три идут через одно логическое ИЛИ в два блока Close position, которым не нужны ни объём, ни направление, потому что и то и другое они вычисляют по найденной позиции — и не делают вообще ничего, когда её нет, поэтому повторный сигнал внутри окна безвреден.

Параметры

Параметр По умолчанию Описание
First Leg Security BTCUSDT@BNBFT Инструмент, которым торгует первая нога; он задаёт серию свечей, по которой отсчитывается окно входа.
Second Leg Security TONUSDT@BNBFT Инструмент, которым торгует вторая нога; открывается и закрывается по тем же сигналам, что и первая.
First Leg Candles 00:05:00 Таймфрейм первой ноги. Используются только завершённые свечи, поэтому окно входа должно быть шириной не меньше одной свечи.
Second Leg Candles 00:05:00 Таймфрейм второй ноги. Держите его равным первой ноге, так как перед расчётом стоимости корзины обе удерживаются вместе.
Alignment Interval 00:05:00 Интервал группировки, по которому выравниваются две ноги. Он должен совпадать с таймфреймом свечей; большее значение выпускало бы пару позже того бара, которому она принадлежит.
Entry Window From 10:00:00 Начало дневного окна входа, читается из метки времени завершённых свечей первой ноги.
Entry Window Until 10:04:00 Конец дневного окна входа. Промежуток между двумя значениями должен содержать ровно одно открытие свечи, иначе дневная защёлка взводилась бы больше одного раза.
Flatten Window From 17:00:00 Начало дневного окна закрытия, читается по часам стратегии, а не по приходу свечей.
Flatten Window Until 17:10:00 Конец дневного окна закрытия. Держите его шириной в несколько свечей, чтобы часы были опрошены внутри него хотя бы один раз.
First Leg Size 0.01 Количество, которым открывается первая нога, и вес, с которым первая нога входит в рисуемую стоимость корзины.
Second Leg Size 100 Количество, которым открывается вторая нога, и вес, с которым вторая нога входит в рисуемую стоимость корзины. Подбирайте его так, чтобы обе ноги давали сопоставимые суммы денег.
Profit Target 100 Деньги, заработанные текущей корзиной, выше которых она закрывается досрочно. Отсчитываются с момента открытия корзины, а не с начала прогона.
Loss Limit -500 Деньги, потерянные текущей корзиной, ниже которых она закрывается досрочно; отрицательное значение, отсчитывается так же, как цель по прибыли.

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

  • Два блока Variable типа Security — единственное место, где называется инструмент. Каждый питает блок Candles и вход Security двух блоков Position modify, которые ведут эту ногу, поэтому нога переводится на другой инструмент правкой одного значения.
  • Sync принимает по одной линии на ногу и выпускает обе вместе, как только бар завершён на обеих. Выпущенные свечи рисуются на панели графика и превращаются в цены закрытия, которые Formula взвешивает торгуемыми объёмами в линию стоимости корзины.
  • Двое часов сделаны намеренно разными. Входной Working time питается свечами первой ноги, поэтому решение о входе не может разойтись с ценой, по которой оно принимается; закрывающий Working time питается от Time, поэтому закрытие происходит и тогда, когда данные затихли. Flag стоит между окном входа и заявками и сбрасывается только сигналом закрытия — именно это ограничивает схему одной корзиной в день.
  • P&L change сообщает зафиксированные и открытые деньги на каждом обновлении. Их сумма даёт нарастающий итог счёта; Variable снимает этот итог на первой сделке входа, вторая Variable хранит его и переизлучает на каждом следующем обновлении, а вычитание оставляет результат той корзины, которая открыта сейчас. Поэтому защита измеряет текущую корзину, а не всё время жизни счёта, и обнуляется, как только корзина закрыта.
  • Каждое действие — блок Position modify. Два входных блока используют условие Open position с явно заданными направлением и объёмом; два выходных используют Close position, которое не принимает ни того, ни другого и выводит оба из текущей позиции по своему инструменту. Combination сводит четыре потока сделок в одну серию сделок, рисуемую на панели графика, а четыре потока заявок рисуются отдельно.

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

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