> ## 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.

# Рыночные ордера и защита от проскальзывания

> Почему рыночный ордер отправляется как лимитный с ценовой границей и как эта граница выводится из трёх независимых ограничений.

Рыночный ордер просит немедленного исполнения по тому, что предлагает стакан. Понимать это буквально опасно: в тонком или быстро движущемся стакане «то, что предлагает стакан» может оказаться далеко от цены, которую вы видели.

Intention не отправляет рыночные ордера буквально. Каждый рыночный ордер преобразуется в **лимитный ордер с защитной ценовой границей**, вычисляемой в момент отправки. Он по-прежнему сразу забирает ликвидность, но останавливается на цене, а не снимает стакан без ограничений.

<h2 id="three-bounds-strictest-wins">
  Три границы, побеждает строжайшая
</h2>

Граница — самая консервативная из трёх независимо выведенных цен.

<div className="dg" data-dg="market-order-bound">
  <div className="dg-c" style={{aspectRatio:"720 / 330"}}>
    <svg className="dg-w" viewBox="0 0 720 330" aria-hidden="true">
      <path className="dg-wire dg-soft" d="M 113.33 145.00 L 353.64 170.33" />

      <path className="dg-head" d="M 360.00 171.00 L 353.17 174.70 L 354.10 165.95 Z" />

      <path className="dg-wire dg-soft" d="M 360.00 145.00 L 360.00 164.60" />

      <path className="dg-head" d="M 360.00 171.00 L 355.60 164.60 L 364.40 164.60 Z" />

      <path className="dg-wire dg-soft" d="M 606.67 145.00 L 366.36 170.33" />

      <path className="dg-head" d="M 360.00 171.00 L 365.90 165.95 L 366.83 174.70 Z" />

      <path className="dg-wire dg--blue" d="M 360.00 226.00 L 360.00 235.60" />

      <path className="dg-head dg--blue" d="M 360.00 242.00 L 355.60 235.60 L 364.40 235.60 Z" />
    </svg>

    <div className="dg-b dg--blue" style={{left:"0.0000%",top:"0.0000%",width:"31.4815%",height:"42.4242%"}}><span className="dg-t">Допуск по проскальзыванию</span><span className="dg-s">покупка: лучший аск × (1 + s), продажа: лучший бид × (1 − s)</span><span className="dg-n">По умолчанию 10%, настраивается от 0,01% до 10%. Эта граница — ваша.</span></div>
    <div className="dg-b dg--yellow" style={{left:"34.2593%",top:"0.0000%",width:"31.4815%",height:"42.4242%"}}><span className="dg-t">Ценовой коридор рынка</span><span className="dg-s">вне его ордер не стоит и не исполняется</span><span className="dg-n">Защищает рынок, а не вас — и без индекса в блоке отклоняет ордер, а не отключается.</span></div>
    <div className="dg-b dg--orange" style={{left:"68.5185%",top:"0.0000%",width:"31.4815%",height:"42.4242%"}}><span className="dg-t">Худшая цена, до которой дойдёт объём</span><span className="dg-s">выводится из глубины, которую реально съест ордер</span><span className="dg-n">Граница, которую не видно по цене на вершине стакана.</span></div>
    <div className="dg-b dg--brown dg-round" style={{left:"34.7222%",top:"53.3333%",width:"30.5556%",height:"13.9394%"}}><span className="dg-t">Строжайшая из трёх</span></div>
    <div className="dg-b dg--blue" style={{left:"31.9444%",top:"74.5455%",width:"36.1111%",height:"21.2121%"}}><span className="dg-t">Лимитная цена отправленного ордера</span><span className="dg-s">наименьшая из трёх при покупке, наибольшая при продаже</span></div>
  </div>
</div>

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

<h3 id="your-slippage-tolerance">
  Ваш допуск по проскальзыванию
</h3>

$$
\text{граница покупки} = \text{лучший аск} \times (1 + s) \qquad
\text{граница продажи} = \text{лучший бид} \times (1 - s)
$$

По умолчанию допуск равен 10% и настраивается в диапазоне от 0,01% до 10%. Это граница, которой управляете вы, и она выражает простую инструкцию: *не исполняй меня хуже, чем на столько от вершины стакана.*

<h3 id="the-markets-price-band">
  Ценовой коридор рынка
</h3>

Каждый рынок держит коридор вокруг своей опорной цены, и ни один ордер не может ни стоять, ни исполняться за его пределами. Это относится и к рыночным ордерам: ваш допуск не протолкнёт исполнение дальше того, что рынок разрешает кому бы то ни было.

