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

# TWAP

> 큰 주문을 시간으로 쪼개 오더북이 회복되는 만큼 유동성을 가져갑니다. 슬라이스가 미달 체결되면 따라잡고, 무작위화로 예측 가능해지는 것을 피합니다.

한 번에 체결하는 큰 주문은 자기가 만든 충격의 대가를 스스로 치릅니다. 오더북을 훑어 나가면서 소진하는 레벨마다 앞선 레벨보다 나쁜 가격을 무는 셈입니다. TWAP 주문은 같은 수량을 시간에 걸쳐 펼쳐서, 일정한 간격마다 한 슬라이스씩 가져가고 그 사이에 오더북이 회복할 시간을 줍니다.

트레이드오프는 분명합니다. 한 번에 처리할 때의 충격을 피하는 대신 **실행 구간 동안의 가격 리스크**를 받아들입니다. 작업하는 동안 시장이 불리하게 움직일 수 있습니다.

<h2 id="parameters">
  파라미터
</h2>

| 파라미터       | 의미                               |
| ---------- | -------------------------------- |
| **총 수량**   | 실행할 전체 수량. 자산 단위 또는 결제 통화 단위로 입력 |
| **기간**     | 얼마나 오래 펼칠지. 5분에서 24시간까지          |
| **간격**     | 슬라이스 사이의 시간                      |
| **무작위화**   | 동일한 슬라이스를 보내는 대신 수량을 변동시킴        |
| **리듀스 온리** | 주문을 기존 포지션 종료로만 제한               |

기간과 간격에서 다음이 정해집니다.

$$
N = \frac{\text{기간}}{\text{간격}} + 1 \qquad
\text{기본 슬라이스} = \frac{Q}{N}
$$

슬라이스는 시작과 동시에 한 번, 이후 각 간격마다, 그리고 구간의 마지막에 한 번 더 실행됩니다.

<h2 id="validation-before-it-starts">
  시작 전 검사
</h2>

지정한 대로 완료될 가능성이 없는 TWAP은 처음부터 거부됩니다.

* 각 슬라이스가 유효한 주문이 될 만큼 커야 합니다. 총 수량을 일정에 나눈 값이 마켓의 최소 수량 아래로 내려갈 수 없습니다
* 각 슬라이스가 마켓의 최대 주문 수량을 넘지 않아야 합니다
* 전체 수량이 개시증거금 요건을 충족해야 합니다
* 리듀스 온리라면 총 수량이 현재 포지션을 넘지 않아야 합니다

여기서는 일찍 실패하는 것이 중요합니다. 절반쯤 진행한 뒤에야 슬라이스가 최소 수량 미만이라는 사실을 알게 되는 TWAP은 깔끔하게 마무리할 방법도 없이 부분 체결 상태만 남깁니다.

<h2 id="execution-and-catch-up">
  실행과 따라잡기
</h2>

각 슬라이스는 **3% 슬리피지 상한**이 붙은 시장가 주문으로 제출됩니다. 실행이 벽시계가 아니라 온체인에서 구동되므로, 슬라이스는 각 간격이 지난 뒤 첫 블록에 실립니다.

오더북이 얇거나 슬리피지 상한에 닿아 슬라이스가 의도보다 적게 체결되어도 부족분은 사라지지 않습니다. 일정은 지금 있어야 할 지점을 기준으로 진행 상황을 추적합니다.

$$
\text{목표} = \frac{t_{\text{경과}}}{t_{\text{기간}}} \times Q
$$

실제 체결이 그 목표에 뒤처지면 이후 슬라이스를 키워 따라잡습니다.

