Ордера
Здесь описаны типы, параметры и правила, общие для всех ордеров. Краткосрочные, условные и алгоритмические ордера описаны на отдельных страницах.
Тип и срок действия
| Параметр | Варианты |
|---|---|
| Тип | LIMIT - по указанной цене или лучше. MARKET - сразу по лучшим ценам книги, неисполненный остаток отменяется. |
| Time in force | GTC - стоит в книге до исполнения или отмены. IOC - исполняется сразу, сколько получится, остаток отменяется. FOK - исполняется сразу целиком или отменяется. |
| Good-til-block | Блок, после которого ордер истекает. 0 - без срока. |
Флаги
- Post-only. Ордер только добавляет ликвидность: если он исполнился бы сразу, он отменяется. Работает только для LIMIT с GTC.
- Reduce-only. Ордер только уменьшает позицию и маржу не резервирует. Если он больше позиции, количество урезается до её размера.
- Reduce-only, закрывающий позицию целиком, можно выставить и меньше минимального размера ордера.
- Для GTC это работает, только если на этом рынке у субаккаунта нет других reduce-only ордеров.
Широкие ордера
Открывающий ордер дальше 20% от цены оракула принимается только как post-only. Дальше 50% ордер не принимается вовсе.
Номер ордера
client_id - ваш номер ордера. Пока ордер активен, номер должен быть уникален в пределах субаккаунта и рынка. После исполнения или отмены его можно использовать снова. Кроме того, сеть присваивает каждому ордеру свой ключ, по которому он однозначно определяется.
Управление ордерами
| Сообщение | Что делает |
|---|---|
MsgPlaceOrder | Размещает ордер |
MsgCancelOrder | Отменяет ордер по номеру |
MsgReplaceOrder | Отменяет ордер и выставляет новый одним сообщением |
MsgBatchPlaceOrders | Размещает до 50 ордеров. Если хотя бы один не проходит проверку, не размещается ни один |
MsgBatchCancelOrders | Отменяет до 50 ордеров |
Статусы и результат размещения
Статусы ордера: OPEN, PARTIALLY_FILLED, FILLED, CANCELLED, EXPIRED, REJECTED.
Ответ на размещение содержит статус, исполненное количество и причину в поле placement_result:
| Значение | Что произошло |
|---|---|
resting | Ордер стоит в книге, возможно частично исполненный |
filled | Исполнен полностью |
ioc_remainder_cancelled | IOC: остаток отменён |
fok_insufficient_liquidity | FOK: не хватило ликвидности, ордер отменён |
market_remainder_cancelled | MARKET: остаток отменён |
post_only_would_cross | Post-only отменён, потому что исполнился бы сразу |
resting_rejected | Ордер не смог встать в книгу и отменён |
no_liquidity | Рыночный или IOC-ордер не нашёл встречных ордеров |
settlement_failed | Сделки ордера не прошли расчёт |
counterparty_settlement_failed | Не прошёл расчёт у встречной стороны |
not_in_batch | Ордер не попал в сведение своего блока |
tx_failed | Ордер исполнился при сведении, но его транзакция затем не прошла; исполнение остаётся в силе |
Лимиты на число и размер ордеров - в «Ончейн-матчинг».