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

> Pecah order besar lintas waktu agar likuiditas diambil sembari order book terisi kembali — dengan catch-up ketika slice kurang tereksekusi, dan randomisasi agar tidak mudah ditebak.

Order besar yang diambil sekaligus membayar dampaknya sendiri: order itu menyusuri order book, dan setiap level yang dikonsumsinya lebih buruk daripada level sebelumnya. Order TWAP menyebarkan ukuran yang sama lintas waktu, mengambil satu slice (potongan order) pada interval tetap agar order book sempat terisi kembali di antaranya.

Pertukarannya eksplisit. Anda menerima **risiko harga sepanjang jendela eksekusi** — pasar bisa bergerak melawan Anda saat order sedang dikerjakan — sebagai imbalan menghindari dampak melakukan semuanya sekaligus.

<h2 id="parameters">
  Parameter
</h2>

| Parameter        | Arti                                                                                          |
| ---------------- | --------------------------------------------------------------------------------------------- |
| **Ukuran total** | Kuantitas penuh yang akan dieksekusi, dimasukkan dalam aset atau dalam mata uang penyelesaian |
| **Durasi**       | Berapa lama disebar — dari 5 menit sampai 24 jam                                              |
| **Interval**     | Jarak waktu antar-slice                                                                       |
| **Randomisasi**  | Variasikan ukuran slice alih-alih mengirim yang identik                                       |
| **Reduce-only**  | Batasi order untuk menutup posisi yang sudah ada                                              |

Dari durasi dan interval:

$$
N = \frac{\text{durasi}}{\text{interval}} + 1 \qquad
\text{slice dasar} = \frac{Q}{N}
$$

Satu slice dikirim segera saat mulai, lalu pada tiap interval, dan sekali lagi di akhir jendela.

<h2 id="validation-before-it-starts">
  Validasi sebelum mulai
</h2>

TWAP ditolak di muka jika mustahil selesai sebagaimana ditentukan:

* Slice harus cukup besar untuk menjadi order yang valid — total yang dibagi ke seluruh jadwal tidak boleh jatuh di bawah minimum pasar
* Slice tidak boleh melebihi ukuran order maksimum pasar
* Ukuran penuhnya harus memenuhi margin awal
* Jika reduce-only, totalnya tidak boleh melebihi posisi Anda saat ini

Gagal sejak awal itu penting di sini. TWAP yang baru menyadari di tengah jalan bahwa slice-nya di bawah minimum akan meninggalkan Anda tereksekusi sebagian tanpa cara bersih untuk menuntaskannya.

<h2 id="execution-and-catch-up">
  Eksekusi dan catch-up
</h2>

Setiap slice dikirim sebagai order market dengan **batas slippage 3%**. Slice mendarat di blok pertama setelah tiap interval berlalu, karena eksekusinya digerakkan on-chain, bukan oleh jam dinding.

Jika slice tereksekusi lebih kecil daripada yang dimaksudkan — order book tipis, batas slippage tercapai — kekurangan itu tidak hilang. Jadwalnya tetap mengukur diri terhadap posisi yang seharusnya sudah tercapai:

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

Ketika eksekusi aktual tertinggal dari target itu, slice berikutnya diperbesar untuk menyusul:

<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">kurang</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">menyusul</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">Alasan plafon</span><span className="dg-s">Strategi yang menjawab likuiditas tipis dengan order yang makin besar justru menjadi dampak yang hendak dihindarinya.</span><span className="dg-n">target = berlalu ÷ durasi × total</span></div>
    <div className="dg-free" style={{left:"0.0000%",top:"0.0000%",width:"61.1111%"}}><div className="dg-n">Enam slice, total 6,0 — slice 3 kurang di order book tipis</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%"}}>Slice 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%"}}>Slice 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%"}}>Slice 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%"}}>Slice 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%"}}>Slice 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%"}}>Slice 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× ukuran dasar — plafonnya</div>
  </div>
</div>

Batas itulah bagian pentingnya. Menyusul itu diinginkan; menyusul tanpa batas tidak — strategi yang merespons likuiditas yang menipis dengan mengirim order yang makin besar justru berubah menjadi dampak yang hendak dihindarinya. **Tidak ada slice yang melebihi tiga kali ukuran dasar**, sehingga pemulihannya bertahap.

Slice yang gagal sepenuhnya dilewati dan dilaporkan. Strategi tidak berhenti: satu slice buruk pada momen yang tipis tidak boleh membuat sisa order telantar.

<h2 id="randomization">
  Randomisasi
</h2>

Dengan randomisasi aktif, slice tidak identik. Sebelum setiap slice, strategi menghitung rata-rata dari sisa yang ada dan memilih ukuran dalam pita aman di sekitarnya.

Slice berukuran tetap pada interval tetap adalah pola, dan pola dalam aliran order adalah informasi bagi siapa pun yang mengamati. Randomisasi menghilangkan keteraturan itu tanpa mengubah total jadwalnya.

Aritmetika kuantitas sisa tetap mengikat. Randomisasi memvariasikan ukuran, bukan membuat strategi melampaui target atau meninggalkan residu di akhir.

<h2 id="when-twap-is-the-right-tool">
  Kapan TWAP adalah alat yang tepat
</h2>

**Pakai** ketika order Anda besar relatif terhadap kedalaman yang terlihat, ketika Anda punya waktu, dan ketika harga rata-rata sepanjang jendela adalah tujuan yang dapat diterima.

**Jangan pakai** ketika Anda butuh posisi sekarang — TWAP adalah kebalikan dari urgensi. Dan jangan pakai ketika Anda sudah punya harga tertentu di kepala: TWAP tidak punya target harga, hanya jadwal waktu. Jika harga lebih penting daripada kesegeraan, [order berjenjang](/id/trading/scale-orders) memasang order limit terpasang melintasi rentang harga.

<Warning>
  TWAP tidak menjamin eksekusi penuh. Slice adalah order market yang dibatasi slippage, dan dalam pergerakan satu arah yang berkelanjutan slice bisa berulang kali kurang tereksekusi. Catch-up dibatasi, jadi jendela yang berakhir dengan pasar bergerak melawan Anda bisa meninggalkan order yang jauh dari tuntas.
</Warning>

<h2 id="where-to-go-next">
  Langkah berikutnya
</h2>

<CardGroup cols={2}>
  <Card title="Order berjenjang" href="/id/trading/scale-orders">
    Memecah lintas harga alih-alih lintas waktu.
  </Card>

  <Card title="Order market" href="/id/trading/market-to-limit">
    Batas slippage yang berlaku pada setiap slice.
  </Card>

  <Card title="Order book" href="/id/trading/order-book">
    Menilai apakah order Anda besar relatif terhadap kedalaman.
  </Card>

  <Card title="Biaya" href="/id/programs/fees">
    Setiap slice adalah order taker dan membayar biaya taker.
  </Card>
</CardGroup>
