仮想証券取引所の内側が、どのように動いているか?

仮想証券取引所の内側が、どのように動いているか?

私の自前の取引所である「Kapokの仮想証券取引所」の内側を公開します。システムには、ユーザーが直接見る事ができない情報や処理が多くあります。この見えない所に興味を持つ人が、いるのであれば幸いです。

証券取引システムの概観

下図は、システムの概観です。それぞれのスクリプト・プログラムの動作については後述します。オレンジがユーザーインターフェイス、青がシステムの内側の処理をあらわしています。
kapok_sec_sys_gairyaku
※クリックで拡大します。

 

注文受付(order.php)

order.phpは、ユーザーの注文情報を処理します。ID認証し、情報(銘柄名、売りか買いか?それともキャンセルか?、指値、株数、発注時刻など)を処理します。

order.phpは、エラーがあれば(たとえば注文可能数を超えている等)注文を受けつけず、その旨をユーザーに返します。

エラーが無ければ、注文情報データを次のプロセスにデータを渡します。

 

注文情報の銘柄別分割と並べ替え(sepsort.sh)

sepsort.shは、新規注文情報を銘柄別に分類し、既存の注文情報と統合します。その後、銘柄毎に指値順に並べ替え、次のプロセスにデータを渡します。

もしも注文キャンセルがあれば、ここで該当する既存の情報を消し込みます。

 

約定処理・板情報作成(trade.cc)

trade.ccは、指値順に並んでいる買い注文と売り注文を比べます。ここで約定があれば、約定情報を作成し、次のプロセスに渡します。また、注文情報を更新しておきます。

その後、残った注文の板情報を作成し、ユーザーに表示できるようにします。

 

アカウント情報処理(idoperator.cc haito.cc kajitsu.cc)

idoperator.ccは、個人別にまとまっている注文情報と約定情報を処理します。これにより、account.phpは、ユーザーにアカウント情報を表示できるようになります。

haito.ccとkajitu.ccは、それぞれ配当金を出す処理、優待を出す処理、を行うプログラムで、1日1回だけ動きます。

 

まとめ

仮想証券取引所のシステムは、注文情報を銘柄別に分類し、それぞれ約定があった場合は、個人アカウント情報を更新します。また、板情報も更新します。

なお、配当処理・優待処理を日次で行っています。

 

 

関連記事

タグ: , , ,

コメントを残す

メールアドレスが公開されることはありません。