<div className="dg" data-dg="twap-catchup">
  <div className="dg-c" style={{aspectRatio:"720 / 286"}}>
    <svg className="dg-w" viewBox="0 0 720 286" aria-hidden="true">
      <path className="dg-rule dg-dash" d="M 400 24 L 400 250" />
    </svg>

    <div className="dg-b dg-plain dg-left" style={{left:"57.2222%",top:"35.6643%",width:"18.8889%",height:"9.7902%"}}><span className="dg-s dg-ink--orange">미달 체결</span></div>
    <div className="dg-b dg-plain dg-left" style={{left:"57.2222%",top:"48.2517%",width:"18.8889%",height:"9.7902%"}}><span className="dg-s dg-ink--sky">따라잡기</span></div>
    <div className="dg-b dg--sky dg-left" style={{left:"77.7778%",top:"16.0839%",width:"22.2222%",height:"61.5385%"}}><span className="dg-t">상한을 두는 이유</span><span className="dg-s">유동성 부족에 점점 더 큰 주문으로 대응하는 전략은 결국 스스로 피하려던 그 충격이 됩니다.</span><span className="dg-n">목표 = 경과 ÷ 기간 × 총량</span></div>
    <div className="dg-free" style={{left:"0.0000%",top:"0.0000%",width:"61.1111%"}}><div className="dg-n">슬라이스 여섯 개, 총 6.0 — 3번이 얇은 오더북에서 미달 체결</div></div>
    <div className="dg-bar" style={{left:"0.0000%",top:"10.4895%",width:"55.5556%",height:"9.7902%"}}><span className="dg-bar-lead" style={{width:"15.5000%"}}>슬라이스 1</span><span className="dg-bar-track"><span className="dg-bar-fill dg--blue" style={{left:"0%",width:"33.333%"}} /><span className="dg-bar-val" style={{left:"33.333%"}}>1.00</span></span></div>
    <div className="dg-bar" style={{left:"0.0000%",top:"23.0769%",width:"55.5556%",height:"9.7902%"}}><span className="dg-bar-lead" style={{width:"15.5000%"}}>슬라이스 2</span><span className="dg-bar-track"><span className="dg-bar-fill dg--blue" style={{left:"0%",width:"33.333%"}} /><span className="dg-bar-val" style={{left:"33.333%"}}>1.00</span></span></div>
    <div className="dg-bar" style={{left:"0.0000%",top:"35.6643%",width:"55.5556%",height:"9.7902%"}}><span className="dg-bar-lead" style={{width:"15.5000%"}}>슬라이스 3</span><span className="dg-bar-track"><span className="dg-bar-fill dg--orange" style={{left:"0%",width:"13.333%"}} /><span className="dg-bar-val" style={{left:"13.333%"}}>0.40</span></span></div>
    <div className="dg-bar" style={{left:"0.0000%",top:"48.2517%",width:"55.5556%",height:"9.7902%"}}><span className="dg-bar-lead" style={{width:"15.5000%"}}>슬라이스 4</span><span className="dg-bar-track"><span className="dg-bar-fill dg--sky" style={{left:"0%",width:"40.000%"}} /><span className="dg-bar-val" style={{left:"40.000%"}}>1.20</span></span></div>
    <div className="dg-bar" style={{left:"0.0000%",top:"60.8392%",width:"55.5556%",height:"9.7902%"}}><span className="dg-bar-lead" style={{width:"15.5000%"}}>슬라이스 5</span><span className="dg-bar-track"><span className="dg-bar-fill dg--sky" style={{left:"0%",width:"40.000%"}} /><span className="dg-bar-val" style={{left:"40.000%"}}>1.20</span></span></div>
    <div className="dg-bar" style={{left:"0.0000%",top:"73.4266%",width:"55.5556%",height:"9.7902%"}}><span className="dg-bar-lead" style={{width:"15.5000%"}}>슬라이스 6</span><span className="dg-bar-track"><span className="dg-bar-fill dg--sky" style={{left:"0%",width:"40.000%"}} /><span className="dg-bar-val" style={{left:"40.000%"}}>1.20</span></span></div>
    <div className="dg-lbl" style={{left:"55.5556%",top:"90.2098%"}}>기본 수량의 3배 — 상한</div>
  </div>
</div>

중요한 것은 이 상한입니다. 따라잡는 것은 바람직하지만, 제한 없이 따라잡는 것은 그렇지 않습니다. 유동성 부족에 점점 더 큰 주문으로 대응하는 전략은 결국 스스로 피하려던 그 충격이 됩니다. **어떤 슬라이스도 기본 수량의 세 배를 넘지 않으므로** 회복은 점진적입니다.

완전히 실패한 슬라이스는 건너뛰고 보고합니다. 전략은 멈추지 않습니다. 유동성이 얇은 한순간의 나쁜 슬라이스 하나가 나머지 주문 전체를 발목 잡아서는 안 되기 때문입니다.

<h2 id="randomization">
  무작위화
</h2>

무작위화를 켜면 슬라이스가 서로 같지 않습니다. 각 슬라이스를 내기 전에 전략은 남은 수량의 평균을 계산하고, 그 주위의 안전한 범위 안에서 수량을 고릅니다.

일정한 간격에 일정한 크기로 나가는 슬라이스는 하나의 패턴이고, 주문 흐름의 패턴은 지켜보는 누구에게나 정보가 됩니다. 무작위화는 일정의 총량을 그대로 둔 채 규칙성만 없앱니다.

잔여 수량 계산은 여전히 구속력을 갖습니다. 무작위화는 수량을 변동시킬 뿐, 전략이 총량을 초과하거나 마지막에 잔여분을 남기도록 허용하지 않습니다.

<h2 id="when-twap-is-the-right-tool">
  TWAP이 맞는 도구일 때
</h2>

주문이 눈에 보이는 깊이에 비해 크고, 시간 여유가 있으며, 일정 구간의 평균 가격이 받아들일 만한 목표일 때 **사용하십시오**.

지금 당장 포지션이 필요하다면 **쓰지 마십시오**. TWAP은 긴급함의 정반대입니다. 특정 가격을 염두에 두고 있을 때도 쓰지 마십시오. TWAP에는 가격 목표가 없고 시간 일정만 있습니다. 즉시성보다 가격이 중요하다면 [분할 주문](/ko/trading/scale-orders)이 가격 구간에 지정가 대기 주문을 깔아 줍니다.

<Warning>
  TWAP은 전량 체결을 보장하지 않습니다. 슬라이스는 슬리피지로 제한된 시장가 주문이고, 한 방향으로 지속되는 움직임에서는 반복적으로 미달 체결될 수 있습니다. 따라잡기에도 상한이 있으므로, 시장이 불리하게 움직인 채 구간이 끝나면 주문이 상당 부분 미완인 상태로 남을 수 있습니다.
</Warning>

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

<CardGroup cols={2}>
  <Card title="분할 주문" href="/ko/trading/scale-orders">
    시간이 아니라 가격으로 쪼개는 방식.
  </Card>

  <Card title="시장가 주문" href="/ko/trading/market-to-limit">
    각 슬라이스에 적용되는 슬리피지 상한.
  </Card>

  <Card title="오더북" href="/ko/trading/order-book">
    주문이 깊이에 비해 큰지 판단하기.
  </Card>

  <Card title="거래 수수료" href="/ko/programs/fees">
    모든 슬라이스는 테이커 주문이며 테이커 수수료를 냅니다.
  </Card>
</CardGroup>
