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

> 大きな注文を時間で分割し、板が回復するのに合わせて流動性を取る方法で、スライスが取り残されたときの追いつき処理と、読まれないためのランダム化を備えます。

大きな注文を一度に取ると、自分で作ったインパクトの代金を自分で払うことになります。板をたどり、消費するレベルはどれも1つ前より不利です。TWAP注文は同じ数量を時間に分散し、一定間隔でスライスを取ることで、その間に板が回復する時間を与えます。

トレードオフは明示的です。**執行ウィンドウ中の価格リスク**を引き受けます。執行している間に相場が不利な方向へ動きうるということです。その代わりに、一度に全部やることのインパクトを避けます。

<h2 id="parameters">
  パラメータ
</h2>

| パラメータ         | 意味                        |
| ------------- | ------------------------- |
| **合計数量**      | 執行する全数量、原資産建てまたは決済通貨建てで入力 |
| **執行時間**      | 分散させる長さ、5分から24時間まで        |
| **間隔**        | スライスとスライスの間の時間            |
| **ランダム化**     | 同一の数量を送らず、スライスの数量を変動させる   |
| **リデュースオンリー** | 注文を既存ポジションの決済に限定          |

執行時間と間隔から次が決まります。

$$
N = \frac{\text{執行時間}}{\text{間隔}} + 1 \qquad
\text{基本スライス} = \frac{Q}{N}
$$

スライスは開始と同時に1回、以降は各間隔ごとに発火し、ウィンドウの終端でもう1回発火します。

<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スライス、合計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>

重要なのは上限です。追いつくこと自体は望ましいものの、無制限に追いつくのは望ましくありません。流動性不足に対して次第に大きな注文を送る戦略は、避けるはずだったインパクトそのものになります。**どのスライスも基本サイズの3倍を超えません**。だから回復は緩やかです。

まったく約定しなかったスライスはスキップされ、記録されます。戦略は停止しません。板が薄い一瞬に1つのスライスが失敗したからといって、注文の残りを立ち往生させるべきではないからです。

<h2 id="randomization">
  ランダム化
</h2>

ランダム化を有効にすると、スライスは同一ではなくなります。各スライスの前に、戦略は残りの平均を計算し、その周辺の安全な範囲から数量を選びます。

固定間隔で同じ数量のスライスを出すのはパターンであり、注文フローのパターンは、それを見ている者にとって情報です。ランダム化は、スケジュールの合計を変えずに規則性だけを取り除きます。

残数量の計算はそのまま効いています。ランダム化が変えるのは数量だけで、戦略が超過して執行したり、最後に端数を残したりすることはありません。

<h2 id="when-twap-is-the-right-tool">
  TWAPが適している場面
</h2>

**使うべき場面**は、注文が見えている板の厚みに対して大きいとき、時間に余裕があるとき、ウィンドウ全体の平均価格が目標として許容できるときです。

**使うべきでない場面**は、いますぐポジションが必要なときです。TWAPは緊急性の正反対にあります。特定の価格を狙っているときにも使わないでください。TWAPに価格の目標はなく、あるのは時間のスケジュールだけです。即時性より価格が重要なら、[スケール注文](/ja/trading/scale-orders)が価格レンジに指値注文を並べます。

<Warning>
  TWAPは全量の執行を保証しません。スライスはスリッページで上限が付いた成行注文であり、一方向の動きが続く相場では繰り返し約定不足になりえます。追いつきにも上限があるため、相場が不利に動いたままウィンドウが終われば、注文がかなりの部分未執行のまま残ることがあります。
</Warning>

<h2 id="where-to-go-next">
  次に読む
</h2>

<CardGroup cols={2}>
  <Card title="スケール注文" href="/ja/trading/scale-orders">
    時間ではなく価格で分割する方法です。
  </Card>

  <Card title="成行注文" href="/ja/trading/market-to-limit">
    各スライスに適用されるスリッページの上限です。
  </Card>

  <Card title="板" href="/ja/trading/order-book">
    注文が板の厚みに対して大きいかどうかを判断する方法です。
  </Card>

  <Card title="手数料" href="/ja/programs/fees">
    どのスライスもテイカー注文であり、テイカー手数料を払います。
  </Card>
</CardGroup>
