7 дней Pro+ · без картыНачать пробный период

Исполнение ордеров: от заявки до фактической сделки · 6 / 6

Сверить уникальные исполнения при повторных статусах ордера

Статус ордера — не дополнительная сделка. Повторная доставка и гонки исполнения с отменой требуют разделять уникальные исполнения и накопленные сводки.

Athenum8 минОбновлено:

Удаление дублей по ID исполнения, а не по ID ордера

Для условного линейного инструмента используйте идентификатор исполнения в области конкретной биржи, счёта и продуктового контракта. Идентичная повторная доставка той же сделки учитывается один раз. Разные исполнения одного ордера считаются отдельно: удаление дублей только по ID ордера отбросит настоящие частичные сделки. Количество здесь выражено в единицах базового актива, цена — в USDT за единицу. В примерах с деривативами расчёт линейный, в USDT; при наличии контрактного множителя сначала нужно перевести количество в эти единицы.

Сохраняйте количество, цену, комиссию и её валюту. Проверьте правила идентификаторов, прежде чем предполагать уникальность между счетами и биржами. Если записи с одинаковым ID противоречат друг другу, расследуйте, а не заменяйте значение молча. Разорванный поток — неполное доказательство; восстановите историю и сверьтесь с состоянием счёта, подтверждённым биржей.

Накопленные обновления исполнения и гонка исполнения с отменой

Обновления ордера часто показывают накопленное исполненное количество. Последовательность 2, затем 3, затем 3 не означает торговлю 8 единицами. Сравните эти состояния с журналом уникальных сделок и конечной позицией. Принятие запроса отмены также не доказывает отсутствие одновременного исполнения.

Bybit описывает гонку исполнения и отмены с двумя сообщениями Filled: одно сообщает об исполнении, другое — об отклонённой отмене, поскольку сделка уже произошла. Это предупреждение для конкретной площадки, а не свидетельство двух сделок. Общая задача проверки — сверять факты, а не считать уведомления.

Пример: два исполнения закрывают 3 из 5 единиц, несмотря на повтор

Изначально открыта длинная позиция 5 единиц, других изменений нет. E1 продаёт 2 по 100 с комиссией 0,10 USDT. E2 продаёт 1 по 99,50 с комиссией 0,05 USDT. E2 доставляется повторно без изменений. Уникальные сделки закрывают 3 единицы: исполненный номинал 299,50 USDT, средняя цена 99,833333… и комиссии 0,15 USDT. Две единицы остаются в длинной позиции.

Отмена неисполненного остатка не продаёт эти 2 единицы. Номинал 299,50 USDT не является зачислением на счёт по этому деривативу. При исходной средней цене входа 90 USDT за единицу ценовой P&L закрытой части равен 299,50 − 3 × 90 = 29,50 USDT. После указанных комиссий выхода 0,15 USDT остаётся 29,35 USDT, до учёта соответствующих комиссий входа и фандинга. Высвобожденное обеспечение не является прибылью. В отдельном сценарии одновременной отмены и исполнения E3 продаёт последние 2 по 99 до отмены. Тогда закрыты 5 единиц, даже если приходят два статуса Filled.

Оригинальный журнал исполнений; все указанные комиссии в USDT
ДоставкаКоличествоЦенаНовое учтённое количество
E121002
E2199,501
E2 идентичный повтор199,500
Сверяйте разные доказательства, не превращая уведомления в сделки.Увеличить схему
  1. ID исполнений с заданной областью
  2. Журнал уникальных сделок
  3. Сравнение накопленного состояния
  4. Проверка конечной позиции
Сверяйте разные доказательства, не превращая уведомления в сделки.
Сверяйте разные доказательства, не превращая уведомления в сделки.

Оригинальный журнал исполнений; все указанные комиссии в USDT. Сверяйте разные доказательства, не превращая уведомления в сделки.

E2 идентичный повтор: +0.

Ошибка: разрыв связи принят за отсутствие исполнений

После разрыва связи пустой локальный журнал не доказывает отсутствие сделки. Запросите историю исполнений и позицию биржи перед слепой повторной отправкой. Не складывайте комиссии в разных валютах без сохранения единиц и обоснованной базы пересчёта.

Перед решением

  • Ограничьте область ID фактическими правилами биржи.
  • Учитывайте идентичные повторы исполнения один раз.
  • Сохраняйте разные частичные сделки одного ордера.
  • Сравнивайте, а не складывайте накопленные состояния.
  • Сверьте остаток позиции и неразрешённые пробелы истории.

Проверьте понимание

E2 приходит три раза, E3 отсутствует, отмена неисполненного остатка подтверждена. Сколько остаётся в длинной позиции?

Показать ответ с объяснением

2 единицы. E1 закрывает 2, уникальное E2 закрывает 1, поэтому остаётся 5 − 3 = 2. Повтор E2 не добавляет исполнения. Отмена убирает поручение, а не оставшуюся позицию.

Источники и дополнительное чтение

Продолжить с Athenum

Похожие уроки

Похожие курсы