Умовні й алгоритмічні ордери

Умовні й алгоритмічні ордери виконує сам протокол наприкінці блоку, коли виконано їхню умову. Виконання завжди йде через книгу за цінами ордерів у ній.

Умовні ордери

ОрдерПовідомленняЩо робить
Stop-lossMsgSetStopLossЗакриває позицію, коли ціна оракула доходить до тригера проти позиції
Take-profitMsgSetTakeProfitЗакриває позицію, коли ціна оракула доходить до тригера на користь позиції
БрекетиMsgSetBracketOrdersПара stop-loss і take-profit. Спрацював один - другий скасовується
Трейлінг-стопMsgSetTrailingStopТригер іде за найкращою ціною на заданій відстані у відсотках. Може вмикатися лише після ціни активації
ENTRYMsgSetEntryOrderВідкриває позицію, коли ціна оракула доходить до тригера. Може одразу ставити брекети й мати строк

Як працюють

  • Спрацювання. Тригер порівнюється з ціною оракула. Для лонга 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