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

# セルフトレード防止

> 自分の未約定注文とのマッチングは執行されずに抑止されます。常時有効で、適用範囲は注文を出したアカウント単位です。

セルフトレード防止は、注文が自分の未約定の流動性とマッチングするのを止めます。入ってきた注文が同じアカウントの注文と約定しそうになったとき、そのマッチングは執行されずに抑止されます。

これはすべてのマーケット、すべてのアカウントで**常時有効**です。有効化する操作も、設定するパラメータもありません。

<h2 id="why-it-exists">
  なぜ存在するのか
</h2>

理由は2つあり、どちらも重要です。

**仮装売買**。自分自身と取引すれば、リスクを移転しないまま出来高と約定履歴が生まれます。活動を捏造する手口であり、マッチング層で防ぐことによって、取引所が公表する出来高は異なる当事者どうしの取引を反映したものになります。

**意図しない自己約定**。こちらのほうが一般的で、悪意はありません。両サイドに気配を出すマーケットメイカーや、1つのアカウントで複数の戦略を動かしている場合、自分の気配どうしが簡単に交差します。防止機構がなければ、両方のレッグにテイカー手数料がかかり、ポジションが何も変わらない約定だけが残ります。

<h2 id="what-happens">
  何が起きるか
</h2>

入ってきた注文が同じアカウントの未約定の流動性を取ろうとしていることをマッチング処理が検出すると、**未約定側の注文が取り消され**、入ってきた注文は板の残りに対して処理を続けます。

<div className="dg" data-dg="self-trade-prevention">
  <div className="dg-c" style={{aspectRatio:"720 / 274"}}>
    <svg className="dg-w" viewBox="0 0 720 274" aria-hidden="true">
      <path className="dg-wire dg--blue" d="M 144.00 68.00 L 165.60 68.00" />

      <path className="dg-head dg--blue" d="M 172.00 68.00 L 165.60 72.40 L 165.60 63.60 Z" />

      <path className="dg-wire dg--green" d="M 356.00 68.00 L 382.03 35.02" />

      <path className="dg-head dg--green" d="M 386.00 30.00 L 385.49 37.75 L 378.58 32.30 Z" />

      <path className="dg-wire dg--orange" d="M 356.00 68.00 L 381.90 99.08" />

      <path className="dg-head dg--orange" d="M 386.00 104.00 L 378.52 101.90 L 385.28 96.27 Z" />

      <path className="dg-wire dg--blue" d="M 544.00 104.00 L 559.60 104.00" />

      <path className="dg-head dg--blue" d="M 566.00 104.00 L 559.60 108.40 L 559.60 99.60 Z" />
    </svg>

    <div className="dg-b dg--blue" style={{left:"0.0000%",top:"14.5985%",width:"19.4444%",height:"20.4380%"}}><span className="dg-t">入ってきた注文</span></div>
    <div className="dg-b dg--yellow dg-round" style={{left:"24.4444%",top:"13.1387%",width:"24.4444%",height:"23.3577%"}}><span className="dg-t">自分の未約定注文を取ることになるか</span></div>
    <div className="dg-b dg--green" style={{left:"54.1667%",top:"2.1898%",width:"45.8333%",height:"17.5182%"}}><span className="dg-t">通常どおり約定</span></div>
    <div className="dg-b dg--orange" style={{left:"54.1667%",top:"27.0073%",width:"20.8333%",height:"21.8978%"}}><span className="dg-t">未約定側の注文を取り消し</span></div>
    <div className="dg-b dg--blue" style={{left:"79.1667%",top:"27.0073%",width:"20.8333%",height:"21.8978%"}}><span className="dg-t">入ってきた注文は板の残りへ進む</span></div>
    <div className="dg-b dg--green dg-left" style={{left:"0.0000%",top:"67.8832%",width:"48.8889%",height:"22.6277%"}}><span className="dg-t">1つのアカウントの内側</span><span className="dg-s">常に抑止されます。有効化も設定も不要です。</span></div>
    <div className="dg-b dg--orange dg-left" style={{left:"51.1111%",top:"67.8832%",width:"48.8889%",height:"22.6277%"}}><span className="dg-t">サブアカウントの間</span><span className="dg-s">抑止されません。設計上、別々のアカウントだからです。</span></div>
    <div className="dg-free" style={{left:"0.0000%",top:"54.7445%",width:"100.0000%"}}><div className="dg-n">取り消されるのはテイカーではなくメイカーです。専用のステータスが付くため、自動化されたシステムは通常の取り消しと区別できます。</div></div>
  </div>
</div>

テイカーではなくメイカーを取り消すため、いま送信した注文は指示どおりに動き続け、その進路に立っていた古い気配だけが取り除かれます。取り消された注文には専用のステータスが付くので、セルフトレードによる取り消しと通常の取り消しを区別できます。これは自動化されたシステムでは表に出しておく価値があります。この理由で気配が消えたということは、自分の戦略セットの中で何かが衝突したという意味だからです。

<h2 id="scope">
  適用範囲
</h2>

防止機構は**1つのアカウントの内側**に適用されます。サブアカウントは別々のアカウントとして扱われ、互いに対しては保護されません。

これは見落としではなく意図的な線引きです。サブアカウントは戦略を分離するために存在します。リスクも証拠金も持ち高も別々です。本当に独立した戦略どうしが同じ取引の反対側に立つことは正当にありえますし、それを止めてしまえば、あるサブアカウントの気配が別のサブアカウントの約定を知らないうちに妨げることになります。

<Note>
  互いに絶対に取引してはならない複数の戦略を動かすなら、防止機構が効くように同じアカウントにまとめてください。正当に反対側へ回りうる戦略であれば、サブアカウントが適切な構成です。これは事後に気づくのではなく、意識して決めておくべき判断です。
</Note>

<h2 id="what-it-does-not-do">
  防止機構がしないこと
</h2>

**注文の約定は保証しません**。その価格の流動性が自分の未約定注文だけだった場合、それを取り消しても相手方が生まれるわけではありません。注文は、相手のいないかもしれない板の奥へ進んでいきます。

**アカウント間で示し合わせた取引は防げません**。防止機構は1つのアカウントを範囲とするマッチング層の仕組みです。別々の2つのアカウントが互いに取引することを、マッチング処理は通常の取引と区別できません。

**取り消しによってポジションが減ることはありません**。取り消されたメイカーは注文であってポジションではありません。エクスポージャーは何も変わりません。

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

<CardGroup cols={2}>
  <Card title="マッチング" href="/ja/protocol/architecture/matching">
    このチェックがブロック実行のどこで走るかです。
  </Card>

  <Card title="注文タイプ" href="/ja/trading/order-types">
    ポストオンリー注文と、自分の板との関わり方です。
  </Card>

  <Card title="注文の変更" href="/ja/trading/modify-orders">
    自己交差を起こさずに気配を管理する方法です。
  </Card>

  <Card title="手数料" href="/ja/programs/fees">
    セルフトレードが成立していたら支払っていたテイカー手数料です。
  </Card>
</CardGroup>
