Ордера

Здесь описаны типы, параметры и правила, общие для всех ордеров. Краткосрочные, условные и алгоритмические ордера описаны на отдельных страницах.

Тип и срок действия

ПараметрВарианты
ТипLIMIT - по указанной цене или лучше. MARKET - сразу по лучшим ценам книги, неисполненный остаток отменяется.
Time in forceGTC - стоит в книге до исполнения или отмены. 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_cancelledIOC: остаток отменён
fok_insufficient_liquidityFOK: не хватило ликвидности, ордер отменён
market_remainder_cancelledMARKET: остаток отменён
post_only_would_crossPost-only отменён, потому что исполнился бы сразу
resting_rejectedОрдер не смог встать в книгу и отменён
no_liquidityРыночный или IOC-ордер не нашёл встречных ордеров
settlement_failedСделки ордера не прошли расчёт
counterparty_settlement_failedНе прошёл расчёт у встречной стороны
not_in_batchОрдер не попал в сведение своего блока
tx_failedОрдер исполнился при сведении, но его транзакция затем не прошла; исполнение остаётся в силе

Лимиты на число и размер ордеров - в «Ончейн-матчинг».