以下、本発明を実施するための最良の形態について、図面を参照しながら詳しく説明する。なお、同一の構成要素には同一の参照番号を付して、説明を省略する。
図1は、本発明の一実施形態に係る株式売買募集装置を含むシステムの構成を示すブロック図である。本実施形態は、本発明を株式売買募集装置に適用したものである。この株式売買募集装置6は、売買システム3、管理者端末4、及び、情報系システム5と共に、A証券会社内に設置されている。
売買システム3は、各地の証券取引所のサーバ2a,2b,・・・に接続され、これらのサーバ2a,2b,・・・に株式の買い注文又は売り注文を行うためのシステムであり、多くの証券会社において広く用いられているシステムである。
情報系システム5は、各銘柄の現在値、終値等の情報を提供するシステムであり、多くの証券会社において広く用いられているシステムである。
株式売買募集装置6は、顧客が使用するクライアント端末1a,1b,1c,・・・とネットワークを介して接続され、募集条件をクライアント端末に表示させて株式売買の募集を行い、顧客からの株式売買の応募を受け付け、顧客からの株式売買の応募があった場合に、応募に基づく買い注文又は売り注文を売買システム3に依頼するための装置である。
図1に示すように、株式売買募集装置6は、株式売買募集処理部11と、株式売買応募受付処理部12と、株式売買注文依頼処理部13と、決済処理部14と、約定通知処理部15と、管理処理部16と、募集関連データベース更新処理部17と、株価取得処理部18と、注文データベースレコード追加処理部19と、ハードディスク20とを有している。
株式売買募集処理部11、株式売買応募受付処理部12、株式売買注文依頼処理部13、決済処理部14、約定通知処理部15、管理処理部16、募集関連データベース更新処理部17、株価取得処理部18、及び、注文データベースレコード追加処理部19は、CPUとソフトウェア(プログラム)で実現することができる。このソフトウェア(プログラム)は、ハードディスク20やその他の記録媒体(フレキシブルディスク、MO、CD−ROM、DVD−ROM等)に記録しても良いし、ネットワーク経由でダウンロードするようにしても良い。
ハードディスク20には、顧客に関するデータを格納するための顧客データベース21と、銘柄に関するデータを格納するための銘柄データベース22と、顧客に対して行う株式売買の募集に関連するデータを格納するための募集関連データベース30と、顧客からの株式売買の応募に関連するデータを格納するための応募関連データベース40と、顧客からの株式売買の応募の統計データを格納するための統計情報DB51と、が記録されている。募集関連データベース30は、募集条件(親)DB31と、募集条件(子)DB32〜36とを含んでおり、応募関連データベース40は、注文データベース41と、注文詳細データベース42とを含んでいる。なお、顧客データベース21は、株式売買募集装置6のハードディスク20ではなくA証券会社の既存システムのハードディスクに記録されていることとしても良い。その場合、株式売買募集装置6が、既存システムのハードディスクに記録されている顧客データベースを利用(読み込み、更新等)するための電文を既存システムに送信することとすれば良い。
ここで、ハードディスク20に記録されている各データベースの詳細な説明に先立って、募集関連データベース30及び応募関連データベース40の役割について、簡単に説明する。パーソナルコンピュータ等を利用した従来の株式売買においては、顧客が、銘柄、指値(指値注文の場合)、注文のタイミング等を自ら決定する必要がある。これらのことを自ら決定することは、顧客、特に初心者にとっては、非常に難しいことである。そこで、本実施形態においては、銘柄と、銘柄を買付けるための買付け値段と、買付けた銘柄を売付けるための売付け値段とを含む募集条件をクライアント端末1a,1b,1c,…に表示させて顧客に提示し、この募集条件に応じて顧客が株式売買の応募を行えるようにすることで、顧客の株式売買を容易にすることを可能とする。これを実現するため、ハードディスク20には、クライアント端末1a,1b,1c,…に表示させる募集条件に関する情報を格納する募集関連データベース30と、顧客が行った株式売買の応募に関する情報を格納する応募関連データベース40とが、記録されている。なお、これらのデータベースについては、後に詳細に説明する。
次に、ハードディスク20に記録されている各データベースについて、順次詳細に説明する。
図2は、顧客データベース21を示す図である。図2に示すように、顧客データベース21は、顧客を一意に特定する顧客コード、顧客名、パスワード、顧客のメールアドレス、及び、顧客がA証券会社に預け入れている預入残高をそれぞれ格納する第1〜第5フィールドを有している。なお、先に説明したように、顧客データベース21は、ハードディスク20ではなくA証券会社の既存システムに記録されていることとしても良い。その場合、株式売買募集装置6が、既存システムに記録されている顧客データベースを利用(読み込み、更新等)するための電文を既存システムに送信することとすれば良い。
図3は、銘柄データベース22を示す図である。図3に示すように、銘柄データベース22は、銘柄を一意に特定する銘柄コード(本実施形態においては、証券取引所によって銘柄に付与された銘柄コードを利用)、銘柄名、最新値、及び、前回値をそれぞれ格納する第1〜第4フィールドを有している。図3においては、第1レコードの第1フィールドには銘柄コード「8601」が、第1レコードの第2フィールドには銘柄名「(公序良俗違反につき、不掲載)」が、第1レコードの第3フィールドには最新値「2,000」が、第1レコードの第4フィールドには前回値「1,980」が、それぞれ格納されている。また、第2レコードの第1フィールドには銘柄コード「9999」が、第1レコードの第2フィールドには銘柄名「X銀行」が、第2レコードの第3フィールドには最新値「1,200」が、第2レコードの第4フィールドには前回値「1,210」が、それぞれ格納されている。
最新値として、証券取引所において取引が行われている間(場中)においては、証券取引所における個々の銘柄の直近の値段を用いることができる。証券取引所の当日の取引が終了した後の時刻においては個々の銘柄の当日の終値を用いることができる。証券取引所の当日の取引が開始する前の時刻においては個々の銘柄の前日の終値を用いることができる。また、前回値として、前日の終値を用いることができる。また、これらの値に代えて、所定の時刻(例えば、毎正時、寄り付き、寄り付き30分後等)の値を用いるようにしても良い。最新値及び前回値の利用の詳細については、後に説明する。このような株価の情報は、情報系システム5から電文として株価取得処理部18に送信され、株価取得処理部18が、この電文に基づいて、銘柄データベース22の第3フィールドに格納されている最新値を更新する。
図4は、募集関連データベース30の内の募集条件(親)データベース31を示す図であり、図5〜図9は、募集関連データベース30の内の募集条件(子)データベース32〜36をそれぞれ示す図である。先に説明したように、募集関連データベース30は、顧客に対して行う株式売買の募集に関連するデータを格納するデータベースである。
図4に示すように、募集条件(親)データベース31は、第1〜第10フィールドを有している。
ここで、募集条件(親)データベース31の第1〜第10フィールドについて詳細に説明するに先立って、募集条件(親)データベース31の第1〜第10フィールドの概要について簡単に説明する。募集条件(親)データベース31の第1〜第10フィールドは、(ア)個々の銘柄の株式の買付け値段及び売付け値段を決定するための情報を格納する複数のフィールドと、(イ)上記(ア)の複数のフィールドに格納されている情報によって決定される買付け値段及び売付け値段がどの銘柄の株式の買付け値段及び売付け値段として使用されるかを決定するための情報を格納する複数のフィールドと、(ウ)その他の情報を格納するための複数のフィールドと、に分けることができる。本実施形態において、上記(ア)には、募集条件(親)データベース31の第2〜第4フィールドが該当し、上記(イ)には、募集条件(親)データベース31の第1及び第5フィールドが該当し、上記(ウ)には、募集条件(親)データベース31の第6〜第10フィールドが該当する。
次に、募集条件(親)データベース31の第1〜第10フィールドについて、詳細に説明する。
募集条件(親)データベース31の第1フィールドには、第2〜第4フィールドに格納されている情報によって決定される買付け値段及び売付け値段がどの銘柄の株式の買付け値段及び売付け値段として使用されるかを決定する情報として、値動率を決定するための情報である値動率コードが格納される。実際の値動率は、募集条件(子)データベース32に格納されている。図5は、募集条件(子)データベース32を示す図である。図5に示すように、募集条件(子)データベース32は、値動率コードを格納する第1フィールド、及び当該値動率コードに対応付けられた値動率を格納する第2フィールドを有している。例えば、図4に示す募集条件(親)データベース31の第1レコードの第1フィールドには、値動率コード「N02」が格納されている。ここで図5を参照すると、募集条件(子)データベース32の第2レコードには、第1フィールドに値動率コード「N02」が、第2フィールドに「2.0%」が、それぞれ格納されている。従って、図4に示す募集条件(親)データベース31の第1レコードの第2〜第4フィールドに格納されている情報によって決定される買付け値段及び売付け値段は、最新値が前回値より2.0%以上変動している銘柄の買付け値段及び売付け値段として使用される。
先に説明したように、銘柄データベース22の第3及び第4フィールド内に、最新値及び前回値として、寄り付き30分後(一般に、9時30分頃)の値段及び寄り付き(一般に、9時頃)値段が格納されることとしても良い。その場合、図4に示す募集条件(親)データベース31の第1レコードの第2〜第4フィールドに格納されている情報によって決定される買付け値段及び売付け値段は、寄り付き30分後の値段が寄り付き値段より2.0%以上変動している銘柄の買付け値段及び売付け値段として使用されることになる。さらに、募集条件(親)データベース31の第1レコードの第2〜第4フィールドに格納されている情報によって決定される買付け値段と売付け値段との値幅を小さくすることで、デイトレードに好適な募集条件を顧客に提示することが可能になる。この場合に、例えば、募集時間を9時30分〜10時25とし、募集に基づく証券取引所サーバ2a,2b,…(図1参照)への注文電文の送信を10時30分に行うようにしても良い。
なお、募集条件(親)データベース31の第1フィールドは、オプション項目であり、何れの値動率コードも格納されていない場合(図4の募集条件(親)データベース31の第2レコード等参照)には、第2〜第4フィールドに格納されている情報によって決定される買付け値段及び売付け値段はすべての銘柄の買付け値段及び売付け値段として使用される。
再び図4を参照すると、募集条件(親)データベース31の第2フィールドには、第1及び第5フィールドに格納されている情報によって決定される銘柄の買付け値段(以下、「買値」ともいう)を決定するための情報である買値コードが格納される。実際に買値を決定するための具体的な情報は、募集条件(子)データベース33に格納されている。図6は、募集条件(子)データベース33を示す図である。図6に示すように、募集条件(子)データベース33は、買値コードを格納する第1フィールド、及び当該買値コードに対応付けられた情報を格納する第2フィールドを有している。例えば、図4に示す募集条件(親)データベース31の第1レコードの第2フィールドには、買値コード「K03」が格納されている。ここで図6を参照すると、募集条件(子)データベース33の第3レコードには、第1フィールドに買値コード「K03」が、第2フィールドに「+0.05%」が、それぞれ格納されている。従って、図4に示す募集条件(親)データベース31の第1レコードに基づく株式売買の募集に係る買値は、最新値の0.05%増しの値段となる。
再び図4を参照すると、募集条件(親)データベース31の第3フィールドには、第1及び第5フィールドに格納されている情報によって決定される銘柄の売付け値段(以下、「売値(A)」ともいう)を決定するための情報である売値(A)コードが格納される。この第4フィールドの情報によって決定される売値(A)は、当該レコードの第2フィールドに格納されている買値コードによって決定される買値よりも高い値段である。後に説明するように、募集条件(親)データベース31の第2フィールドに格納されている買値コードによって決定される買値で買われた株式は、この第3フィールドに格納されている売値(A)コードによって決定される売値(A)で売付けられることになる。実際に売値(A)を決定するための具体的な情報は、募集条件(子)データベース34に格納されている。
図7は、募集条件(子)データベース34を示す図である。図7に示すように、募集条件(子)データベース34は、売値(A)コードを格納する第1フィールド、及び当該売値(A)コードに対応付けられた情報を格納する第2フィールドを有している。例えば、図4に示す募集条件(親)データベース31の第1レコードの第3フィールドには、売値(A)コード「UP04」が格納されている。ここで図7を参照すると、募集条件(子)データベース34の第4レコードには、第1フィールドに売値(A)コード「UP04」が、第2フィールドに「20.0%」が、それぞれ格納されている。従って、図4に示す募集条件(親)データベース31の第1レコードに基づく株式売買の募集に係る売値(A)は、最新値の20.0%増しの値段となる。
再び図4を参照すると、募集条件(親)データベース31の第4フィールドには、第1及び第5フィールドに格納されている情報によって決定される銘柄の損切り売りの注文を行う目安となる値段(以下、「売値(B)」ともいう)を決定するための情報である売値(B)コードが格納される。この第4フィールドの情報によって決定される売値(B)は、当該レコードの第2フィールドの買値コードによって決定される買値よりも安い値段である。先に触れたように、募集条件(親)データベース31の第2フィールドに格納されている買値コードによって決定される買値で買われた株式は、第3フィールドに格納されている売値(A)コードによって決定される売値(A)で売付けられることになる。しかしながら、第2フィールドに格納されている買値コードによって決定される買値で買われた株式の値が、第3フィールドに格納されている売値(A)コードによって決定される売値(A)に達することなく下落してしまうことがあり得る。本実施形態においては、このような場合に、買付けた銘柄を成り行きで売付けることとした。より詳細には、第2フィールドに格納されている買値コードによって決定される買値で買われた株式の値が第4フィールドに格納されている売値(B)に達したときに、買付けた銘柄を成り行きで売付ける売り注文を行うこととした。これにより、損切り売りを実現することができる。実際に売値(B)を決定するための具体的な情報は、募集条件(子)データベース35に格納されている。
図8は、募集条件(子)データベース35を示す図である。図8に示すように、募集条件(子)データベース35は、売値(B)コードを格納する第1フィールド、及び当該売値(B)コードに対応付けられた情報を格納する第2フィールドを有している。例えば、図4に示す募集条件(親)データベース31の第1レコードの第4フィールドには、売値(B)コード「UM06」が格納されている。ここで図8を参照すると、募集条件(子)データベース35の第6レコードには、第1フィールドに売値(B)コード「UM06」が、第2フィールドに「10.0%」が、それぞれ格納されている。従って、図4に示す募集条件(親)データベース31の第1レコードに基づく株式売買の募集に係る売値(B)は、最新終値の10.0%減の値段となる。
再び図4を参照すると、募集条件(親)データベース31の第5フィールドには、第2〜第4フィールドに格納されている情報によって決定される値段がどの銘柄の買付け値段及び売付け値段として使用されるかを決定する情報として、銘柄を決定するための情報である銘柄募集コードが格納される。実際に銘柄を決定するための具体的な情報は、募集条件(子)データベース36に格納されている。
図9は、募集条件(子)データベース36を示す図である。図9に示すように、募集条件(子)データベース36は、銘柄募集コードを格納する第1フィールド、及び当該銘柄募集コードに対応付けられた銘柄コードを格納する第2フィールドを有している。例えば、図4に示す募集条件(親)データベース31の第2レコードの第5フィールドには、銘柄募集コード「M01」が格納されている。ここで図9を参照すると、募集条件(子)データベース36の第1レコードには、第1フィールドに銘柄募集コード「M01」が、第2フィールドに銘柄コード「8601」が、それぞれ格納されている。従って、図4に示す募集条件(親)データベース31の第2レコードの第2〜第4フィールドに格納されている情報によって決定される値段は、銘柄コード「8601」に対応する銘柄「(公序良俗違反につき、不掲載)」(図3の銘柄データベース22の第1レコード参照)の株式の買付け値段及び売付け値段として使用される。なお、募集条件(親)データベース31の第5フィールドは、オプション項目であり、何れの銘柄募集コードも格納されていない場合(図4の募集条件(親)データベース31の第1レコード等参照)には、第2〜第4フィールドに格納されている情報によって決定される値段はすべての銘柄の買付け値段及び売付け値段として使用される。
再び図4を参照すると、募集条件(親)データベース31の第6フィールドには、各レコードに係る株式売買の募集株式数が格納される。例えば、図4に示す募集条件(親)データベース31の第6レコードの第6フィールドには、募集株式数「10,000」が格納されている。従って、図4に示す募集条件(親)データベース31の第6レコードに基づく株式売買の募集株式数は、10,000株となる。なお、募集条件(親)データベース31の第6フィールドは、オプション項目であり、何れの値も格納されていない場合(図4の募集条件(親)データベース31の第1レコード等参照)には、当該レコードに係る株式売買の募集株式数に制限はないことになる。
募集条件(親)データベース31の第7フィールドには、各レコードに係る株式売買の手数料が格納される。例えば、図4に示す募集条件(親)データベース31の第6レコードの第7フィールドには、手数料「2,000」が格納されている。従って、図4に示す募集条件(親)データベース31の第6レコードに基づく株式売買の手数料は、2,000円となる。この第6レコードに係る株式売買においては、募集株式数が10,000株であるため、1株当たりの手数料は0.2円となる。なお、募集条件(親)データベース31の第7フィールドは、オプション項目であり、何れの値も格納されていない場合(図4の募集条件(親)データベース31の第1レコード等参照)には、当該レコードに係る株式売買の手数料は、A証券会社の所定の手数料になる。
募集条件(親)データベース31の第8フィールドには、各レコードに係る株式売買が指値から成り行きに移行される期間が格納される。株式売買において、一般に、ある銘柄の売り注文の総株式数と買い注文の総株式数とのバランスが取れている場合には、当該銘柄の売買が成立するとともに、当該銘柄の株価は一定する。また、ある銘柄の売り注文の総株式数が買い注文の総株式数を上回っている場合には、当該銘柄の売買が成立するとともに、当該銘柄の株価は下落し、ある銘柄の売り注文の総株式数が買い注文の総株式数を下回っている場合には、当該銘柄の売買が成立するとともに、当該銘柄の株価は上昇する。しかしながら、ある銘柄の売り注文の総株式数と買い注文の総株式数とが大きく異なっていると、売買が成立しない。例えば、ある銘柄について、売り注文の総株式数が非常に多く且つ買い注文の総株式数が非常に少ないと、売買が成立しないまま、当該銘柄の株価は下落する。一方、ある銘柄について、買い注文の総株式数が非常に多く且つ売り注文の総株式数が非常に少ないと、売買が成立しないまま、当該銘柄の株価は上昇する。このような事情により、指値による買い注文又は売り注文は、約定しないことがある。そこで、指値による買い注文又は売り注文が、募集条件(親)データベース31の第8フィールドに格納されている期間内に約定しない場合には、成り行きによる買い注文又は売り注文に変更される。
なお、本実施形態において、指値による注文が約定しない場合として、(a)募集条件(親)データベース31の第2フィールドに格納されている買値コードによって決定される買値での指値買い注文が約定しない場合、(b)募集条件(親)データベース31の第2フィールドに格納されている買値コードによって決定される買値での指値買い注文は約定したが、その後、募集条件(親)データベース31の第3フィールドに格納されている売値(A)コードによって決定される売値(A)での指値売り注文が約定しない場合、が考えられる。募集条件(親)データベース31の第8フィールドに格納されている期間は、上記(a)、(b)の両方の場合に適用されるようにしても良い。なお、上記(a)、(b)の期間を別々にしたい場合には、例えば、募集条件(親)データベース31の第8フィールドに格納されている期間を上記(a)(又は(b))の場合に適用し、募集条件(親)データベース31にもう1つの期間を格納するためのフィールドを追加してこのフィールドに格納されている期間を上記(b)(又は(a))の場合に適用するようにしても良い。
募集条件(親)データベース31の第9フィールドには、各レコードに係る株式売買の募集が開始される募集開始日時が格納されている。後に詳細に説明するように、注文データベースレコード追加処理部19は、システム時計等を利用して現在日時をウォッチ(監視)しており、募集条件(親)データベース31のレコードの第9フィールドに格納されている募集開始日時になると、当該レコードに基づいて、注文データベース41にレコードを追加する。
募集条件(親)データベース31の第10フィールドには、各レコードに係る株式売買の募集が締め切られる募集締切日時が格納されている。後に詳細に説明するように、ある株式売買の募集締切日時になると、株式売買応募受付処理部12は、当該株式売買の応募の受け付けを締め切り、株式売買注文依頼処理部13が、当該株式売買の注文を依頼する電文を売買システム3に送信する。
なお、本実施形態において、信用売り(「カラ売り」と呼ばれることもある)の募集を行うことも可能である。信用売りの募集を行う場合には、図4に示す募集条件(親)データベース31の第2フィールドに信用売りの売値を表す売値コードを、第3フィールドに信用売りの後の買値を表す買値(A)コードを、第4フィールドに信用売りの後の損切り買いの買値を表す買値(B)コードを、それぞれ格納すれば良い。また、通常の株式売買と信用売りとを混在させる場合には、募集条件(親)データベース31に通常の株式売買であるか信用売りであるかを表すフラグを格納するフィールドを追加すれば良い。
図10は、応募関連データベース40の内の注文データベース41を示す図であり、図11は、応募関連データベース40の内の注文詳細データベース42を示す図である。先に説明したように、応募関連データベース40は、顧客が行った株式売買の応募に関する情報を格納するデータベースである。
ここで、注文データベース41及び注文詳細データベース42の詳細な説明に先立って、注文データベース41と注文詳細データベース42の役割について、簡単に説明する。
先に説明したように、株式売買募集装置6は、銘柄と、銘柄を買付けるための買付け値段と、買付けた銘柄を売付けるための売付け値段とを含む募集条件をクライアント端末1a、1b、1c、…に表示させて顧客に提示し、募集に応募したい旨の情報と、応募数量とをクライアント端末1a、1b、1c、…から受信する。従って、複数の顧客が同一の募集条件に応募することも可能である。しかしながら、そのような場合であっても、各顧客の応募に関する情報を顧客毎に記録しておく必要がある。
一方、先に説明したように、顧客が株式売買で負担する手数料は、一般に、証券会社の売買システム3と証券取引所サーバ2a,2b,…との間の一注文当たり幾らとされる場合が多い。
そこで、本実施形態においては、複数の顧客が同一の募集条件に応募した場合には、同一の募集条件に応募した複数の顧客の複数の応募に基づく1つの注文電文が証券取引所サーバ2a,2b,…に送信されるようにした。これにより、一注文分の手数料を複数の顧客で負担すれば良いことになり、個々の顧客が支払う手数料を安価にすることが可能となる。
これを実現するため、注文詳細データベース42は、各顧客の応募に関する情報を顧客毎に記録し、注文データベース41は、証券取引所サーバ2a,2b,…に送信される注文に関する情報を注文毎に記録する。
次に、注文データベース41及び注文詳細データベース42について詳細に説明する。
図10に示すように、注文データベース41は、株式売買を一意に特定する代表コード、当該株式売買に係る銘柄の銘柄コード、応募株式数、買値、売値(A)、売値(B)、募集株式数、合計手数料、制限期間、募集締切日時、及び、当該株式売買がどのような状態にあるかを表すステータスをそれぞれ格納するための第1〜第11フィールドを有している。また、図11に示すように、注文詳細データベース42は、代表コード、当該代表コードに係る株式売買に応募を行った顧客の顧客コード、及び、当該顧客の応募に係る応募数量(応募株式数)をそれぞれ格納するための第1〜第3フィールドを有している。なお、代表コードとしては、株式売買を一意に特定することができるものであれば種々のコードを利用することが可能であるが、本実施形態においては日付(ここでは、2006年2月20日)と当該日における通し番号(01、02、・・・)とを結合したコード(2006022001、2006022002、・・・)を利用している。
図12は、注文データベース41の第11フィールドに格納されるステータスの値と注文の状態との対応を示す図である。図12に示すように、ステータスは、「0」〜「12」の値をとり得る。このステータスは株式売買募集装置6の処理の進行に応じてその値が更新されるものであるため、ステータスの詳細については、株式売買募集装置6の処理と併せて、後に説明する。
再び図10を参照すると、注文データベース41の第1レコードの第1フィールドには代表コード「2006022001」が、第1レコードの第2フィールドには銘柄コード「8601」(銘柄名「(公序良俗違反につき、不掲載)」に対応(図3の銘柄データベース22の第1レコード参照))が、第1レコードの第3フィールドには応募株式数「12,000」が、第1レコードの第4フィールドには買値「2,020」が、第1レコードの第5フィールドには売値(A)「2,200」が、第1レコードの第6フィールドには売値(B)「1,800」が、第1レコードの第7フィールドにはステータス「0」(「応募受付中」を表す(図12参照)。なお、先に触れたように、ステータスの詳細については、株式売買募集装置6の処理と併せて後に説明する。)が、それぞれ格納されている。すなわち、この注文データベース41の第1レコードは、(公序良俗違反につき、不掲載)の株式12,000株を1株当たり2,020円で買うための買い注文を行うことを売買システム3に依頼しその約定後に当該株式を1株当たり2,200円又は1,800円で売るための売り注文を行うことを売買システム3に依頼することを、表している。そして、このような株式売買を依頼した顧客及び当該顧客の応募株式数の内訳が、図11に示す注文詳細データベース42の第1〜第3レコードに格納されている。
図11において、注文詳細データベース42の第1レコードの第1フィールドには代表コード「2006022001」が、第1レコードの第2フィールドには顧客コード「010032001」(顧客名「大和 一郎」に対応(図2の顧客データベース21の第1レコード参照))が、第1レコードの第3フィールドには応募株式数「4,000」が、それぞれ格納されている。すなわち、注文詳細データベース42の第1レコードは、顧客「大和 一郎」が(公序良俗違反につき、不掲載)の株式4,000株を1株当たり2,020円で買いその約定後に当該株式を1株当たり2,200円又は1,800円で売るという応募を行ったことを、表している。
また、注文詳細データベース42の第2レコードの第1フィールドには代表コード「2006022001」が、第1レコードの第2フィールドには顧客コード「032114578」(顧客名「鈴木 二郎」に対応(図2の顧客データベース21の第2レコード参照))が、第1レコードの第3フィールドには応募株式数「6,000」が、それぞれ格納されている。すなわち、注文詳細データベース42の第2レコードは、顧客「鈴木 二郎」が(公序良俗違反につき、不掲載)の株式6,000株を1株当たり2,020円で買いその約定後に当該株式を1株当たり2,200円又は1,800円で売るという応募を行ったことを、表している。
さらに、注文詳細データベース42の第3レコードの第1フィールドには代表コード「2006022001」が、第1レコードの第2フィールドには顧客コード「130245200」(顧客名「佐藤 三郎」に対応(図2の顧客データベース21の第3レコード参照))が、第1レコードの第3フィールドには応募株式数「2,000」が、それぞれ格納されている。すなわち、注文詳細データベース42の第3レコードは、顧客「佐藤 三郎」が(公序良俗違反につき、不掲載)の株式2,000株を1株当たり2,020円で買いその約定後に当該株式を1株当たり2,200円又は1,800円で売るという応募を行ったことを、表している。
そして、3人の顧客「大和 一郎」、「鈴木 二郎」、及び、「佐藤 三郎」の応募株数の和である「12,000」が、図10に示す注文データベース41の第1レコードの第3フィールドに格納されている。売買システム3への買い注文又は売り注文の依頼は、注文詳細データベース42に基づいて行うことも可能であるが、本実施形態においては、売買システム3への買い注文又は売り注文の依頼は、注文データベース41に基づいて行われる。従って、実際には3人の顧客からの応募があったにもかかわらず、1つの買い注文の依頼を行うことができ、その約定後に、売値(A)での1つの売り注文の依頼を行うことができる。
先に説明したように、一般に、顧客が株式売買で負担する手数料は、証券会社の売買システムと証券取引所サーバとの間の一注文当たり幾らとされる場合が多い。従って、複数の顧客からの応募に基づいて1つの買い注文の依頼を行うこととし、その約定後に、売値(A)での1つの売り注文の依頼を行うこととすることで、各顧客が支払う手数料を安価にすることができる。上述の例(図10の注文データベース41の第1レコード及び図11の注文詳細データベース42の第1〜第3レコードに基づく例)の場合、一例として、一注文分の手数料を3人の顧客で均等に負担する、すなわち、個々の顧客が支払う手数料を通常の手数料(A証券会社所定の手数料)の3分の1にするようにしても良い。また、個々の顧客が支払う手数料を、個々の顧客の応募数量に応じて算出するようにしても良い。例えば、上述の例の場合、顧客「大和 一郎」に対する手数料を、通常の手数料(A証券会社所定の手数料)を3人の顧客の応募数量の和(ここでは、12,000)で除し、さらに顧客「大和 一郎」の応募数量(ここでは、4,000)を乗じた値とするようにしても良い。同様に、顧客「鈴木 二郎」に対する手数料を、通常の手数料を3人の顧客の応募数量の和で除し、さらに顧客「鈴木 二郎」の応募数量(ここでは、6,000)を乗じた値とするようにしても良い。さらに同様に、顧客「佐藤 三郎」に対する手数料を、通常の手数料を3人の顧客の応募数量の和で除し、さらに顧客「佐藤 三郎」の応募数量(ここでは、2,000)を乗じた値とするようにしても良い。
なお、注文データベース41の各レコードは、注文データベースレコード追加処理部19によって注文データベース41に追加される。そして、注文データベース41の各レコードの第3フィールドの値(応募株式数)が、顧客からの応募があったときに、株式売買応募受付処理部12によって更新される。注文データベースレコード追加処理部19がレコードを注文データベース41に追加する処理については、後で詳細に説明する。
図13は、統計情報データベース51を示す図である。図13に示すように、統計情報データベース51は、代表コード、当該代表コードで特定される株式売買に応募した顧客総数、及び、当該代表コードで特定される株式売買に係る応募株式総数をそれぞれ格納する第1〜第3フィールドを有している。図13において、統計情報データベース51の第1レコードの第1フィールドには代表コード「2006022001」が、第1レコードの第2フィールドには顧客総数「3」が、第1レコードの第3フィールドには株式総数「12,000」が、それぞれ格納されている。すなわち、統計情報データベース51の第1レコードは、代表コード「2006022001」で特定される募集に対して3人の顧客が応募しそれらの応募に係る株式総数が12,000株であることを、表している。
次に、株式売買募集装置6の処理について説明する。図14〜図15は、株式売買募集装置6の処理の概要を示すフローチャートである。以下、株式売買募集装置6の処理について、図14〜図15を参照しながら説明する。
顧客(ここでは、顧客コード「041054004」の顧客「田中 四郎」(図2の顧客データベース21の第4レコード参照)とする)が顧客コード及びパスワードをクライアント端末に入力してログインすると、株式売買募集処理部11は、注文データベース41(図10参照)に基づいて、株式売買募集画面をクライアント端末に表示させ、株式売買の募集を行う(ステップS11)。
図16は、クライアント端末の表示画面上に表示される株式売買募集画面の例を示す図である。この株式売買募集画面60は、第1〜第3表示領域61〜63を有している。
株式売買募集処理部11は、第1表示領域61に、応募の締切日時「2/20 8:55」を表示させる。なお、募集条件毎に締切日時が異なる場合には、募集条件毎に締切日時を表示すれば良い。
株式売買募集処理部11は、第2表示領域62に、募集条件を銘柄毎に表示させる。図16において、第2表示領域62は、第4〜第7表示領域64〜67を有している。図17〜図20は、第4〜第7表示領域64〜67の拡大図である。
株式売買募集処理部11は、第2表示領域62の行71に、注文データベース41(図10参照)の第1〜第3レコードの第2フィールドに格納されている銘柄コード「8601」に対応する銘柄名「(公序良俗違反につき、不掲載)」(図3の銘柄データベース22参照)を表示させるとともに、銘柄データベース22(図3参照)の第1レコードの第3フィールドに格納されている最新値(ここでは、最新の終値とする)「2,000円」を表示させる(図16参照)。さらに、株式売買募集処理部11は、第4表示領域64の行72に、文字列「募集NO」、文字列「買値」、文字列「売値(A)」、文字列「売値(B)」、文字列「応募株数」をそれぞれ表示させ(図17参照)、第5表示領域65の行72に、文字列「支払金額」、文字列「手戻り金額(A)」、文字列「手戻り金額(B)」、及び、文字列「8:15現在の応募数量」(ここでは、現在時刻を8時15分とする)を、それぞれ表示させる(図18参照)。
株式売買募集処理部11は、第4表示領域64の行73に、文字列「募集1」を表示させ、その右方向に、注文データベース41(図10参照)の第1レコードの第4〜第6フィールドにそれぞれ格納されている買値「2,020円」、売値(A)「2,200円」、及び、売値(B)「1,800円」をそれぞれ表示させ、さらにその右方向に、応募株数入力欄91を表示させる(図17参照)。
株式売買募集処理部11は、第4表示領域64の行75に、文字列「募集2」を表示させ、その右方向に、注文データベース41(図10参照)の第2レコードの第4〜第6フィールドにそれぞれ格納されている買値「2,020円」、売値(A)「2,400円」、及び、売値(B)「1,800円」をそれぞれ表示させ、さらにその右方向に、応募株数入力欄92を表示させる(図17参照)。
株式売買募集処理部11は、第4表示領域64の行76に、文字列「募集3」を表示させ、その右方向に、注文データベース41(図10参照)の第3レコードの第4〜第6フィールドにそれぞれ格納されている買値「2,020円」、売値(A)「2,500円」、及び、売値(B)「1,700円」をそれぞれ表示させ、さらにその右方向に、応募株数入力欄93を表示させる(図17参照)。
株式売買募集処理部11は、第2表示領域62の行81に、注文データベース41(図10参照)の第4〜第5レコードの第2フィールドに格納されている銘柄コード「9999」に対応する銘柄名「X銀行」(図3の銘柄データベース22参照)を表示させるとともに、銘柄データベース22(図3参照)の第1レコードの第3フィールドに格納されている最新値(ここでは、最新の終値とする)「1,200円」を表示させる(図16参照)。さらに、株式売買募集処理部11は、第6表示領域66の行82に、文字列「募集NO」、文字列「買値」、文字列「売値(A)」、文字列「売値(B)」、文字列「応募株数」をそれぞれ表示させ(図19参照)、第7表示領域67の行82に、文字列「支払金額」、文字列「手戻り金額(A)」、文字列「手戻り金額(B)」、及び、文字列「8:15現在の応募数量」(ここでは、現在時刻を8時15分とする)を、それぞれ表示させる(図20参照)。
株式売買募集処理部11は、第6表示領域66の行83に、文字列「募集1」を表示させ、その右方向に、注文データベース41(図10参照)の第4レコードの第4〜第6フィールドにそれぞれ格納されている買値「1,200円」、売値(A)「1,320円」、及び、売値(B)「1,140円」をそれぞれ表示させ、さらにその右方向に、応募株数入力欄94を表示させる(図19参照)。
株式売買募集処理部11は、第6表示領域66の行84に、文字列「募集2」を表示させ、その右方向に、注文データベース41(図10参照)の第5レコードの第4〜第6フィールドにそれぞれ格納されている買値「1,200円」、売値(A)「1,460円」、及び、売値(B)「1,180円」をそれぞれ表示させ、さらにその右方向に、応募株数入力欄95を表示させる(図19参照)。
ここで、顧客(ここでは、「田中 四郎」)が応募株数入力欄91(図17参照)内に「2,000」を入力すると、株式売買募集処理部11は、第5表示領域65の行73に、支払金額「4,040,500円」、購入した株式が売値(A)で売れた場合に得られる手戻り金額(A)「4,400,000円」、購入した株式が売値(B)で売れた場合に得られる手戻り金額(B)「3,600,000円」、銘柄「(公序良俗違反につき、不掲載)」の行73に表示されている募集条件(注文データベース41の第1レコードに基づく)に対する現在の応募数量「12,000」(注文データベース41の第1レコードの第3フィールド参照)をそれぞれ表示させる(図18参照)。株式売買募集処理部11は、支払金額「4,040,500円」を、買値(ここでは、2,020円)に応募株数(ここでは、2,000株)を乗じ、更に手数料(ここでは、A証券会社所定の500円)を加えることにより、算出する。なお、株式売買募集処理部11は、注文データベース41(図10参照)の第8フィールドに合計手数料が格納されている場合には、第8フィールドに格納されている合計手数料を第7フィールドに格納されている募集株式数で除した1株当たりの手数料に、顧客によって入力された応募株数を乗じることにより、算出する。株式売買募集処理部11は、手戻り金額(A)「4,400,000円」を、売値(A)(ここでは、2,200円)に応募株数(ここでは、2,000株)を乗じることにより、算出する。株式売買募集処理部11は、手戻り金額(B)「3,600,000円」を、売値(B)(ここでは、1,800円)に応募株数(ここでは、2,000株)を乗じることにより、算出する。
更に、株式売買募集処理部11は、第5表示領域65の行74(図18参照)に、利益見込金額「+359,500円」及び損失見込金額「−440,500円」を表示させる。株式売買募集処理部11は、利益見込金額「+359,500円」を、上記のようにして算出した手戻り金額(A)から上記のようにして算出した支払金額を減じることにより、算出する。株式売買募集処理部11は、損失見込金額「−440,500円」を、上記のようにして算出した支払金額から上記のようにして算出した手戻り金額(B)を減じることにより、算出する。顧客は、これらの金額を見ることにより、自分が応募しようとしている株式売買によってどれだけ利益を得ることが出来るのか及びどれだけ損失をするのかの目安を予め知ることができる。
なお、ここでは、顧客が銘柄「(公序良俗違反につき、不掲載)」及び「X銀行」へ応募する場合について説明したが、他の銘柄に応募する場合には、スクロールバー98を操作したり、マウスのホイールを回転させれば良い。
次に、顧客(ここでは、「田中 四郎」)が、第3表示領域63内の応募ボタン97(図16参照)をクリックすると、株式売買応募受付処理部12が、応募関連データベース40を更新する(株式売買の応募を受け付けることに相当)(ステップS12)。具体的には、クライアント端末が、顧客コード(ここでは、「041054004」)、応募株数(ここでは、「2,000」)、及び、顧客(ここでは、「田中 四郎」)が応募した募集条件を特定する代表コード(ここでは、「2006022001」)を含む電文(情報)を株式売買応募受付処理部12に送信する。株式売買応募受付処理部12は、クライアント端末から受信した電文の中の代表コード(ここでは、「2006022001」)を第1フィールドに、クライアント端末から受信した電文の中の顧客コード(ここでは、「041054004」)を第2フィールドに、クライアント端末から受信した電文の中の応募株数(ここでは、「2,000」)を第3フィールドにそれぞれ格納した新たなレコードを作成して注文詳細データベース42に追加する。図21は、このときの注文詳細データベース42を示す図である。図21に示す注文詳細データベース42の第4レコード42aは、上記のようにして追加された新たなレコードである。
更に、株式売買応募受付処理部12は、クライアント端末から受信した電文の中の代表コード(ここでは、「2006022001」)をキーとして注文データベース41を検索し、検索の結果として注文データベース41の第1レコードを読み込む。そして、株式売買応募受付処理部12は、読み込んだ注文データベース41(図10参照)の第1レコードの第3フィールドの応募株式数「12,000」に、クライアント端末から受信した電文の中の応募株数(ここでは、「2,000」)を加算して注文データベース41に書き戻す。図22は、このときの注文データベース41を示す図である。
また、株式売買応募受付処理部12は、統計情報データベース51を更新する。具体的には、株式売買応募受付処理部12は、クライアント端末から受信した電文の中の代表コード(ここでは、「2006022001」)をキーとして統計情報データベース51を検索し、検索の結果として統計情報データベース51の第1レコードを読み込む。そして、株式売買応募受付処理部12は、読み込んだレコードの第2フィールドに1を加算し、第3フィールドにクライアント端末から受信した電文の中の応募株数(ここでは、「2,000」)を加算して統計情報データベース51に書き戻す。図23は、このときの統計データベース51を示す図である。
株式売買注文依頼処理部13は、システム時計等を利用して現在日時をウォッチ(監視)しており、注文データベース41の中に、第10フィールド(募集締切日時)に格納されている募集締切日時が現在日時と等しいレコードが存在すると、そのレコードの第4フィールドに格納されている買値を指値とした買い注文を依頼するための電文(情報)を売買システム3に送信する(ステップS13)。図22に示す注文データベース41を参照すると、株式売買注文依頼処理部13は、2006年2月20日8時55分になったときに、注文データベース41の第1〜第5レコードに関する株式売買注文依頼処理を行うことになる。以下においては、便宜のため、注文データベース41の第1レコードを処理対象として説明する。この場合、株式売買注文依頼処理部13は、2006年2月20日8時55分になったときに、銘柄コード「8601」(注文データベース41の第1レコードの第2フィールドに格納されている)で表される銘柄「(公序良俗違反につき、不掲載)」の株式「14,000」株(注文データベース41の第1レコードの第3フィールドに格納されている)を買値「2,020」円(注文データベース41の第1レコードの第4フィールドに格納されている)で買付けるための指値買い注文を依頼するための電文(情報)を売買システム3に送信する。
株式売買注文依頼処理部13は、注文データベース41の処理対象のレコード(ここでは、第1レコード)の第11フィールドに格納されているステータスを「0」(「応募受付中」を表す(図12参照))から「1」(「指値買い注文依頼中」を表す(図12参照))に更新する。電文(情報)を受けた売買システム3は、証券取引所のサーバ2a,2b,…に、買い注文の電文を送信する。
株式売買注文依頼処理部13は、ステップS13にて送信した電文(指値買い注文を依頼するための電文)に対する約定の電文を受信するまで待ち(ステップS14)、ステップS13にて送信した電文(指値買い注文を依頼するための電文)に対する約定の電文を受信すると、処理をステップS19に移す。このとき、株式売買注文依頼処理部13は、注文データベース41の処理対象のレコード(ここでは、第1レコード)の第11フィールドに格納されているステータスを「1」(「指値買い注文依頼中」を表す(図12参照))から「2」(「指値買い注文約定」を表す(図12参照))に更新する。その後、株式売買注文依頼処理部13は、処理をステップS19に移す。
一方、株式売買注文依頼処理部13は、ステップS13にて送信した電文(指値買い注文を依頼するための電文)に対する約定の電文を受信しない場合(ステップS14)、注文データベース41の処理対象のレコードの第9フィールドに制限期間が格納されておらず又は注文データベース41の処理対象のレコードの第9フィールドに制限期間が格納されており且つ指値買い注文を依頼するための電文を売買システム3に送信してから制限期間を経過していなければ、処理をステップS14に戻し、ステップS13にて送信した電文(指値買い注文を依頼するための電文)に対する約定の電文を受信するまで引き続き待つ(ステップS15)。注文データベース41の第1レコードが処理対象である場合、注文データベース41の第1レコードの第9フィールドには制限期間が格納されていないので(図22参照)、株式売買注文依頼処理部13は、処理をステップS14に戻し、ステップS13にて送信した電文(指値買い注文を依頼するための電文)に対する約定の電文を受信するまで引き続き待つことになる。一方、株式売買注文依頼処理部13は、注文データベース41の処理対象のレコードの第9フィールドに制限期間が格納されており且つ指値買い注文を依頼するための電文を売買システム3に送信してから制限期間を経過していれば、ステップS13にて送信した電文(指値買い注文を依頼するための電文)に係る指値買い注文のキャンセルを依頼するための電文を売買システム3に送信する(ステップS16)。そして、株式売買注文依頼処理部13は、成り行きでの買い注文を依頼するための電文を売買システム3に送信する(ステップS17)。このとき、株式売買注文依頼処理部13は、注文データベース41の処理対象のレコードの第11フィールドに格納されているステータスを「1」(「指値買い注文依頼中」を表す(図12参照))から「3」(「指値買い注文キャンセル、成り行き買い注文依頼中」を表す(図12参照))に更新する。
株式売買注文依頼処理部13は、ステップS17にて送信した電文(成り行き買い注文を依頼するための電文)に対する約定の電文を受信するまで待つ(ステップS18)。そして、株式売買注文依頼処理部13は、ステップS17にて送信した電文(成り行き買い注文を依頼するための電文)に対する約定の電文を売買システム3から受信すると、注文データベース41の処理対象のレコードの第11フィールドに格納されているステータスを「3」(「指値買い注文キャンセル、成り行き買い注文依頼中」を表す(図12参照))から「4」(「成り行き買い注文約定」を表す(図12参照))に更新し、処理をステップS19に移す。
次に、株式売買注文依頼処理部13は、注文データベース41の処理対象のレコードの第5フィールドに格納されている売値(A)を指値とした指値売り注文を依頼するための電文を売買システム3に送信する(ステップS19)。注文データベース41の第1レコードが処理対象である場合、株式売買注文依頼処理部13は、銘柄コード「8601」(注文データベース41の第1レコードの第2フィールドに格納されている)で表される銘柄「(公序良俗違反につき、不掲載)」の株式「14,000」株(注文データベース41の第1レコードの第3フィールドに格納されている)を売値(A)「2,200」円(注文データベース41の第1レコードの第5フィールドに格納されている)で売付けるための指値売り注文を依頼するための電文(情報)を売買システム3に送信する。このとき、株式売買注文依頼処理部13は、注文データベース41の処理対象のレコード(ここでは、第1レコード)の第11フィールドに格納されているステータスを「2」(「指値買い注文約定」を表す(図12参照))又は「4」(「成り行き買い注文約定」を表す(図12参照))から「5」(「指値売り注文依頼中」を表す(図12参照))に更新する。
次に、決済処理部14が、顧客データベース21(図2参照)の預入残高を更新する(約定になった指値又は成り行き買い注文に係る顧客への決済を行うことに相当)(ステップS20)。具体的には、決済処理部14は、注文データベース41の処理対象のレコード(ここでは、第1レコード)の第1フィールドに格納されている代表コード「206022001」をキーとして注文詳細データベース42(図21参照)を検索する。この場合、決済処理部14は、注文詳細データベース42の第1〜第4レコードを得る。次に、決済処理部14は、注文詳細データベース42の第1〜第4レコードの第2フィールドに格納されている顧客コード(ここでは、「010032001」、「032114578」、「130245200」、及び、「041054004」)をキーとして顧客データベース21(図2参照)を検索する。この場合、決済処理部14は、顧客データベース21の第1〜第4レコードを得る。そして、決済処理部14は、顧客データベース21の第1〜第4レコードの第5フィールドに格納されている預入残高から約定になった注文の支払金額を減ずる。決済処理部14は、支払金額を、株式の購入値段(指値買い注文が約定した場合(ステップS14)にはその指値、成り行き買い注文が約定した場合(ステップS18)には約定した成り行き買いの値段)に注文詳細データベース42の第1〜第4レコードの第3フィールドに格納されている応募株式数をそれぞれ乗じることにより、算出する。このとき、決済処理部14は、注文データベース41の処理対象のレコード(ここでは、第1レコード)の第11フィールドに格納されているステータスを「5」(「指値売り注文依頼中」を表す(図12参照))から「6」(「指値売り注文依頼中、買い注文決済終了」を表す(図12参照))に更新する。
そして、約定通知処理部15が、約定になった旨を顧客に通知する(ステップS21)。具体的には、約定通知処理部15は、顧客への通知を、上記のようにして取得した注文詳細データベース42の第1〜第4レコードの第2フィールドにそれぞれ格納されている顧客コードをキーとして顧客データベース21(図2参照)を検索することにより得られる第1〜第4レコードの第4フィールドにそれぞれ格納されている顧客のメールアドレス宛ての電子メールとして送信することとしても良いし、顧客が次回ログインした際に、クライアント端末の表示画面上に表示するようにしても良い。
株式売買注文依頼処理部13は、ステップS19にて送信した電文(指値売り注文を依頼するための電文)に対する約定の電文を受信するまで待ち(ステップS22)、ステップS19にて送信した電文(指値買い注文を依頼するための電文)に対する約定の電文を受信すると、処理をステップS23に移す。このとき、株式売買注文依頼処理部13は、注文データベース41の処理対象のレコード(ここでは、第1レコード)の第11フィールドに格納されているステータスを「6」(「指値売り注文依頼中、買い注文決済終了」を表す(図12参照))から「7」(「指値売り注文約定」を表す(図12参照))に更新する。その後、株式売買注文依頼処理部13は、処理をステップS31に移す。
一方、株式売買注文依頼処理部13は、ステップS19にて送信した電文(指値売り注文を依頼するための電文)に対する約定の電文を受信しない場合(ステップS22)、注文データベース41の処理対象のレコード(ここでは、第1レコード)の第2フィールドに格納されている銘柄コード「8601」で表される銘柄「(公序良俗違反につき、不掲載)」の株価が売値(B)に達したか否かをチェックし(ステップS23)、注文データベース41の処理対象のレコード(ここでは、第1レコード)の第2フィールドに格納されている銘柄コード「8601」で表される銘柄「(公序良俗違反につき、不掲載)」の株価が売値(B)に達した場合には、成り行きでの売り注文を依頼するための電文を売買システム3に送信する(ステップS24)。より詳細には、株式売買注文依頼処理部13は、銘柄コード「8601」(注文データベース41の第1レコードの第2フィールドに格納されている)で表される銘柄「(公序良俗違反につき、不掲載)」の株式「14,000」株(注文データベース41の第1レコードの第3フィールドに格納されている)を成り行きで売付けるための売り注文を依頼するための電文(情報)を売買システム3に送信する。このとき、株式売買注文依頼処理部13は、注文データベース41の処理対象のレコード(ここでは、第1レコード)の第11フィールドに格納されているステータスを「6」(「指値売り注文依頼中、買い注文決済終了」を表す(図12参照))から「8」(「成り行き売り注文依頼中」を表す(図12参照))に更新する。
株式売買注文依頼処理部13は、ステップS24にて送信した電文(成り行き売り注文を依頼するための電文)に対する約定の電文を受信するまで待つ(ステップS25)。そして、株式売買注文依頼処理部13は、ステップS24にて送信した電文(成り行き売り注文を依頼するための電文)に対する約定の電文を売買システム3から受信すると、ステップS19にて送信した電文(指値での売り注文を依頼するための電文)に係る売り注文のキャンセルを依頼するための電文を売買システム3に送信する(ステップS26)。このとき、株式売買注文依頼処理部13は、注文データベース41の処理対象のレコード(ここでは、第1レコード)の第11フィールドに格納されているステータスを「8」(「成り行き売り注文依頼中」を表す(図12参照))から「9」(「成り行き売り注文約定、指値売り注文キャンセル」を表す(図12参照))に更新する。その後、株式売買注文依頼処理部13は、処理をステップS31に移す。
ステップS23において注文データベース41の処理対象のレコード(ここでは、第1レコード)の第2フィールドに格納されている銘柄コード「8601」で表される銘柄「(公序良俗違反につき、不掲載)」の株価が売値(B)に達していない場合、株式売買注文依頼処理部13は、注文データベース41の処理対象のレコード(ここでは、第1レコード)の第9フィールドに制限期間が格納されておらず又は注文データベース41の処理対象のレコード(ここでは、第1レコード)の第9フィールドに制限期間が格納されており且つ買い注文を依頼するための電文を売買システム3に送信してから制限期間を経過していなければ、処理をステップS22に戻し、ステップS19にて送信した電文(指値での売り注文を依頼するための電文)に対する約定の電文を受信するまで引き続き待つ(ステップS27)。注文データベース41の第1レコードが処理対象である場合、注文データベース41の第1レコードの第9フィールドには制限期間が格納されていないので(図22参照)、株式売買注文依頼処理部13は、処理をステップS22に戻し、ステップS19にて送信した電文(指値売り注文を依頼するための電文)に対する約定の電文を受信するまで引き続き待つことになる。一方、株式売買注文依頼処理部13は、注文データベース41の処理対象のレコード(ここでは、第1レコード)の第9フィールドに制限期間が格納されており且つ買い注文を依頼するための電文を売買システム3に送信してから制限期間を経過していれば、ステップS19にて送信した電文(指値での売り注文を依頼するための電文)に係る売り注文のキャンセルを依頼するための電文を売買システム3に送信する(ステップS28)。そして、株式売買注文依頼処理部13は、成り行きでの売り注文を依頼するための電文を売買システム3に送信する(ステップS29)。このとき、株式売買注文依頼処理部13は、注文データベース41の処理対象のレコード(ここでは、第1レコード)の第11フィールドに格納されているステータスを「6」(「指値売り注文依頼中、買い注文決済終了」を表す(図12参照))から「10」(「指値売り注文キャンセル、成り行き売り注文依頼中」を表す(図12参照))に更新する。
株式売買注文依頼処理部13は、ステップS29にて送信した電文(成り行き売り注文を依頼するための電文)に対する約定の電文を受信するまで待つ(ステップS30)。そして、株式売買注文依頼処理部13は、ステップS29にて送信した電文(成り行き売り注文を依頼するための電文)に対する約定の電文を売買システム3から受信すると、注文データベース41の処理対象のレコード(ここでは、第1レコード)の第11フィールドに格納されているステータスを「10」(「成り行き売り注文依頼中」を表す(図12参照))から「11」(「成り行き売り注文約定」を表す(図12参照))に更新する。その後、株式売買注文依頼処理部13は、処理をステップS31に移す。
次に、決済処理部14が、顧客データベース21(図2参照)の預入残高を更新する(約定になった指値又は成り行き売り注文に係る顧客への決済を行うことに相当)(ステップS31)。具体的には、決済処理部14は、注文データベース41の処理対象のレコード(ここでは、第1レコード)の第1フィールドに格納されている代表コード「206022001」をキーとして注文詳細データベース42(図21参照)を検索する。この場合、決済処理部14は、注文詳細データベース42の第1〜第4レコードを得る。次に、決済処理部14は、注文詳細データベース42の第1〜第4レコードの第2フィールドに格納されている顧客コード(ここでは、「010032001」、「032114578」、「130245200」、及び、「041054004」)をキーとして顧客データベース21(図2参照)を検索する。この場合、決済処理部14は、顧客データベース21の第1〜第4レコードを得る。そして、決済処理部14は、顧客データベース21の第1〜第4レコードの第5フィールドに格納されている預入残高から約定になった注文の手戻り金額を加える。決済処理部14は、手戻り金額を、株式の売却値段(売値(A)での指値売り注文が約定した場合(ステップS22)にはその売値(A)、成り行き売り注文が約定した場合(ステップS25又はステップS30)には約定した成り行き売りの値段)に注文詳細データベース42の第1〜第4レコードの第3フィールドに格納されている株式数を乗じることにより、算出する。このとき、決済処理部14は、注文データベース41の処理対象のレコード(ここでは、第1レコード)の第7フィールドに格納されているステータスを「7」(「指値売り注文約定」を表す(図12参照))、「9」(「成り行き売り注文約定、指値売り注文キャンセル」を表す(図12参照)、又は「11」(「成り行き売り注文約定」を表す(図12参照))から「12」(「売買完了」を表す(図12参照))に更新する。
そして、約定通知処理部15が、約定になった旨を顧客に通知する(ステップS32)。具体的には、約定通知処理部15は、顧客への通知を、上記のようにして取得した注文詳細データベース42の第1〜第4レコードの第2フィールドにそれぞれ格納されている顧客コードをキーとして顧客データベース21(図2参照)を検索することにより得られる第1〜第4レコードの第4フィールドにそれぞれ格納されている顧客のメールアドレス宛ての電子メールとして送信することとしても良いし、顧客が次回ログインした際に、クライアント端末の表示画面上に表示するようにしても良い。
なお、ステップS14、ステップS18、ステップS22、ステップS25、又は、ステップS30において注文当日に約定の電文を受信しなかった場合には、株式売買注文依頼処理部13は、翌日以降も再度同じ注文を依頼する電文を売買システム3に送信するようにしても良い。
このように、株式売買の募集及び顧客からの株式売買の応募の受付は、注文データベース41に基づいて行われるが、注文データベース41の各レコードは、募集関連データベース30に基づいて注文データベースレコード追加処理部19により追加される。そこで、次に、募集関連データベース30に基づいて注文データベース41にレコードを追加するために注文データベースレコード追加処理部19が実行する処理について説明する。
図24は、注文データベースレコード追加処理部19が実行する処理の概要を示すフローチャートである。以下、注文データベースレコード追加処理部19が実行する処理について、図24を参照しながら説明する。
注文データベースレコード追加処理部19は、システム時計等を利用して現在日時をウォッチ(監視)しており、募集条件(親)データベース31(図4参照)の中に第9フィールドに格納されている募集開始日時が現在日時と等しいレコードがあるか否かをチェックする(ステップS41)。
例えば、図4に示す募集条件(親)データベース31を参照すると、注文データベースレコード追加処理部19は、現在日時が2006年2月17日17時00分(募集条件(親)データベース31の第2レコードの第9フィールド参照)になったときに、募集条件(親)データベース31の第2レコード(第9フィールド参照)に基づく新たなレコードを注文データベース41に追加することになる。ここでは、以下、募集条件(親)データベース31の第2レコードを処理対象レコードとして説明する。
注文データベースレコード追加処理部19は、募集条件(親)データベース31(図4参照)の中に第9フィールドに格納されている募集開始日時が現在日時と等しいレコードがある場合(ステップS41)には、代表コードを決定する(ステップS42)。
先に説明したように、代表コードとして種々のコードを利用することが可能であるが、本実施形態においては、募集条件(親)データベース31の処理対象レコード(ここでは、第2レコード)の第10フィールドに格納されている募集締切日時の日付(ここでは、2006年2月20日)と当該日における通し番号(ここでは、「01」とする)とを結合したコード(ここでは、「2006022001」とする)を代表コードとして決定するものとする。
次に、注文データベースレコード追加処理部19は、募集条件(親)データベース31の処理対象レコードの第1フィールドの値動率コード又は第5フィールドの銘柄募集コードに基づいて、銘柄コードを決定する(ステップS43)。より詳細には、募集条件(親)データベース31の処理対象レコードの第1フィールドに値動率コードが格納されている場合、注文データベースレコード追加処理部19は、当該値動率コードをキーとして募集条件(子)データベース32(図5参照)を検索し、値動率を取得する。そして、注文データベースレコード追加処理部19は、当該値動率以上に値動きしている銘柄の銘柄コードを決定することができる。なお、各銘柄の値動率は、銘柄データベース22(図3参照)の第3フィールドの最新値及び第4フィールドの前回値を用いて算出可能である。また、募集条件(親)データベース31の処理対象レコードの第5フィールドに銘柄募集コードが格納されている場合、注文データベースレコード追加処理部19は、当該銘柄募集コードをキーとして募集条件(子)データベース36(図9参照)を検索し、銘柄コードを取得することができる。
ここでは、募集条件(親)データベース31の第2レコードが処理対象レコードであり、この第2レコードの第1フィールドには値動率コードが格納されておらず、第5フィールドには銘柄募集コード「M01」が格納されている。そして、募集条件(子)データベース36の第1レコードの第1フィールドに銘柄募集コード「M01」が格納されており、募集条件(子)データベース36の第1レコードの第2フィールドに銘柄コード「8601」が格納されている。そのため、ここでは、注文データベースレコード追加処理部19は、銘柄コードを「8601」(銘柄名「(公序良俗違反につき、不掲載)」)に決定する。
次に、注文データベースレコード追加処理部19は、募集条件(親)データベース31の処理対象レコードの第2フィールドの買値コードに基づいて、買値を決定する(ステップS44)。より詳細には、注文データベースレコード追加処理部19は、募集条件(親)データベース31の処理対象レコードの第2フィールドに格納されている買値コードをキーとして募集条件(子)データベース33(図6参照)を検索することで、買値を決定することができる。
ここでは、募集条件(親)データベース31の第2レコードが処理対象レコードであり、この第2レコードの第2フィールドには買値コード「K02」が格納されている。そして、募集条件(子)データベース33の第2レコードの第1フィールドに買値コード「K01」が格納されており、募集条件(子)データベース33の第1レコードの第2フィールドに買値「+20円」が格納されている。そのため、ここでは、注文データベースレコード追加処理部19は、銘柄コード「8601」(銘柄名「(公序良俗違反につき、不掲載)」)の最新値「2,000円」(図22の銘柄データベースの第1レコードの第3フィールド参照)に「+20円」を加算した「2,020円」を買値に決定する。
次に、注文データベースレコード追加処理部19は、募集条件(親)データベース31の処理対象レコードの第3フィールドの売値(A)コードに基づいて、売値(A)を決定する(ステップS45)。より詳細には、注文データベースレコード追加処理部19は、募集条件(親)データベース31の処理対象レコードの第3フィールドに格納されている売値(A)コードをキーとして募集条件(子)データベース34(図7参照)を検索することで、売値(A)を決定することができる。
ここでは、募集条件(親)データベース31の第2レコードが処理対象レコードであり、この第2レコードの第3フィールドには売値(A)コード「UP03」が格納されている。そして、募集条件(子)データベース34の第3レコードの第1フィールドに売値(A)コード「UP03」が格納されており、募集条件(子)データベース34の第3レコードの第2フィールドに売値(A)「10.0%」が格納されている。そのため、ここでは、注文データベースレコード追加処理部19は、銘柄コード「8601」(銘柄名「大和証券グループ本社」)の最新値「2,000円」(図22の銘柄データベースの第1レコードの第3フィールド参照)を10.0%増しした「2,200円」を買値に決定する。
次に、注文データベースレコード追加処理部19は、募集条件(親)データベース31の処理対象レコードの第4フィールドの売値(B)コードに基づいて、売値(B)を決定する(ステップS46)。より詳細には、注文データベースレコード追加処理部19は、募集条件(親)データベース31の処理対象レコードの第4フィールドに格納されている売値(B)コードをキーとして募集条件(子)データベース35(図8参照)を検索することで、売値(B)を決定することができる。
ここでは、募集条件(親)データベース31の第2レコードが処理対象レコードであり、この第2レコードの第4フィールドには売値(B)コード「UM06」が格納されている。そして、募集条件(子)データベース35の第6レコードの第1フィールドに売値(B)コード「UM06」が格納されており、募集条件(子)データベース35の第6レコードの第2フィールドに売値(B)「10.0%」が格納されている。そのため、ここでは、注文データベースレコード追加処理部19は、銘柄コード「8601」(銘柄名「大和証券グループ本社」)の最新値「2,000円」(図22の銘柄データベースの第1レコードの第3フィールド参照)を10.0%減した「1,800円」を買値に決定する。
そして、注文データベースレコード追加処理部19は、ステップS42にて決定した代表コードを第1フィールドに、ステップS43にて決定した銘柄コードを第2フィールドに、応募株式数の初期値(「0」)を第3フィールドに、ステップS44にて決定した買値を第4フィールドに、ステップS45にて決定した売値(A)を第5フィールドに、ステップS46にて決定した売値(B)を第6フィールドに、募集条件(親)データベース31の処理対象レコードの第6フィールドに格納されている募集株式数を第7フィールドに、募集条件(親)データベース31の処理対象レコードの第7フィールドに格納されている合計手数料を第8フィールドに、募集条件(親)データベース31の処理対象レコードの第8フィールドに格納されている制限期間を第9フィールドに、募集条件(親)データベース31の処理対象レコードの第10フィールドに格納されている募集締切日時を第10フィールドに、ステータスの初期値(「0」)を第11フィールドにそれぞれ格納した新たなレコードを作成して注文データベース41に追加する(ステップS47)。その後、注文データベースレコード追加処理部19は、処理をステップS41に戻す。
図10に示す注文データベース41の第1レコードは、注文データベースレコード追加処理部19が図4に示す募集条件(親)データベース31の第2レコード及び図5〜9に示す募集関連(子)データベース32〜36に基づいて上記の処理を行うことにより、追加されたレコードである。この注文データベース41の第1レコードの第2フィールド内の値は、先に説明したように、顧客から株式売買の応募があると更新される(図22に示す注文データベース41の第1レコードの第2フィールド参照)。
次に、図16の株式売買募集画面60の第2表示領域62の行73に表示されている募集条件に基づく買い注文及び売り注文が約定となる場合について、図25を参照しながら説明する。図25は、銘柄「(公序良俗違反につき、不掲載)」の株価の変化の例を示すグラフである。
時刻t0において、買値「2,020円」での買い注文の依頼が行われ(図14のステップS13参照)、その後、銘柄「(公序良俗違反につき、不掲載)」の株価が上昇し、時刻t1において、2,020円になると、買値「2,020円」での買い注文が約定になる(図14のステップS14参照)。
買値「2,020円」での買い注文が約定になると、売値(A)「2,200円」での売り注文の依頼が行われる(図14のステップS19参照)。
その後、銘柄「(公序良俗違反につき、不掲載)」の株価が下落し、時刻t2において底値となる。しかし、銘柄「(公序良俗違反につき、不掲載)」の株価が売値(B)「1,800円」に達しないため、成り行きでの売り注文(損切り売り)の依頼は行われない(図15のステップS23参照)。
その後、銘柄「(公序良俗違反につき、不掲載)」の株価が再び上昇し、時刻t3において売値(A)「2,200円」に達したときに、売値(A)「2,200円」での売り注文は約定になる。
次に、管理処理部16の処理について説明する。管理処理部16は、A証券会社の担当者が使用する管理者端末4に接続されており、管理者端末4からのデータベース参照を要求する電文に応じて、ハードディスク20内の各データベースを読み出して、その内容を管理者端末4に表示させたり、管理者端末4からのデータベース更新を要求する電文に応じて、ハードディスク20内の各データベースの内容を更新する。A証券会社の担当者は、管理者端末4を操作することにより、募集関連データベース30を更新して、募集条件を変更することや、統計情報データベース51(図12及び図23)を参照して、統計情報を閲覧すること等が可能である。
次に、募集関連データベース更新処理部17の処理について説明する。募集関連データベース更新処理部17は、統計情報データベース51(図12及び図23)の各レコードの第2、第3フィールドを参照し、顧客総数、株式総数が所定値より多いレコード、顧客総数、株式総数が所定値より少ないレコードを抽出する。募集関連データベース更新処理部17は、統計情報データベース51から抽出した顧客総数、株式総数が所定値より多いレコードの第1フィールドに格納されている募集コードをキーとして募集条件(親)データベース31を検索し、統計情報データベース51の中の顧客総数、株式総数が所定値より多いレコードの第1フィールドに格納されている募集コードと同一の募集コードが第1フィールドに格納されているレコードを抽出して、抽出したレコードの第7フィールドに格納されている募集株式数を増やすことができる。また、募集関連データベース更新処理部17は、統計情報データベース51から抽出した顧客総数、株式総数が所定値より少ないレコードの第1フィールドに格納されている募集コードをキーとして募集条件(親)データベース31を検索し、統計情報データベース51の中の顧客総数、株式総数が所定値より少ないレコードの第1フィールドに格納されている募集コードと同一の募集コードが第1フィールドに格納されているレコードを、募集条件(親)データベース31から削除することができる。これにより、統計情報に基づいて、募集関連データベース30を更新することが可能である。
なお、本実施形態においては、買い注文及び売り注文を行うための電文を証券取引所のサーバ2a,2b,…に送信する処理及び注文が約定した旨の電文を証券取引所のサーバ2a,2b,…から受信する処理を売買システム3に依頼することとしているが、買い注文及び売り注文を行うための電文を証券取引所のサーバ2a,2b,…に送信する処理及び注文が約定した旨の電文を証券取引所のサーバ2a,2b,…から受信する処理を、株式売買募集装置6が実行することとしても良い。