TT Lab
はじめる
学ぶ 学習パス コース

資本市場と決済

約定と決済は別の日に起きる

TT Labで続きを見る

一言でいうと

株は、約定した瞬間には持ち主が変わりません。代金と証券が実際にやり取りされるのは営業日で2日後であり、その2日の間に生きる未決済の残高が、証券システムの半分を説明します。

なぜ必要なのか

初めて証券会社のシステムを見ると、理解できない表があります。約定の表と決済の表が別々にあり、件数が違います。同じものを2回書く理由がなさそうなのに、なぜ分かれているのか。答えは、2つの出来事が別の日に起きるからです。

T일    주문이 체결된다. 계약이 성립한다.
       이 시점에 오간 것은 없다. 채권과 채무만 생긴다.
T+2일  대금과 증권이 실제로 오간다. 이것이 결제(settlement).

このコードブロックの韓国語コメントは、T日は注文が約定して契約が成立するが、この時点でやり取りされたものはなく債権と債務だけが生じること、T+2日は代金と証券が実際にやり取りされ、これが決済(settlement)であることを述べています。

T+2の2は、暦の2日ではなく営業日で2日です。金曜日に約定すれば決済は火曜日で、その間に祝日が挟まれば、1日ずつさらに後ろにずれます。この1行が、事故の常連の原因です。暦の足し算で組んだ決済日の計算機は、平日の真ん中では何か月も合い続け、連休でだけ間違います。そのため、事故がデプロイ直後ではなく、連休明けの週に起きます。

なぜすぐに決済しないのか。1日に数千万件の約定を、1件ずつ代金と証券を動かせば、システムも資金も耐えられません。そのため、1日分をまとめて相殺(netting)し、純額だけを動かします。同じ人が同じ銘柄を100株買って80株売ったなら、実際に動かすのは20株です。この相殺作業が清算(clearing)であり、それが終わって初めて決済が出ていきます。その時間が、T+2の正体です。

どう動くのか

突合(reconciliation)は、約定の帳簿と決済の帳簿を突き合わせる作業です。コツは、4つの方向を別々に数えることです。

양쪽에 있고 금액도 같다        정상
양쪽에 있는데 금액이 다르다    수수료 규칙 차이거나 진짜 오류
체결에는 있는데 결제가 없다    지시가 안 나갔거나 유실됐다
결제에는 있는데 체결이 없다    남의 배치가 우리 것에 섞였다

4つの韓国語コメントは、順に、両方にあって金額も同じなら正常、両方にあるのに金額が違うなら手数料ルールの差か本当のエラー、約定にはあるのに決済がないなら指示が出なかったか欠落した、決済にはあるのに約定がないなら他人のバッチがこちらのものに混ざった、という意味です。

件数の合計だけを比較する突合が危険な理由が、ここにあります。約定1,200件に決済1,152件なら、48件の差に見えますが、実際には、決済がないものが60件、約定がないものが12件で、ずれたのは72件です。2つの方向の差が互いを打ち消して、48に見えただけです。金額の合計も、同じ方式で相殺されます。そのため、突合は必ず、件単位で双方向に行います。

未決済(fail)は、決済日が過ぎたのに終わっていない件です。判定には、日付の条件を必ず入れる必要があります。まだ決済日が来ていない件まで数えると、未決済の残高が膨らみ、その数字で証拠金を再計算すると、問題のない口座が拘束されます。そして、理由を分ける必要があります。

결제 기록 자체가 없다   지시 생성 쪽 문제. 원인이 우리 안에 있다
아직 pending 이다        상대방이나 예탁결제원 쪽 진행 중
failed 로 끝났다         잔고 부족·계좌 문제. 고객 연락이 필요하다

3つの韓国語コメントは、順に、決済記録そのものがないのは指示の生成側の問題で原因がこちらの内部にあること、まだpendingなのは相手方や預託決済院側で進行中であること、failedで終わったのは残高不足や口座の問題で顧客への連絡が必要であることを述べています。

この3つは、担当部署が違います。まとめて「未決済120件」とだけ報告すると、誰も自分の仕事として受け取りません。

現場での姿

ある現場で、秋夕の連休の次の週に、未決済の残高が普段の3倍に跳ねました。原因を探すのに3日かかりましたが、肝心の原因は、決済日の計算機が臨時休日を知らなかったことでした。休場日の表がコードの中に定数として埋め込まれており、その年の臨時休日が指定されたのは、デプロイのあとでした。休場日はコードではなくデータとして置いておけば、デプロイなしで反映されます。

もう1つよく見るのは、決済日がそもそも営業日ではない日に書かれた約定です。その日には決済が起きないので、指示がそのまま流れ、翌日にも、誰もそれを拾って処理しません。静かに未決済として残り、数日後の残高点検で見つかります。決済日自体が営業日かどうかを確認する検査1行が、この種類をすべて捕まえます。

未決済が放置されると、最後は強制買い付け(buy-in)に行き着きます。売ることにした証券を引き渡せなければ、清算機関が市場で代わりに買って引き渡し、その費用を失敗した側に請求します。金額が大きく、市場価格で買うので、損失が予測できません。決済日の計算機の1行のバグが、ここまで行きます。

その次のラボですること

まず次の理論でカードのオーソリと売上確定を見てから、ラボに進みます。

約定1,200件と決済1,152件が入った元帳を作り、休場日の表を読んで営業日基準のT+2を再計算し、決済日が間違っている約定を探します。そのあと、2つの帳簿を4方向で突合し、決済日が過ぎたのに終わっていない件を理由別に分けて、金額まで出します。