Схема стратегии арбитража по процентному базису
У пары есть две цены: та, сколько она стоит, и та, по которой её реально можно исполнить. Схема строит первую как синтетический инструмент и его скользящую среднюю, читает вторую из двух биржевых стаканов, выражает расстояние между ними в процентах и открывает обе ноги, когда это расстояние выходит за порог.
Обзор стратегии
- Кубик индекса строит один синтетический инструмент, деля цену первого инструмента на цену второго, на него подписана серия свечей, а скользящая средняя по этим свечам — справедливая цена пары.
- Два кубика биржевого стакана дают цены, по которым пару действительно можно исполнить: один конвертер берёт лучший бид первого инструмента, другой — лучший аск второго.
- Стакан меняется много раз внутри одного бара, поэтому две лучшие цены не подаются в условия напрямую: две переменные хранят по последней котировке и отдают её, когда завершается торгуемая свеча, а формула делит одну на другую, получая исполнимое отношение.
- Кубик Sync придерживает исполнимое отношение и свечу отношения с той же меткой времени и выпускает их вместе, поэтому справедливая цена и исполнимая цена, которые сравниваются, всегда относятся к одному бару.
- Формула превращает выпущенную пару в одно число: расстояние от исполнимого отношения до справедливой средней, в процентах от средней. Это число и есть базис.
- Переменная привязывает базис к торгуемой свече, и все последующие сравнения вычисляются на этом баре, поэтому каждая заявка датирована тем баром, на котором по ней приняли решение.
- Базис сравнивается с порогом входа и с тем же порогом, взятым со знаком минус, что даёт по одному пропуску на каждое направление, а также с гораздо более узким коридором вокруг справедливой цены, два ответа которого логическое условие сводит в сигнал возврата.
- Кубик задержки, взводимый любым из входов, считает завершённые торгуемые бары и по достижении лимита удержания один раз выставляет флаг Flag; кубик Combination сводит этот флаг с сигналом возврата в один поток выхода, а два закрывающих кубика снимают пару — по одному на инструмент.
Правила входа и выхода
- Вход в лонг: Исполнимое отношение ниже справедливой средней больше чем на минимальный базис: схема покупает первый инструмент и продаёт второй, по одному объёму заявки в каждой ноге. Каждая нога настроена открываться только из собственной нулевой позиции, поэтому сигнал, повторившийся, пока пара уже набрана, ничего к ней не добавляет.
- Вход в шорт: Исполнимое отношение выше справедливой средней больше чем на минимальный базис: схема продаёт первый инструмент и покупает второй, по одному объёму заявки в каждой ноге. То же условие «только из нулевой позиции» защищает каждую ногу по отдельности.
- Выход: Обе ноги снимаются по тому, что наступит раньше: базис возвращается внутрь узкого коридора вокруг справедливой цены либо кубик задержки досчитал лимит удержания завершённых торгуемых баров с момента входа, который его взвёл. Обе причины приходят на один и тот же триггер через один сводящий кубик. Закрывающие кубики не несут направления и сами вычисляют объём из того, что открыто, а закрывающий кубик, сработавший на нулевой ноге, просто ничего не делает.
Параметры
| Параметр | По умолчанию | Описание |
|---|---|---|
| Traded Candles | 00:05:00 | Длина свечей, на которых принимаются решения и выставляются заявки. |
| Index Expression | BTCUSDT@BNBFT/TONUSDT@BNBFT | Выражение, из которого строится синтетический инструмент: цена первого инструмента, делённая на цену второго. Оба инструмента должны присутствовать в подключённых данных, и обоими ведётся торговля. |
| Ratio Candles | 00:05:00 | Длина свечей, на которых строится справедливая цена. Держите её равной торгуемой серии, иначе эти две величины не встретятся в одном наборе. |
| Sync Interval | 00:05:00 | Интервал группировки, по которому кубик Sync собирает набор. Держите его равным длине свечи: более короткий интервал разделит пару значений, которые относятся друг к другу, более длинный — соединит значения из разных баров. |
| Fair Average Length | 20 | Число свечей отношения в скользящей средней, из которой берётся справедливая цена. |
| Minimum Basis, % | 0.5 | Насколько исполнимое отношение должно отойти от справедливой цены, в процентах, прежде чем открываются обе ноги. |
| Exit Basis, % | 0.1 | Насколько близко базис должен вернуться к справедливой цене, в процентах, прежде чем пара снимается. |
| Volume Per Leg | 1 | Объём заявки каждой ноги, в лотах. В обе ноги отправляется одинаковый объём. |
| Max Hold Bars | 72 | Сколько завершённых торгуемых баров пару можно держать, прежде чем она будет закрыта независимо от базиса. |
Детали диаграммы
- Биржевой стакан никогда не читается прямо в условие. Он обновляется много раз за бар, тогда как условия живут на баре; две удерживающие переменные и ставят то и другое на одни часы, а их триггер — торгуемая свеча, а не стакан.
- Ничто из того, что выставляет заявку, не запускается с выхода Sync. Выпущенный набор датируется самым ранним из своих элементов, а заявка, датированная раньше текущего времени, отклоняется, поэтому Sync питает арифметику, а каждый триггер ведёт торгуемая свеча.
- Обе серии свечей настроены только на завершённые свечи. Обновление формирующегося бара датировало бы заявку моментом открытия бара, а он к моменту принятия решения по бару уже в прошлом.
- Константы переотправляются на каждой торгуемой свече. Сравнению нужно, чтобы оба его значения пришли заново для каждого вычисления, поэтому константа, отправленная один раз, тихо останавливает условие, которое она питает.
- Нижние пороги — не отдельные константы, а формулы от верхних, поэтому оба коридора остаются симметричными при любых значениях порогов, а лимит удержания считается в завершённых барах, а не по часам.
Использование
Импортируйте файл .json в Designer, прогоните схему на исторических данных в тестере, затем подстройте параметры или сами кубики под свой инструмент, прежде чем торговать вживую.