Как устроено сопоставление в общих чертах
Ордера в Intention сопоставляются внутри IntentionKernel в центральном стакане лимитных заявок по строгому приоритету «цена — время». Упорядочивание детерминировано: каждая реплика блокчейна воспроизводит тот же порядок сообщений и, значит, ту же последовательность исполнений. Полное описание — на странице Диспетчер ордерных транзакций, взгляд со стороны машины состояний — на странице IntentionKernel. Для обращения об исполнении важно вот что: приватного преимущества по потоку ордеров нет, офчейн-движка сопоставления нет; и ваш ордер, и ордер, который его исполнил, записаны в каноническом потоке блоков.Почему цена исполнения отличается от цены на экране
Число, которое было на экране в момент нажатия «buy» (купить), — это не то число, по которому вас исполнят, и это нормально.- Проскальзывание. Рыночный или пересекающий стакан лимитный ордер идёт по стакану, пока не наберёт весь объём или не упрётся в предельную цену. Если вершина стакана была тонкой, средняя цена может оказаться заметно хуже лучшей котировки, которую вы видели секунду назад.
- Чужие исполнения в промежутке. Ордера других участников могут попасть в тот же блок или в блок между последним обновлением интерфейса и блоком с вашим ордером. Они съедают ликвидность и сдвигают вашу эффективную цену.
- Задержка между снимком и отправкой. Цена на экране — это снимок; к моменту, когда ваш ордер упорядочат и сопоставят, стакан уже может сдвинуться. Это не баг движка сопоставления, а следствие того, что сигналу между вами и блокчейном нужно время.
Нереализованный и реализованный PnL
- Нереализованный PnL отражает переоценку открытой позиции по текущей маркировочной цене. Он двигается непрерывно вслед за маркировочной ценой; это текущая оценка, а не окончательная величина.
- Реализованный PnL — накопленный результат уже закрытых позиций. За маркировочной ценой он не идёт. Меняется он только тогда, когда вы уменьшаете или закрываете позицию.
Маркировочная цена и цена последней сделки
Маркировочная цена — это не цена последней сделки. Это сглаженный ориентир для учёта маржи, нереализованного PnL, финансирования и ликвидаций, построенный так, чтобы его нельзя было сдвинуть одной сделкой. Как он строится, описано на странице Маркировочная цена. Цена последней сделки — это просто цена, по которой прошло последнее исполнение. Они могут расходиться, особенно на быстрых рынках, и это расхождение заложено в дизайн: если считать маржу по последней сделке, манипулировать ликвидациями станет проще простого. Платежи финансирования тоже считаются по маркировочной цене; см. Финансирование, если в строке реализованного PnL оказались неожиданные потоки финансирования.Как читать атрибуцию по каждому исполнению
Каждое исполнение публикуется с идентификатором, ценой, количеством, комиссией и позицией в последовательности. Их можно получить через API или из потока исполнения. Записи по каждому исполнению — канонический ответ на вопрос «что случилось с моим ордером»; сводка в интерфейсе лишь удобно их отображает.Что прислать, если всё равно выглядит неверно
Напишите наcontact@intention.xyz и приложите:
- Идентификатор ордера и, если он есть, идентификатор исполнения.
- Ожидаемые цену и объём и то, на чём основано ожидание.
- Фактические цену и объём из приложения или API.
- Высоту блока или отметку времени в UTC, когда прошло исполнение.
- Одно предложение с описанием расхождения.