Эта страница переведена автоматически. Оригинал на английском языке является каноническим. Читать на английском →
Перейти к основному содержимому

Предотвращение самоторговли (STP)

Автоматическая защита от торговли с самим собой.

Обзор​

Когда входящая (тейкерская) заявка должна свестись с находящейся в книге (мейкерской) заявкой того же кошелька, движок отменяет обе заявки вместо их исполнения. Это предотвращает wash-трейдинг и защищает маркетмейкеров от случайного пересечения собственных котировок.

STP активен всегда. Нет ни настроек, ни возможности отключения, ни альтернативных режимов.

Поведение​

Стратегия: отмена обеих заявок​

При обнаружении самоторговли:

  1. Мейкерская заявка отменяется с причиной "Self-trade prevention"
  2. Тейкерская заявка отклоняется (если исполнений не было) или отменяется (если была исполнена частично)

Сделка между этими двумя заявками не заключается.

Сопоставление на уровне кошелька​

STP сравнивает адреса кошельков, а не агентские ключи. Если вы используете авторизацию агентов для подписи заявок несколькими ключами, все заявки одного торгового кошелька подпадают под действие STP друг против друга.

Частичные исполнения сохраняются​

Если тейкерская заявка исполняется против других контрагентов до столкновения с самоторговлей, эти исполнения сохраняются.

Пример: в книге предложено 5 контрактов от кошелька B, затем 5 контрактов от кошелька A. Кошелёк A отправляет заявку на покупку 10 контрактов:

ШагСведение сРезультат
1Кошелёк B (5 контрактов)Исполнение: 5 контрактов
2Кошелёк A (5 контрактов)Обнаружена самоторговля

Итог:

  • Кошелёк A получает исполнение на 5 контрактов против кошелька B
  • Мейкерская заявка кошелька A (5 контрактов) отменяется
  • Тейкерская заявка кошелька A отменяется с filled_size: 5

Статус заявки​

СценарийСтатус тейкераПричина
Исполнений не былоRejected"Self-trade prevention"
Частичные исполнения до самоторговлиCanceled"Self-trade prevention (partial fill kept)"

Мейкерская заявка всегда получает статус Canceled с причиной "Self-trade prevention".

GTC-заявки не остаются в книге после срабатывания STP​

Если тейкерская GTC-заявка вызывает срабатывание STP, оставшийся объём не добавляется в книгу, даже если в обычной ситуации заявка осталась бы в ней. Заявка полностью завершается.

Уведомления по WebSocket​

Уведомления об отмене/отклонении как тейкерской, так и мейкерской заявки доставляются в канале order_updates. Поле reason указывает, что причиной стал STP.

Мониторинг​

События STP увеличивают счётчик Prometheus ht_engine_self_trade_prevented_total.

FAQ​

Можно ли выбрать другой режим STP (например, отмену новейшей заявки или уменьшение объёма)? Нет. Hypercall использует исключительно отмену обеих заявок.

Применяется ли STP к заявкам по перпам? Да. STP применяется ко всем типам заявок в движке сведения — как по опционам, так и по перпам.

Применяется ли STP к сделкам RFQ? Да. Если тейкер и поставщик котировки используют один и тот же кошелёк, котировка отклоняется.

Я маркетмейкер и котирую обе стороны. Будут ли мои котировки отменять друг друга? Только если входящая заявка приведёт к их пересечению. Заявки на противоположных сторонах книги по разным ценам сосуществуют в обычном режиме. STP срабатывает только в момент сведения.