二つの経路
ここでいう数量は残数量
変更要求
何が変わったか
数量の減少のみその場で編集、列の位置は維持
価格の変更、または数量の増加取り消してから新規発注、列の位置は喪失
数量10の注文が4約定なら残数量は6
5に変えるのは減少
8に変えるのは増加、当初の10より小さくても
取り消し・再発注はアトミックではない新規発注は取り消しが成功した場合のみ試みられ、証拠金で失敗することもあります。元の注文は取り消され、板に注文が残らない状態になります。
列の位置が重要な理由
ある価格帯では、注文は到着した順に約定します。その価格帯の先頭にある注文は、後ろの注文より先に約定します。混み合った価格帯では、先頭と後方の差は、約定するか、相場が離れていくのを眺めるだけかの差になります。 マーケットメイカーにとっては、これがすべてです。列の位置を失わずにリスク管理のために数量を減らせることは、判断しているあいだに到着した全員の後ろへ並び直さねばならないのとは、実質的に別物です。ここでいう「数量」とは
数量の比較には、当初に送信した数量ではなく残数量を使います。 数量10の注文が4だけ約定していれば、残数量は6です。これを5に変えるのは減少であり、その場で編集されます。8に変えるのは、当初の10より小さくても6に対しては増加なので、取り消しと再発注になります。取り消し・再発注の経路は途中で失敗しうる
変更が取り消し・再発注の経路を通るとき、二つのステップには順序がありますが、アトミックではありません。- 新規発注は、取り消しが成功した場合にのみ試みられます。両方が残ることはありません。
- それでも新規発注は失敗することがあります。多くは証拠金が理由です。二つのステップのあいだにマーケットが動いている可能性があるからです。
タイミング
その場での数量削減は、現在のブロックで適用されます。待ちは発生しません。 価格の変更と数量の増加は二段階の経路を通り、通常の取り消しや新規発注と同じ順序付けに従います。取り消しは取り消しフェーズで実行され、同じブロック内のテイカー注文より先に走ります。だからこそ、変更と並んで到着した注文に、古くなった気配を拾われずに済みます。 有効期間は引き継がれます。変更された注文は同じ有効期間を保ち、それは置き換え後の注文にも適用されます。実務上の注意
- 縮めるのは自由に。コストは低く、優先順位も失いません。
- 価格の変更は新規注文として扱う。実際にそうだからです。
- プログラムから変更するなら、クライアント注文IDを使う。曖昧なレスポンスが返ってきたとき、推測ではなく、何が存在するかを確認できます。
- 複数のフィールドを一度に変えるときは、明示的に取り消して出し直す。結果は同じで、失敗時の扱いがはっきりします。
次に読む
板
価格時間優先が、価格帯内の約定順をどう決めるのかです。
トランザクションの順序付け
同じブロック内で、取り消しがテイカー注文より先に実行される理由です。
クライアント注文ID
曖昧なレスポンスの後に、何が存在するかを確認します。
注文タイプ
有効期間と、変更をまたいで引き継がれるものです。