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

> Dividir uma ordem grande ao longo do tempo, para consumir liquidez à medida que o livro se repõe — com recuperação quando uma fatia falha, e aleatorização para não ser previsível.

Uma ordem grande executada de uma só vez paga o seu próprio impacto: percorre o livro, e cada nível que consome é pior do que o anterior. Uma ordem TWAP distribui o mesmo tamanho ao longo do tempo, consumindo uma fatia em intervalos fixos para que o livro tenha tempo de se repor entre elas.

A troca é explícita: aceita **risco de preço ao longo da janela de execução** — o mercado pode mover-se contra si enquanto a ordem está a ser trabalhada — em troca de evitar o impacto de fazer tudo de uma vez.

<h2 id="parameters">
  Parâmetros
</h2>

| Parâmetro         | Significado                                                                      |
| ----------------- | -------------------------------------------------------------------------------- |
| **Tamanho total** | A quantidade completa a executar, introduzida no ativo ou na moeda de liquidação |
| **Duração**       | Ao longo de quanto tempo distribuir — de 5 minutos a 24 horas                    |
| **Intervalo**     | Tempo entre fatias                                                               |
| **Aleatorizar**   | Variar o tamanho das fatias em vez de enviar fatias idênticas                    |
| **Reduce-only**   | Restringir a ordem ao fecho de uma posição existente                             |

A partir da duração e do intervalo:

$$
N = \frac{\text{duração}}{\text{intervalo}} + 1 \qquad
\text{fatia base} = \frac{Q}{N}
$$

É disparada uma fatia imediatamente no arranque, depois uma a cada intervalo e mais uma no fim da janela.

<h2 id="validation-before-it-starts">
  Validação antes do arranque
</h2>

Um TWAP é rejeitado à partida se não puder de todo concluir-se como foi especificado:

* As fatias têm de ser grandes o suficiente para serem ordens válidas — o total dividido pelo calendário não pode ficar abaixo do mínimo do mercado
* As fatias não podem exceder o tamanho máximo de ordem do mercado
* O tamanho total tem de cumprir a margem inicial
* Se for reduce-only, o total não pode exceder a posição atual

Falhar cedo importa aqui. Um TWAP que descobre a meio que as suas fatias estão abaixo do mínimo deixa-o parcialmente executado e sem forma limpa de terminar.

<h2 id="execution-and-catch-up">
  Execução e recuperação
</h2>

Cada fatia é submetida como uma ordem de mercado com um **limite de slippage de 3%**. As fatias entram no primeiro bloco depois de cada intervalo decorrer, uma vez que a execução é conduzida on-chain e não por um relógio de parede.

Se uma fatia executar menos do que o previsto — livro fino, limite de slippage atingido — o défice não se perde. O calendário compara-se com onde deveria estar:

$$
\text{alvo} = \frac{t_{\text{elapsed}}}{t_{\text{duration}}} \times Q
$$

Quando a execução real fica atrás desse alvo, as fatias seguintes são aumentadas para recuperar:

<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">abaixo do alvo</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">a recuperar</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">Porquê um teto</span><span className="dg-s">Uma estratégia que responde à iliquidez com ordens cada vez maiores torna-se o impacto que devia evitar.</span><span className="dg-n">alvo = decorrido ÷ duração × total</span></div>
    <div className="dg-free" style={{left:"0.0000%",top:"0.0000%",width:"61.1111%"}}><div className="dg-n">Seis fatias, 6,0 no total — a fatia 3 falha num livro fino</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%"}}>Fatia 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%"}}>Fatia 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%"}}>Fatia 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%"}}>Fatia 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%"}}>Fatia 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%"}}>Fatia 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× o tamanho base — o teto</div>
  </div>
</div>

O limite é a parte importante. Recuperar é desejável; recuperar sem limite não é — uma estratégia que responde à iliquidez enviando ordens progressivamente maiores torna-se o impacto que foi desenhada para evitar. **Nenhuma fatia excede três vezes o tamanho base**, pelo que a recuperação é gradual.

Uma fatia que falha por completo é ignorada e reportada. A estratégia não pára: uma má fatia num momento de pouca liquidez não deve deixar o resto da ordem encalhado.

<h2 id="randomization">
  Aleatorização
</h2>

Com a aleatorização ligada, as fatias não são idênticas. Antes de cada uma, a estratégia calcula a média do que resta e escolhe um tamanho dentro de uma banda segura em torno dela.

Fatias de tamanho fixo em intervalos fixos são um padrão, e um padrão no fluxo de ordens é informação para quem estiver a observar. Aleatorizar remove a regularidade sem alterar o total do calendário.

A aritmética da quantidade restante continua a valer. A aleatorização varia os tamanhos; não permite à estratégia exceder-se nem deixar um resto no fim.

<h2 id="when-twap-is-the-right-tool">
  Quando o TWAP é a ferramenta certa
</h2>

**Use-o** quando a sua ordem for grande face à profundidade visível, quando tiver tempo e quando o preço médio ao longo de uma janela for um objetivo aceitável.

**Não o use** quando precisa da posição já — um TWAP é o oposto da urgência. E não o use quando tem um preço específico em mente: o TWAP não tem alvo de preço, apenas um calendário. Se o preço conta mais do que a imediatez, as [ordens escalonadas](/pt/trading/scale-orders) colocam ordens limitadas em livro ao longo de um intervalo de preços.

<Warning>
  Um TWAP não garante execução total. As fatias são ordens de mercado limitadas por slippage e, num movimento unidirecional prolongado, podem executar repetidamente abaixo do previsto. A recuperação tem limite, pelo que uma janela que termina com o mercado contra si pode deixar a ordem substancialmente incompleta.
</Warning>

<h2 id="where-to-go-next">
  Para onde ir a seguir
</h2>

<CardGroup cols={2}>
  <Card title="Ordens escalonadas" href="/pt/trading/scale-orders">
    Dividir no preço em vez do tempo.
  </Card>

  <Card title="Ordens de mercado" href="/pt/trading/market-to-limit">
    O limite de slippage a que cada fatia está sujeita.
  </Card>

  <Card title="Livro de ordens" href="/pt/trading/order-book">
    Avaliar se a ordem é grande face à profundidade.
  </Card>

  <Card title="Comissões" href="/pt/programs/fees">
    Cada fatia é uma ordem taker e paga a comissão de taker.
  </Card>
</CardGroup>