Эта граница защищает рынок, а не вас. Без неё крупный рыночный ордер в пустоту оставил бы в ленте цену, которая потом разошлась бы по другим системам.

Коридор проверяется и против маркировочной, и против индексной цены, а рынок, у которого коридор настроен, при отсутствии индекса в блоке **отклонит ордер, а не откатится к запасному варианту**: настроенной защите не дают тихо отключиться.

Ширина коридора задаётся для каждого рынка отдельно и хранится в `price_limit_ppm`, с двухсегментным уточнением в `price_limit_x_ppm` и `price_limit_y_ppm`. Читайте их в спецификации контракта, а не на этой странице.

<h3 id="a-worked-example">
  Пример с расчётом
</h3>

Вы отправляете рыночную покупку ETH на 4 000 USDC в такой стакан:

| Уровень |   Цена | Объём | Стоимость снятия |
| ------: | -----: | ----: | ---------------: |
|       1 | 50 000 |  0,02 |            1 000 |
|       2 | 50 100 |  0,03 |            1 503 |
|       3 | 50 200 |  0,04 |            2 008 |

Движок идёт вниз по стакану и тратит бюджет, пока тот не кончится:

* Уровень 1 забирает 1 000, остаётся **3 000**
* Уровень 2 забирает 1 503, остаётся **1 497**
* На уровне 3 доступно 2 008, но осталось только 1 497, поэтому он исполняется **частично**: 1 497 ÷ 50 200 = **0,0298207 ETH**

В итоге у вас **0,0798207 ETH по средней цене 50 112,30** — а не 50 000 с вершины стакана. Разница — это проскальзывание: оно определяется вашим объёмом против этой глубины и комиссией не является.

Граница, которую выводит движок, — это цена самого глубокого уровня, до которого пришлось дойти; она и превращает ваш рыночный ордер в лимитный по этой цене.

<h3 id="the-worst-price-your-size-would-reach">
  Худшая цена, до которой дойдёт ваш объём
</h3>

Перед отправкой стакан проходят до той глубины, которую съел бы ваш объём, и границей становится цена самого глубокого достигнутого уровня.

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

<h2 id="what-this-means-for-you">
  Что это значит для вас
</h2>

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

**Чем уже допуск, тем больше неисполненных ордеров.** Значение 0,01% на волатильном рынке будет часто давать частичные исполнения или вовсе ничего. Значение по умолчанию 10% широкое, потому что остаться без исполнения нередко хуже, чем несколько базисных пунктов проскальзывания, — но оно *действительно* широкое, и на тонком рынке 10% — это реальные деньги.

**Объём важнее допуска.** Третья граница выводится из вашего объёма, поэтому крупный ордер ограничен реальной глубиной стакана, каким бы щедрым ни был допуск. Надёжный способ снизить влияние на цену — разбить крупный ордер: см. [TWAP](/ru/trading/twap) и [Ступенчатые ордера](/ru/trading/scale-orders).

<Note>
  Преобразование происходит в момент отправки, по стакану в том виде, в каком он есть тогда. Между отправкой и исполнением стакан может сдвинуться. Граница защищает вас от снятия глубины, которой там никогда не было, но не замораживает рынок.
</Note>

<h2 id="checking-before-you-submit">
  Проверка перед отправкой
</h2>

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

<Warning>
  Защита от проскальзывания ограничивает цену, а не результат. При резком движении ордер, который спокойно исполнился бы, может вернуться исполненным частично или пустым и оставить вас без позиции ровно в тот момент, когда она была нужнее всего. Защитное намерение лучше выражать [условными ордерами](/ru/trading/conditional-orders) с явной ценой срабатывания, чем рыночными ордерами с широким допуском.
</Warning>

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

<CardGroup cols={2}>
  <Card title="Типы ордеров" href="/ru/trading/order-types">
    Лимитные ордера, срок действия и что каждый делает с неисполненным остатком.
  </Card>

  <Card title="Стакан заявок" href="/ru/trading/order-book">
    Как читать глубину и почему цена на вершине стакана — не цена исполнения.
  </Card>

  <Card title="TWAP" href="/ru/trading/twap">
    Разбиение крупного ордера по времени для снижения влияния на цену.
  </Card>

  <Card title="Рынки" href="/ru/trading/markets">
    Ценовые коридоры и шаг цены по каждому рынку.
  </Card>
</CardGroup>
