Skip to main content
Каждое число на пути расчёта — целое. Плавающей запятой нет нигде, где значение может повлиять на баланс: две машины, вычисляющие одно и то же выражение с плавающей запятой, могут разойтись в последнем бите, а на пути исполнения под консенсусом расхождение в последнем бите — это форк. Поэтому цены и объёмы хранятся в фиксированных целочисленных единицах, и у каждого преобразования между тем, что вы вводите, и тем, что хранит протокол, есть определённое направление округления.

Шаг цены и шаг количества

Оба задаются для каждого рынка и публикуются в спецификации контракта. Ордер, который под них не подходит, отклоняют, а не подгоняют молча: площадка, которая тихо округлила бы вашу цену, меняла бы ваш ордер, не сказав вам об этом.

Округление — это решение о риске

Направление округления — не вопрос форматирования. Каждый выбор округления отдаёт кому-то долю ошибки, и правило здесь одно: там, где ошибка создаёт риск, округляем консервативно; там, где ошибка стала бы систематическим перераспределением, округляем честно.

Консервативное округление против счёта

Закономерность: всё, что отвечает на вопрос сколько этот счёт может на себя взять, округляется против счёта. Маржинальное требование, округлённое вниз на долю единицы и повторённое на каждой позиции площадки, — это систематическое занижение риска: мелкое в каждом отдельном случае и ровно того сорта, что всплывает только тогда, когда это важно.

Честное округление

Это те поля, где постоянное направление было бы перераспределением, а не запасом прочности. Комиссия, которая всегда округляется вверх, — скрытая наценка; которая всегда вниз — субсидия. Округление половины вверх не оставляет систематического преимущества ни одной стороне. Одно исключение: комиссия, которая округлилась бы до нуля, вместо этого округляется вверх. Сделка, которая не платит комиссию вовсе, хуже сделки, которая платит минимальную представимую величину.
Поэтому стоимость позиции, использование маржи и показанная прибыль могут отличаться на минимальную единицу от того, что вы посчитаете сами. Это не ошибка, а правило округления для конкретного поля, применённое намеренно.

Что это значит на практике

  • Приводите цену и объём к шагу цены и шагу количества перед отправкой. Ордер, отклонённый из-за цены не по шагу, — самая частая причина отказа, которой можно было избежать.
  • Не набирайте объём до последней единицы. Свободное обеспечение округляется вниз, а маржа — вверх, поэтому ордер ровно на весь доступный баланс может быть отклонён. Оставляйте запас.
  • Ожидайте небольших расхождений в отображении. Чтобы воспроизвести значение точно, нужно применить то же правило округления к тем же целочисленным входным данным, а не пересчитывать с плавающей запятой.
  • Восстанавливайте из целых чисел. Если вы сверяете данные программно, работайте в единицах протокола. Перевод в десятичный тип и обратно возвращает ровно ту неоднозначность, ради устранения которой целые числа и введены.

Что дальше

Рынки

Шаги цены и количества и спецификации контрактов по каждому рынку.

IntentionKernel

Почему арифметика с фиксированной запятой — требование консенсуса.

Режимы маржи

Где консервативное округление проявляется в доступном балансе.

Комиссии

Как начисления считаются и округляются.