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

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

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

Обзор​

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

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-заявки не встают в книгу после самоторговли​

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

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

Отмена или отклонение как тейкер-, так и мейкер-заявки приходят в канал order_updates. Поле reason указывает, что причиной стал STP.

FAQ​

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

Применяется ли STP к заявкам по перпам? Нет. STP Hypercall распространяется на заявки, сопоставляемые в книге Hypercall: опционы и комбо-заявки. Заявки по перпам исполняются в книге заявок Hyperliquid, где действуют собственные правила самоторговли Hyperliquid.

Применяется ли STP к комбо-заявкам? Да. Сопоставление останавливается до того, как комбо или подразумеваемый маршрут привели бы к сделке аккаунта с самим собой, а мейкер-заявка в книге отменяется. Случаи «всё или ничего» (FOK и атомарная замена) описаны в экспериментальном Combo API.

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

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