> ## Documentation Index
> Fetch the complete documentation index at: https://docs.intention.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Точность и округление

> Как цены и объёмы представлены целыми числами и почему каждое поле округляется именно в свою сторону.

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

Поэтому цены и объёмы хранятся в фиксированных целочисленных единицах, и у каждого преобразования между тем, что вы вводите, и тем, что хранит протокол, есть определённое направление округления.

<h2 id="tick-size-and-lot-size">
  Шаг цены и шаг количества
</h2>

| Ограничение                     | К чему применяется | Действие                            |
| ------------------------------- | ------------------ | ----------------------------------- |
| **Шаг цены** (`tick size`)      | Цена               | Цена должна быть его целым кратным  |
| **Шаг количества** (`lot size`) | Объём              | Объём должен быть его целым кратным |

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

<h2 id="rounding-is-a-risk-decision">
  Округление — это решение о риске
</h2>

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

<h3 id="rounded-conservatively-against-the-account">
  Консервативное округление против счёта
</h3>

| Поле                                   | Направление | Почему                                   |
| -------------------------------------- | ----------- | ---------------------------------------- |
| Начальная маржа                        | **Вверх**   | Заниженная маржа занижает риск           |
| Поддерживающая маржа                   | **Вверх**   | Она задаёт порог ликвидации              |
| Свободное обеспечение                  | **Вниз**    | Не даёт открыть чуть больше, чем покрыто |
| Доступный к выводу баланс              | **Вниз**    | Не даёт вывести больше доступного        |
| Максимальный объём покупки или продажи | **Вниз**    | Не даёт выйти за реальный лимит          |

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

<h3 id="rounded-fairly">
  Честное округление
</h3>

| Поле                              | Направление                       | Почему                                                       |
| --------------------------------- | --------------------------------- | ------------------------------------------------------------ |
| Комиссии и платежи финансирования | **До ближайшего, половина вверх** | Систематический перекос в пользу площадки ничем не оправдать |
| Ребейты и вознаграждения          | **До ближайшего, половина вверх** | То же рассуждение, другая сторона                            |
| Реализованный P\&L                | **До ближайшего, половина вверх** | Расчёт не должен клониться ни в одну сторону                 |
| Отображаемый P\&L                 | **До ближайшего, половина вверх** | Согласованность с расчётом                                   |

Это те поля, где постоянное направление было бы перераспределением, а не запасом прочности. Комиссия, которая всегда округляется вверх, — скрытая наценка; которая всегда вниз — субсидия. Округление половины вверх не оставляет систематического преимущества ни одной стороне.

**Одно исключение:** комиссия, которая округлилась бы до нуля, вместо этого округляется **вверх**. Сделка, которая не платит комиссию вовсе, хуже сделки, которая платит минимальную представимую величину.

<Note>
  Поэтому стоимость позиции, использование маржи и показанная прибыль могут отличаться на минимальную единицу от того, что вы посчитаете сами. Это не ошибка, а правило округления для конкретного поля, применённое намеренно.
</Note>

<h2 id="what-this-means-in-practice">
  Что это значит на практике
</h2>

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

<h2 id="where-to-go-next">
  Что дальше
</h2>

<CardGroup cols={2}>
  <Card title="Рынки" href="/ru/trading/markets">
    Шаги цены и количества и спецификации контрактов по каждому рынку.
  </Card>

  <Card title="IntentionKernel" href="/ru/protocol/architecture/kernel">
    Почему арифметика с фиксированной запятой — требование консенсуса.
  </Card>

  <Card title="Режимы маржи" href="/ru/trading/margin-modes">
    Где консервативное округление проявляется в доступном балансе.
  </Card>

  <Card title="Комиссии" href="/ru/programs/fees">
    Как начисления считаются и округляются.
  </Card>
</CardGroup>
