> ## 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**입니다

결과는 오더북 최상단의 50,000이 아니라 **평균 50,112.30에 0.0798207 ETH**입니다. 그 차이가 슬리피지이며, 수수료가 아니라 이 깊이에 대한 주문 수량의 함수입니다.

엔진이 도출하는 상한은 닿아야 했던 가장 깊은 단계의 가격이고, 시장가 주문을 그 가격의 지정가 주문으로 바꾸는 것이 바로 이 값입니다.

<h3 id="the-worst-price-your-size-would-reach">
  주문 수량이 닿을 최악의 가격
</h3>

제출 전에 주문 수량이 소모할 깊이만큼 오더북을 걸어 내려가고, 그때 닿은 가장 깊은 단계의 가격이 상한이 됩니다.

셋 중 가장 미묘한 상한이며, 나머지 둘이 놓치는 경우를 잡습니다. 허용치는 최우선 호가를 기준으로 측정되는데, 그 근처에서 체결될 만큼 오더북이 깊은지에 대해서는 아무것도 말해 주지 않습니다. 실제 수량만큼 오더북을 걸어 보면 *최우선 호가에서 얼마나 떨어졌는가*가 *이 주문이 실제로 어디에서 끝나는가*로 바뀝니다.

<h2 id="what-this-means-for-you">
  실제로 겪게 되는 일
</h2>

**주문이 전부 체결되지 않을 수 있습니다.** 상한 안에서 오더북의 유동성이 바닥나면 남은 수량은 더 나쁜 가격에 체결되는 대신 취소됩니다. 시장가 주문의 부분 체결은 실패가 아니라 보호 장치가 작동한 결과입니다.

**허용치를 좁힐수록 미체결이 늘어납니다.** 변동성이 큰 마켓에서 0.01%로 설정하면 부분 체결이거나 아예 체결되지 않는 경우가 잦습니다. 기본값 10%가 느슨한 이유는, 몇 베이시스포인트의 슬리피지보다 체결되지 않는 쪽이 더 나쁠 때가 많기 때문입니다. 다만 느슨한 것은 *사실*이고, 얇은 시장에서 10%는 실제로 큰돈입니다.

**허용치보다 수량이 더 중요합니다.** 세 번째 상한이 수량에서 도출되므로, 큰 주문은 허용치를 아무리 넉넉히 잡아도 오더북의 실제 깊이에 묶입니다. 큰 주문을 쪼개는 것이 시장 충격을 줄이는 확실한 방법입니다. [TWAP](/ko/trading/twap)과 [분할 주문](/ko/trading/scale-orders)을 참고하십시오.

<Note>
  이 전환은 제출 시점에, 그 순간의 오더북을 기준으로 이뤄집니다. 제출과 체결 사이에 오더북은 움직일 수 있습니다. 상한은 애초에 존재하지 않던 깊이까지 훑고 내려가는 것을 막아 줄 뿐, 시장을 얼려 두지는 않습니다.
</Note>

<h2 id="checking-before-you-submit">
  제출 전에 확인하기
</h2>

상한은 공개 데이터로 계산할 수 있으므로, 클라이언트는 주문을 확정하기 전에 예상 체결 가격과 최악의 경우를 보여 줄 수 있습니다. 눈에 보이는 오더북에 비해 큰 주문이라면 해 볼 만합니다. 최우선 호가와 도달 가능한 최악의 가격 사이의 차이가 바로 시장가 주문이 감추는 숫자입니다.

<Warning>
  슬리피지 보호는 가격을 제한하는 것이지 결과를 제한하는 것이 아닙니다. 가격이 빠르게 움직이면 여유 있게 체결되었을 주문이 부분 체결이나 미체결로 돌아올 수 있고, 그 포지션이 가장 필요한 순간에 포지션 없이 남게 됩니다. 보호가 목적이라면 허용치를 넓게 잡은 시장가 주문보다, 트리거를 명시한 [조건부 주문](/ko/trading/conditional-orders)이 더 적합합니다.
</Warning>

<h2 id="where-to-go-next">
  다음으로 읽을 문서
</h2>

<CardGroup cols={2}>
  <Card title="주문 유형" href="/ko/trading/order-types">
    지정가 주문과 주문 유효기간, 그리고 각 유형이 미체결 잔량을 어떻게 처리하는지 다룹니다.
  </Card>

  <Card title="오더북" href="/ko/trading/order-book">
    깊이를 읽는 법과 최우선 호가가 곧 체결 가격은 아닌 이유를 다룹니다.
  </Card>

  <Card title="TWAP" href="/ko/trading/twap">
    큰 주문을 시간에 걸쳐 쪼개 시장 충격을 줄이는 방법입니다.
  </Card>

  <Card title="마켓" href="/ko/trading/markets">
    마켓별 가격 밴드와 호가 단위를 다룹니다.
  </Card>
</CardGroup>
