Схема стратегии дельта-нейтрального спреда по Z-score
Два инструмента, которые обычно ходят вместе, иногда расходятся, и разрыв между ними, как правило, снова закрывается. Схема делит одну цену на другую и получает синтетический инструмент, измеряет, насколько это отношение отошло от собственного среднего в единицах собственной волатильности, и открывает оба инструмента разом в противоположные стороны: покупает дешёвую сторону против продажи дорогой. Когда отношение возвращается туда, где оно обычно держится, обе ноги закрываются. Каждый вход к тому же проговаривается строкой текста с тем значением, которое его вызвало.
Обзор стратегии
- Кубик индекса строит из двух реальных инструментов один синтетический, деля цену первого на цену второго, и на этот синтетический инструмент подписана серия свечей — спред приходит готовыми свечами, а не собирается вручную из двух потоков данных.
- По свечам спреда считаются скользящая средняя и стандартное отклонение, а конвертер берёт их цену закрытия. Эти три числа — всё, что нужно для решения: где спред находится, где он обычно держится и насколько широко обычно колеблется.
- Одна формула превращает их в z-score — расстояние от цены закрытия до среднего, делённое на отклонение, — а зеркальная формула даёт то же число с обратным знаком, так что один порог входа и один порог выхода обслуживают оба направления без второй пары констант.
- Ещё две серии свечей идут по двум инструментам, которыми реально торгуют, а две переменные привязывают показания к торгуемому: каждая удерживает последнее число, полученное по спреду, и отдаёт его, когда закрывается свеча торгуемого инструмента, — так каждое решение идёт по часам того инструмента, на который выставляются заявки.
- Два кубика позиции, по одному на инструмент, сообщают, что открыто. Их значения удерживаются на той же свече торгуемого инструмента и сравниваются с нулём, и схема получает четыре простых ответа: каждая нога либо пуста, либо открыта.
- Сравнения с порогом входа говорят, находится ли спред намного ниже или намного выше своего среднего, а логическое условие соединяет это с тем, что обе ноги пусты. Только тогда четыре кубика позиции срабатывают вместе, покупая один инструмент и продавая другой одинаковым объёмом.
- Два сравнения с порогом выхода, объединённые логическим условием, говорят, что значение мало по модулю, то есть спред вернулся к своему среднему. У каждой ноги свой отдельный вентиль закрытия, поэтому ногу, которая уже пуста, никогда не просят закрыться, а ту, что ещё открыта, — просят всегда.
- В момент входа переменная запоминает вызвавший его z-score, форматирование строки складывает его во фразу, а кубик уведомления пишет эту фразу в лог стратегии. Панель графика рисует оба торгуемых инструмента, синтетическую серию спреда, среднее, отклонение, а также все заявки и сделки.
Правила входа и выхода
- Вход в лонг: Зеркальный z-score выше порога входа — то есть спред стоит более чем на столько стандартных отклонений ниже собственного среднего, — и обе ноги пусты. Схема покупает торгуемый инструмент и продаёт хеджирующий, обе заявки по рынку и обе на объём заявки.
- Вход в шорт: Z-score выше порога входа — то есть спред стоит более чем на столько стандартных отклонений выше собственного среднего, — и обе ноги пусты. Схема продаёт торгуемый инструмент и покупает хеджирующий, обе заявки по рынку и обе на объём заявки.
- Выход: Обе ноги закрываются, когда z-score по модулю опускается ниже порога выхода, то есть когда спред вернулся в узкий коридор вокруг своего среднего. Два закрывающих кубика не несут собственного направления и настроены на закрытие позиции: каждый сам определяет, в какую сторону и каким объёмом торговать, поэтому одна и та же пара кубиков разбирает и длинный спред, и короткий. Кроме того, у торгуемой ноги есть процентный стоп-лосс, отсчитываемый от цены её исполнения. Этот стоп покрывает только одну ногу: парную позицию нельзя закрыть одной защитной заявкой, поэтому у хеджирующей ноги остаётся свой вентиль закрытия, и она уходит, когда спред возвращается.
Параметры
| Параметр | По умолчанию | Описание |
|---|---|---|
| Index Expression | BTCUSDT@BNBFT/TONUSDT@BNBFT | Выражение, из которого строится синтетический инструмент: цена торгуемого инструмента, делённая на цену хеджирующего. Оба инструмента должны присутствовать в подключённых данных, и торгуются оба. |
| Spread Candles | 00:05:00 | Длительность свечей, на которых строится серия спреда, а значит, и свеча, по которой измеряются среднее и отклонение. |
| Traded Leg Candles | 00:05:00 | Длительность свечей, по которым отслеживается торгуемая нога. Это часы, по которым идёт вся схема, поэтому держите её равной серии спреда, иначе удержанные показания окажутся старше свечи, на которой их читают. |
| Hedge Leg Candles | 00:05:00 | Длительность свечей, по которым отслеживается хеджирующая нога. Эта серия нужна, чтобы цены хеджирующего инструмента доходили до расчёта и появлялись на графике; держите её равной двум другим. |
| Average Length | 20 | Число свечей спреда в скользящей средней, от которой отсчитывается z-score. |
| Deviation Length | 20 | Число свечей спреда в стандартном отклонении, на которое делится z-score. Держите его равным длине средней, если только вам сознательно не нужен быстрый уровень против медленной ширины. |
| Entry Z-Score | 1.5 | На сколько стандартных отклонений спред должен отойти от своего среднего, прежде чем пара будет открыта. Увеличение делает входы более редкими, а расхождение, на котором они берутся, — более широким. |
| Exit Z-Score | 0.5 | Насколько близко к своему среднему должен вернуться спред, прежде чем обе ноги будут закрыты. Значение берётся по модулю и покрывает обе стороны, поэтому одно и то же число закрывает и длинный спред, и короткий. |
| Order Volume | 1 | Объём каждой ноги, в лотах. Обе ноги отправляются одинаковым объёмом. |
| Stop Loss, % | 1.5 | Стоп-лосс для торгуемой ноги, в процентах от цены её исполнения. Он защищает только одну ногу; у хеджирующей ноги собственного стопа нет. |
Детали диаграммы
- Синтетический инструмент — это отношение, а не разность. В разности двух инструментов с сильно разными уровнями цен главенствует более дорогой, и z-score мерил бы тогда именно этот один инструмент, а не связь между двумя.
- Две серии заканчиваются не в один и тот же момент: синтетический инструмент собирается из двух потоков данных, и его свеча закрывается чуть позже обычной. Привязка показаний к свече торгуемого инструмента держит всю схему на одних часах; если же отпускать обе серии вместе, каждая заявка датировалась бы более ранней из двух, а заявка со временем раньше текущего отклоняется.
- Константы запускаются свечой торгуемого инструмента. Сравнению для каждого вычисления нужно, чтобы оба его значения пришли заново, поэтому константа, которая больше не отправляется, молча останавливает условие, которое она питает.
- Деление, из которого получается z-score, ограничено снизу очень малым положительным числом, чтобы участок полностью неподвижных цен не привёл к делению на нулевое отклонение и не остановил работу.
- За каждой ногой следит свой кубик позиции, и закрывается она по отдельному условию, поэтому, если стоп первым выбьет торгуемую ногу, хеджирующая всё равно закроется по собственному условию, а не останется висеть до следующего входа.
Использование
Импортируйте файл .json в Designer, прогоните схему на исторических данных в тестере, затем подстройте параметры или сами кубики под свой инструмент, прежде чем торговать вживую.