Условные и алгоритмические ордера
Условные и алгоритмические ордера исполняет сам протокол в конце блока, когда выполнено их условие. Исполнение всегда идёт через книгу по ценам ордеров в ней.
Условные ордера
| Ордер | Сообщение | Что делает |
|---|---|---|
| Stop-loss | MsgSetStopLoss | Закрывает позицию, когда цена оракула доходит до триггера против позиции |
| Take-profit | MsgSetTakeProfit | Закрывает позицию, когда цена оракула доходит до триггера в пользу позиции |
| Брекеты | MsgSetBracketOrders | Пара stop-loss и take-profit. Сработал один - второй отменяется |
| Трейлинг-стоп | MsgSetTrailingStop | Триггер следует за лучшей ценой на заданном расстоянии в процентах. Может включаться только после цены активации |
| ENTRY | MsgSetEntryOrder | Открывает позицию, когда цена оракула доходит до триггера. Может сразу ставить брекеты и иметь срок |
Как работают
- Срабатывание. Триггер сравнивается с ценой оракула. Для лонга stop-loss срабатывает при цене на уровне триггера или ниже, take-profit - на уровне триггера или выше. Для шорта наоборот.
- Исполнение. Протокол отправляет рыночный reduce-ордер через книгу. С лимитной ценой ордер не исполнится хуже неё. Если исполнилась только часть, остаток ждёт следующих блоков.
- Доля позиции.
- Частичный процент считается от позиции в момент создания ордера, поэтому лестница 33/33/34 закрывает позицию целиком.
- 100% - вся позиция на момент срабатывания.
- Брекеты к ордеру.
MsgAttachOrderBracketsпривязывает stop-loss и take-profit к ордеру в книге. Они начинают действовать после его исполнения. - ENTRY.
- Открывает позицию заданного размера с заданным плечом, рыночно или по лимитной цене.
- Пока позиция не набрана полностью, остаток добирается в следующих блоках.
- Если задан срок, по его окончании неисполненный ENTRY отменяется.
- Закрытие позиции. Вместе с позицией отменяются все её условные ордера.
TWAP
TWAP делит объём на равные части и исполняет их через заданный интервал блоков. Каждая часть - рыночный ордер через книгу.
| Вариант | Сообщение | Что делает |
|---|---|---|
| Закрытие | MsgCreateTwapOrder | Уменьшает позицию. Завершается, когда позиция закрыта |
| Открытие | MsgCreateOpenTwapOrder | Открывает позицию с заданным плечом |
Неисполненная часть отдельного слайса не повторяется, она переходит в последний слайс. Слайсов от 2 до 100, интервал от 1 до 100 000 блоков. Отмена - MsgCancelTwapOrder.
POV
POV исполняет заданную долю рыночного объёма (от 1% до 30%) за период. Если наибольшая часть POV меньше 10 USDC, такой POV не принимается.
Chase
MsgSetChase заставляет лимитный ордер в книге следовать за рынком:
- Перестановка. Каждый блок ордер переставляется к лучшей цене своей стороны со сдвигом
offset. - Предел. Ордер не уходит дальше
max_distanceот цены, которая была при включении chase. На пределе chase останавливается. - Post-only. Post-only ордер при перестановке не пересекает книгу.
Отключить chase - MsgCancelChase.
Когда ордера ждут
Пока рынок на паузе, пара оракула на паузе или под circuit breaker, условные и алгоритмические ордера по ней не исполняются и ждут. Во время остановки торговли ждут те, что открывают позицию.
Лимиты
| Лимит | Значение |
|---|---|
| Условных ордеров на позицию | 10 |
| Условных ордеров на пользователя | 50 |
| Брекетов, ждущих исполнения ордера, на субаккаунт | 500 |
| Срабатываний условных ордеров за блок | 500, остальные в следующем блоке |
| TWAP на пользователя | 20 |
| Chase на пользователя | 10 |
| POV на пользователя | 5 |