(57)【要約】  マッチング部（３２）が、売り注文と買い注文の情報に基づいて、ｎ件マッチングさせる。そして、不満関数作成部（３３）が、売り指値と次の株価の差分と、次の株価と買い指値の差分とに基づいて、不満関数を約定ごとに作成する。また、総和関数作成部（３４）が、約定ごとに作成された不満関数に基づいて全約定の不満総和関数を作成する。そして、最小値特定部（３５）が、不満総和関数の最小値を特定する。そして、制御部（３０）が、ｎを最大約定数ｋから１ずつ減らしながら、不満総和関数の最小値が第１閾値より小さくなるまで、マッチング部（３２）、不満関数作成部（３３）、総和関数作成部（３４）及び最小値特定部（３５）に処理を繰り返させる。
2020179069.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
売り指値と次の取引価格の差分と、該次の取引価格と買い指値の差分とに基づいて、該次の取引価格を変数として投資家の不満を表す不満関数を約定ごとに作成し、
約定ごとに作成した不満関数に基づいて全約定の総不満関数を作成し、
作成した総不満関数の値のうち小さい方から所定の数番目の値を特定する
処理を約定数を変化させながら実行することで得られる複数の前記所定の数番目の値に基づいて最適約定数を決定する
処理を実行させることを特徴とする取引プログラム。
【請求項２】
前記最適約定数を決定する処理は、前記複数の前記所定の数番目の値が約定数を最大約定数から減少させていくときに最初に第１閾値より小さくなる約定数を前記最適約定数として決定することを特徴とする請求項１に記載の取引プログラム。
【請求項３】
前記最適約定数を決定する処理は、前記複数の前記所定の数番目の値の傾きが約定数を増加させていくときに最初に第２閾値を超える直前の約定数を前記最適約定数として決定することを特徴とする請求項１に記載の取引プログラム。
【請求項４】
前記最適約定数を決定する処理は、約定数に対する前記傾きを該約定数より一定数小さい約定数から前記一定数大きい約定数と各約定数に対応する前記所定の数番目の値を用いて最小二乗法で算出することを特徴とする請求項３に記載の取引プログラム。
【請求項５】
前記特定する処理は、作成した総不満関数の最小値を特定することを特徴とする請求項１〜４のいずれか１つに記載の取引プログラム。
【請求項６】
前記特定する処理は、前記総不満関数の最小値を黄金分割探索を用いて特定することを特徴とする請求項５に記載の取引プログラム。
【請求項７】
コンピュータが、
売り指値と次の取引価格の差分と、該次の取引価格と買い指値の差分とに基づいて、該次の取引価格を変数として投資家の不満を表す不満関数を約定ごとに作成し、
約定ごとに作成した不満関数に基づいて全約定の総不満関数を作成し、
作成した総不満関数の値のうち小さい方から所定の数番目の値を特定する
処理を約定数を変化させながら実行することで得られる複数の前記所定の数番目の値に基づいて最適約定数を決定する
処理を実行することを特徴とする取引方法。
【請求項８】
前記最適約定数を決定する処理は、前記複数の前記所定の数番目の値の傾きが約定数を増加させていくときに最初に閾値を超える直前の約定数を前記最適約定数として決定することを特徴とする請求項７に記載の取引方法。
【請求項９】
前記特定する処理は、作成した総不満関数の最小値を特定することを特徴とする請求項７又は８に記載の取引方法。
【請求項１０】
売り指値と次の取引価格の差分と、該次の取引価格と買い指値の差分とに基づいて、該次の取引価格を変数として投資家の不満を表す不満関数を約定ごとに作成する第１作成部と、
前記第１作成部により約定ごとに作成された不満関数に基づいて全約定の総不満関数を作成する第２作成部と、
前記第２作成部により作成された総不満関数の値のうち小さい方から所定の数番目の値を特定する特定部と、
前記第１作成部、前記第２作成部及び前記特定部に約定数を変化させながら処理を実行させることで得られる複数の前記所定の数番目の値に基づいて最適約定数を決定する制御部と
を有することを特徴とする取引装置。
【請求項１１】
前記制御部は、前記複数の前記所定の数番目の値の傾きが約定数を増加させていくときに最初に閾値を超える直前の約定数を前記最適約定数として決定することを特徴とする請求項１０に記載の取引装置。
【請求項１２】
前記制御部は、作成した総不満関数の最小値を特定することを特徴とする請求項１０又は１１に記載の取引装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、取引プログラム、取引方法及び取引装置に関する。
【背景技術】
【０００２】
株などの取引においては、板寄せとザラ場がある。板寄せとは、注文を受け付けてから売買開始までの注文をまとめ、売買を成立させて始値を決定する取引である。ザラ場とは、すでに発注されている注文と新たに発注された注文、あるいは、新たに発注された注文同士で売買を成立させる取引である。【０００３】
取引には、売り注文の売り指値及び売り注文数と買い注文の買い指値及び買い注文数を示す板情報が用いられる。図１３は、株取引における板情報の一例を示す図である。図１３において、中列は指値の価格、左列は価格に対応する売り注文の枚数、右列は価格に対応する買い注文の枚数を示す。ここで、１枚は単位株数である。例えば、１０２円を売り指値とする売り注文の枚数は４であり、１０２円を買い指値とする買い注文の枚数は３である。【０００４】
株取引の板寄せでは、約定装置は、売り注文の安い順、買い注文の高い順に順番に売り注文と買い注文を約定させる。そして、約定装置は、売り注文と買い注文が同一価格となったところで約定をやめ、この時の価格を現在値とする。そして、約定した全ての取引は全て現在値で行われる。【０００５】
図１４は、株取引の板寄せを説明するための図である。図１４に示すように、約定装置は、まず、９８円の売り４件と１０４円の買い４件を約定させる。次に、約定装置は、９９円の売り３件と１０２円の買い３件を約定させる。次に、約定装置は、９９円の売り２件と１０１円の買い２件を約定させる。そして、約定装置は、１００円の売り３件と１００円の買い３件を約定させ、約定を終了する。この場合、約定装置は、合計で１２件を１００円で約定させ、現在値を１００円とする。【０００６】
なお、従来技術として、取引の双方における関係者のために取引価格を最適化する方法で連結取引を行うシステムがある。ここで、連結取引とは、個々の同時取引においてコンピュータ化された複数の有価証券取引である。このシステムは、連結取引ワークステーションと、複数の取引者ワークステーションと、中央制御エンジンとを備える。【０００７】
連結取引者は、連結取引ワークステーションを用いて、取引の全費用に基づいて同時に複数の有価証券を取引する満足度を定義する満足密度プロファイルを入力する。個々の有価証券取引者は、取引者ワークステーションを用いて、価格／量の関数として特定の有価証券を取引する満足度を示す満足密度プロファイルを入力する。【０００８】
中央制御エンジンは、取引者の入力に基づいて個々の有価証券の各々に対する満足密度関数を決定し、個々の満足密度関数から全ての有価証券に対する合同満足関数を決定する。そして、中央制御エンジンは、連結満足関数と、連結取引者によって入力された満足密度プロファイルとから相互満足関数を決定し、相互満足関数を最大化して、個々の有価証券の各々を取引する１組の価格、量と当事者を確定する。中央制御エンジンは、さらに、識別された当事者の間で確定された価格と量で複数の有価証券の取引を同時に実行する。【０００９】
また、従来技術として、複数の（価格、量）の組み合わせで文書を売買することへの満足の程度を表す満足度密度プロファイルに基づいて買い注文と売り注文とをつりあわせ、価格表示情報を出力するマッチングシステムがある。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特表２００１−５２２４８７号公報
【特許文献２】特表平１１−５０４４５５号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
図１４に示した板寄せには、現在値より高い売り注文と、現在値より安い買い注文と、現在値の売り注文又は現在値の買い注文のいずれかとが決済されずに保留になるため、保留分は板に残ってしまい、約定数が少ない。そこで、現在値にはとらわれず、指値より投資家にとって有利な価格であれば約定させることで約定数を増やすことが考えられる。ここで、有利な価格とは、売り注文なら指値より高い価格であり、買い注文なら指値より安い価格である。【００１２】
ただし、現在値にはとらわれず、指値より投資家にとって有利な価格であれば約定させると、約定ごとに約定価格が異なるため、次の株価をどのように決定するかを定める必要がある。そこで、投資家の不満を定量化し、約定数最大の条件の下で投資家の不満が最小になるように次の株価を決定することが考えられる。【００１３】
しかしながら、約定数最大の条件の下では、投資家の不満が最小になるように次の株価を決定したとしても、投資家の不満が大きすぎるという問題がある。約定数と投資家の不満はトレードオフの関係にあり、約定数を減らせば投資家の不満は少なくなる。【００１４】
本発明は、１つの側面では、板寄せにおいて複数の約定価格がある場合に投資家が許容できる不満の下で約定数を決定することを目的とする。
【課題を解決するための手段】
【００１５】
１つの態様では、取引プログラムは、コンピュータに、売り指値と次の取引価格の差分と、該次の取引価格と買い指値の差分とに基づいて、該次の取引価格を変数として投資家の不満を表す不満関数を約定ごとに作成する作成処理を実行させる。そして、取引プログラムは、コンピュータに、約定ごとに作成した不満関数に基づいて全約定の総不満関数を作成し、作成した総不満関数の値のうち小さい方から所定の数番目の値を特定する特定処理を実行させる。そして、取引プログラムは、コンピュータに、前記作成処理と前記特定処理を約定数を最大約定数まで変化させながら実行することで得られる複数の前記所定の数番目の値に基づいて最適約定数を決定する処理を実行させる。
【発明の効果】
【００１６】
本発明は、１つの側面では、板寄せにおいて複数の約定価格がある場合に投資家が許容できる不満の下で約定数を決定することができる。
【図面の簡単な説明】
【００１７】
【図１】図１は、実施例に係る約定装置による板寄せの例を示す図である。
【図２】図２は、投資家の不満の定義を説明するための図である。
【図３】図３は、活性化関数Ａ(ｄ)の例を示す図である。
【図４】図４は、不満関数ＤＣ(ｑ)の例を示す図である。
【図５】図５は、不満総和関数の例を示す図である。
【図６】図６は、約定数の変化に対するＤＣＳ(ｑ)の最小値の変化を示す図である。
【図７】図７は、約定数の変化に対するＤＣＳ(ｑ)の最小値の傾きの変化を示す図である。
【図８】図８は、実施例に係る取引システムの構成を示す図である。
【図９】図９は、約定装置による処理のフローを示すフローチャートである。
【図１０】図１０は、不満総和関数の最小値と次の株価を黄金分割探索を用いて特定する処理のフローを示すフローチャートである。
【図１１】図１１は、ＤＳ(ｑ)の値を計算する処理のフローを示すフローチャートである。
【図１２】図１２は、実施例に係る約定プログラムを実行するコンピュータのハードウェア構成を示す図である。
【図１３】図１３は、株取引における板情報の一例を示す図である。
【図１４】図１４は、株取引の板寄せを説明するための図である。
【発明を実施するための形態】
【００１８】
以下に、本願の開示する取引プログラム、取引方法及び取引装置の実施例を図面に基づいて詳細に説明する。なお、実施例は開示の技術を限定するものではない。
【実施例】
【００１９】
まず、実施例に係る約定装置による板寄せ方式について説明する。実施例に係る約定装置は、現在値にとらわれず、指値又は指値より投資家にとって有利な価格であれば約定させる。【００２０】
図１は、実施例に係る約定装置による板寄せの例を示す図である。図１に示すように、実施例に係る約定装置は、９８円売りの４件と９８円買いの４件、９９円売りの５件と１００円買いの５件、１００円売りの３件と１０２円買いの３件、１０３円売りの３件と１０４円買いの３件の合計１５件を約定させる。図１３に示した場合と比較して、実施例１に係る約定装置による板寄せ方式では、約定数が３件増える。【００２１】
このように、実施例に係る約定装置による板寄せでは、どの売り注文とどの買い注文を約定させるかに自由度ができるため、約定数の最大化や約定値段差の最小化などの約定方式の選択が可能になる。また、実施例に係る約定装置による板寄せでは、約定価格は、次の株価をｑ円とすると売り手と買い手の指値の区間のうち、ｑ円に近い値段とする。【００２２】
また、実施例に係る約定装置は、投資家の不満を次の株価を用いて定量化し、次の価格を投資家の不満を最小にする価格に決定する。図２は、投資家の不満の定義を説明するための図である。図２では、９７円の売りと１０３円の買いが約定する。【００２３】
ｑ＜９７の場合、約定価格は９７円である。この場合、売り手には、指値以上で売れたので、不満はない。一方、買い手には、９７円で買ったのに次の株価ｑ円がより安いので、不満がある。差分（９７−ｑ）が大きいほど買い手の不満は大きい。例えば、差分2を不満関数ＤＣ（ｑ）の定義とすると、ｑ＝９４の場合、ＤＣ(９４)＝(９７−９４)2＝９が買い手の不満となる。【００２４】
９７≦ｑ≦１０３の場合、約定価格と次の株価が等しいので、売り手にも買い手にも不満はない。【００２５】
１０３＜ｑの場合、約定価格は１０３円である。この場合、売り手には、１０３円で売ったのに次の株価ｑ円がより高いので、不満がある。差分（ｑ−１０３）が大きいほど売り手の不満は大きい。一方、買い手には、指値以下で買えたので、不満はない。例えば、差分2を不満関数ＤＣ(ｑ)の定義とすると、ｑ＝１０７の場合、ＤＣ(１０７)＝(１０７−１０３)2＝１６が売り手の不満となる。【００２６】
そこで、実施例に係る約定装置は、差分ｄに応じた不満を返すための関数である活性化関数Ａ(ｄ)、売り指値ｓ円、買い指値ｂ円を用いて、不満関数ＤＣ(ｑ)を
ＤＣ(ｑ)＝Ａ(ｓ−ｑ)＋Ａ(ｑ−ｂ)
と定義する。図３は、活性化関数Ａ(ｄ)の例を示す図である。図３（ａ）は、活性化関数Ａ(ｄ)が線形である場合を示し、図３（ｂ）は、活性化関数Ａ(ｄ)が平方である場合を示す。【００２７】
図３（ａ）に示すように、ｄ≧０の場合はＡ(ｄ)＝ｄであり、ｄ＜０の場合はＡ(ｄ)＝０である。また、図３（ｂ）に示すように、ｄ≧０の場合はＡ(ｄ)＝ｄ2であり、ｄ＜０の場合はＡ(ｄ)＝０である。【００２８】
図４は、不満関数ＤＣ(ｑ)の例を示す図である。図４では、ｓ＝９７、ｂ＝１０３である。図４（ａ）は、線形の活性化関数を用いた場合を示し、図４（ｂ）は、平方の活性化関数を用いた場合を示す。図４に示すように、不満関数は下に凸な凸関数である。【００２９】
そして、実施例に係る約定装置は、次の株価ｑ円に対する不満総和関数ＤＣＳ(ｑ)を
ＤＣＳ(ｑ)＝ΣＤＣi(ｑ)
と定義し、ＤＣＳ(ｑ)を最小にするｑを特定する。ここで、ＤＣi(ｑ)は、約定ｉにおける不満関数である。ＤＣＳ(ｑ)は下に凸な関数である。【００３０】
図５は、不満総和関数の例を示す図である。図５に示すように、ｑ＝１００とすると、１０１円売りと１０５円買い、１０６円売りと１０８円買いの２件の約定について買い手に不満があり、ＤＣＳ(１００)＝１2＋６2＝３７となる。なお、この例では、活性化関数Ａ(ｄ)に平方が用いられている。【００３１】
ＤＣＳ(ｑ)の最小値は、約定数によって変化する。図６は、約定数の変化に対するＤＣＳ(ｑ)の最小値の変化を示す図である。横軸は約定数であり、縦軸はＤＣＳ(ｑ)の最小値である。実施例に係る約定装置は、例えば第１閾値を４０として、約定数を最大約定数から減らしていき、ＤＣＳ(ｑ)の最小値が最初に第１閾値４０より小さくなった約定数を最適な約定数として決定する。【００３２】
このように、実施例に係る約定装置は、投資家が許容できる不満の限界をＤＣＳ(ｑ)の最小値の第１閾値として定義し、約定数を最大約定数から減らしながら、ＤＣＳ(ｑ)の最小値が最初に第１閾値より小さくなった約定数を最適な約定数として決定する。したがって、実施例に係る約定装置は、投資家が許容できる不満の下で最適な約定数を決定することができる。【００３３】
なお、実施例に係る約定装置は、約定数を最大約定数まで増やしながら、ＤＣＳ(ｑ)の最小値が最初に第１閾値を超える直前のた約定数を最適な約定数として決定してもよい。【００３４】
また、実施例に係る約定装置は、投資家が許容できる不満の限界をＤＣＳ(ｑ)の最小値の傾きの第２閾値として定義してもよい。図７は、約定数の変化に対するＤＣＳ(ｑ)の最小値の傾きの変化を示す図である。横軸は約定数であり、縦軸はＤＣＳ(ｑ)の最小値の傾きである。実施例に係る約定装置は、例えば第２閾値を１．５として、約定数を最大約定数まで増やしていき、ＤＣＳ(ｑ)の最小値の傾きが１．５を超える直前の約定数を最適な約定数として決定する。【００３５】
実施例に係る約定装置は、ＤＣＳ(ｑ)の最小値の傾きの計算に例えば最小二乗法を用いる。傾きを計算する約定数及び周辺の約定数をｘ1、ｘ2、・・・、ｘnとし、対応するＤＣＳ(ｑ)の最小値をｙ1、ｙ2、・・・、ｙnとすると、実施例に係る約定装置は、ｎ個のデータ（ｘ1，ｙ1）、（ｘ2，ｙ2）、・・・、（ｘn，ｙn）をｙ＝ａｘ＋ｂに当てはめる。ａ及びｂは以下の式（１）で計算され、ａが傾きである。
【数１】
2020179069.tif 000003
【００３６】
実施例に係る約定装置は、傾きを計算する約定数ｕの周辺の約定数を、例えば、ｕ−５、ｕ−４、・・・、ｕ−１、ｕ＋１、・・・、ｕ＋４、ｕ＋５の１０個を選択する。【００３７】
このように、投資家が許容できる不満の限界をＤＣＳ(ｑ)の最小値の傾きの第２閾値として定義することで、不満が急に増大する前の約定数を最適な約定数として決定することができる。【００３８】
次に、実施例１に係る取引システムの構成について説明する。図８は、実施例に係る取引システムの構成を示す図である。図８に示すように、実施例に係る取引システム１は、受付装置１１と、注文管理装置１２と、約定装置１３とを有する。受付装置１１と注文管理装置１２と約定装置１３は内部ネットワーク２で接続される。【００３９】
受付装置１１は、注文情報を受け付け、注文管理装置１２に送信する。注文情報には、例えば、注文者を識別する注文者識別子、銘柄、売り買いの区別、指値、株数などが含まれる。受付装置１１は、例えば、外部ネットワークを介して情報処理装置から送信される注文情報を受信する。情報処理装置は、例えば、投資家がマウスやキーボードを用いて入力した注文に基づいて注文情報を送信する。【００４０】
また、受付装置１１は、注文管理装置１２から約定結果を受信して情報処理装置へ送信する。約定結果には、例えば、注文者識別子、銘柄、売り買いの区別、約定価格、約定株数などが含まれる。受付装置１１は、例えば、注文者識別子に対応付けられたＩＰアドレスを用いて、注文情報の送信元の情報処理装置に約定結果を送信する。【００４１】
注文管理装置１２は、注文情報を例えば注文を識別する注文識別子を付加して管理する。注文管理装置１２は、板寄せ開始までに受付装置１１により受け付けられた注文情報を全て記憶し、板寄せ開始時に、銘柄ごとに売り指値と売り注文数、買い指値と買い注文数を約定装置１３に送信する。【００４２】
また、注文管理装置１２は、銘柄ごとに約定情報を約定装置１３から受信し、注文情報を更新する。また、注文管理装置１２は、約定情報に基づいて約定結果を作成し、受付装置１１に送信する。約定情報には、１つ以上の約定について、例えば、売り指値、買い指値、約定価格、約定株数などが含まれる。【００４３】
約定装置１３は、板寄せにおいて、内部ネットワーク２を介して注文管理装置１２から、銘柄ごとに、売り注文と買い注文の情報を受信し、売り注文と買い注文を約定させ、約定価格と次の株価を決定する。各売り注文の情報には、売り指値と売り注文数が含まれ、各買い注文の情報には、買い指値と買い注文数が含まれる。また、約定装置１３は、内部ネットワーク２を介して、銘柄ごとに、約定情報を注文管理装置１２に送信する。【００４４】
約定装置１３は、取得部２１と、約定決定部２２と、出力部２３とを有する。取得部２１は、内部ネットワーク２を介して注文管理装置１２から、銘柄ごとに、売り注文と買い注文の情報を受信する。【００４５】
約定決定部２２は、銘柄ごとに、最大約定数ｋを特定し、マッチング数ｎをｋから１ずつ減らしながら、ｎ件のマッチング、不満関数及び不満総和関数の作成、不満総和関数の最小値及び次の株価の特定を不満総和関数の最小値が第１閾値より小さくなるまで繰返す。そして、約定決定部２２は、不満総和関数の最小値が第１閾値より小さくなったときのｎを最適約定数とし、ｎ、次の株価、及び、約定ごとの売り指値と買い指値と株数と約定価格を銘柄ごとに出力部２３に渡す。【００４６】
出力部２３は、銘柄ごとに約定情報を注文管理装置１２に内部ネットワーク２を介して送信する。【００４７】
約定決定部２２は、制御部３０と、最大数特定部３１と、マッチング部３２と、不満関数作成部３３と、総和関数作成部３４と、最小値特定部３５と、約定価格決定部３６とを有する。【００４８】
制御部３０は、最大数特定部３１、マッチング部３２、不満関数作成部３３、総和関数作成部３４、最小値特定部３５及び約定価格決定部３６を制御して、銘柄ごとに、最適約定数、次の株価、及び、約定ごとの売り指値と買い指値と株数と約定価格を特定し、出力部２３に渡す。【００４９】
制御部３０は、銘柄ごとに、最大数特定部３１に最大約定数ｋを特定させる。そして、制御部３０は、約定数ｎをｋから１ずつ減らしながら、不満総和関数の最小値＜第１閾値となるまで、マッチング部３２、不満関数作成部３３、総和関数作成部３４及び最小値特定部３５に処理を繰返させることで、最適約定数と約定と次の株価を特定する。そして、制御部３０は、特定した約定ごとに約定価格を約定価格決定部３６に決定させる。そして、制御部３０は、最適約定数、次の株価、及び、約定ごとの売り指値と買い指値と株数と約定価格を銘柄ごとに出力部２３に渡す。【００５０】
なお、制御部３０は、不満総和関数の傾きが最初に第２閾値より大きくなる直前の約定数を最適約定数としてもよい。この場合、制御部３０は、不満総和関数の傾きを周辺の約定数の不満総和関数の最小値を用いて最小二乗法により計算する。【００５１】
最大数特定部３１は、売り注文と買い注文の情報に基づいて、銘柄ごとに最大約定数を特定する。最大数特定部３１は、例えば、二分探索を用いて最大約定数ｋを特定する。具体的には、ｌ件がマッチングし、ｒ(＞ｌ)件はマッチングしない場合に、最大数特定部３１は、次に（ｌ＋ｒ）／２件がマッチングするかを判定する。そして、最大数特定部３１は、マッチングする場合には、次にｌを（ｌ＋ｒ）／２で置き換え、マッチングしない場合には、ｒを（ｌ＋ｒ）／２で置き換える。このような処理をｌとｒが連続する数になるまで繰り返すことによって、最大数特定部３１は、ｋを特定する。あるいは、最大数特定部３１は、二部グラフを用いて最大約定数ｋを特定してもよい。【００５２】
マッチング部３２は、売り注文と買い注文の情報と、制御部３０により指定された銘柄及び約定数ｎとに基づいて、売り注文と買い注文をｎ件マッチングさせる。マッチング部３２は、現在値にとらわれず、指値又は指値より投資家にとって有利な価格であればマッチングさせる。【００５３】
例えば、マッチング部３２は、売り注文と買い注文をランダムに選択することでマッチングを行ってもよい。具体的には、マッチング部３２は、売り注文ｊ件のリストＡと買い注文ｊ件のリストＢを作成する。そして、マッチング部３２は、Ａのｊ件とＢのｊ件の組み合わせを１つ選択し、ｊ件全てについて売り指値が買い指値以下である組み合わせをマッチング候補として記録する記録処理を行う。マッチング部３２は、この記録処理を、Ａのｊ件とＢのｊ件の組み合わせを変えながら全組み合わせについて実行する。さらに、マッチング部３２は、この記録処理を、Ａ又はＢを変更しながら、ＡとＢの全組み合わせについて実行する。さらに、マッチング部３２は、この記録処理を、マッチング件数ｊを１からｕまで変化させながら行う。ここで、ｕは、売り注文数と買い注文数の小さい方である。【００５４】
そして、マッチング部３２は、マッチング候補の中から最適なマッチングを選択する。ここで、最適なマッチングとは、例えば、売り指値の平均が最も安い、買い指値の平均が最も高い、マッチング数が最大である、同一証券会社間のマッチングが少ないなどがある。【００５５】
あるいは、マッチング部３２は、売り注文と買い注文をランダムに選択することでマッチングを行ってもよい。具体的には、マッチング部３２は、売り注文ｊ件のリストＡと買い注文ｊ件のリストＢを作成する。そして、マッチング部３２は、ＡとＢからランダムに１件ずつ選択して売り指値が買い指値以下であるかを判定し、ＡとＢのｊ件全てについて売り指値が買い指値以下である組み合わせをマッチング候補として記録する記録処理を行う。マッチング部３２は、この記録処理を、Ａ又はＢを変更しながら、ＡとＢの全組み合わせてについて実行する。さらに、マッチング部３２は、この記録処理を、マッチング件数ｊを１からｕまで変化させながら行う。そして、マッチング部３２は、マッチング候補の中から最適なマッチングを選択する。【００５６】
あるいは、マッチング部３２は、分岐限定法によるマッチングを行ってもよい。具体的には、マッチング部３２は、売り注文と買い注文のマッチングにおいて深さ優先探索を行い、ある探索点でより深い探索を行っても最適なマッチングは得られないと判定すると、より深い探索を行わない。【００５７】
あるいは、マッチング部３２は、遺伝的アルゴリズムを用いて売り注文と買い注文をマッチングさせてもよい。具体的には、マッチング部３２は、２つのマッチング案の交配ルールを決めておき、交配ルールによって２つのマッチング案を交配させ、次世代のマッチング案を作る。マッチング部３２は、次世代のマッチング案の作成を繰り返すことで、よりよいマッチング案を作成する。マッチング部３２は、例えば、数千世代のマッチング案を作成する。【００５８】
不満関数作成部３３は、全約定（マッチング）について、マッチング部３２から約定ごとの売り指値及び買い指値を取得し、取得した売り指値及び買い指値と、次の株価ｑ円、活性化関数Ａ(ｄ)とを用いて不満関数ＤＣ(ｑ)を約定ごとに作成する。【００５９】
総和関数作成部３４は、不満関数作成部３３により約定ごとに作成された不満関数ＤＣ(ｑ)を全約定について加えて不満総和関数ＤＣＳ(ｑ)を作成する。【００６０】
最小値特定部３５は、不満総和関数ＤＣＳ(ｑ)の最小値と、ＤＣＳ(ｑ)を最小にするｑの値ｑminを特定し、次の株価をｑmin円とする。最小値特定部３５は、例えば黄金分割探索を用いてｑminを特定する。最小値特定部３５は、二分探索、四分探索を用いてｑminを特定してもよい。【００６１】
約定価格決定部３６は、制御部３０により特定された約定に基づいて、約定ごとの約定価格を決定する。約定価格決定部３６は、売り指値をｓ円、買い指値をｂ（ｓ≦ｂ）円とし、次の株価をｑ円とし、区間［ｓ，ｂ］のうちｑに近い値をｒとすると、約定価格をｒ円とする。すなわち、約定価格決定部３６は、次の株価に基づいて約定価格を決定する。【００６２】
次に、約定装置１３による処理のフローについて説明する。図９は、約定装置１３による処理のフローを示すフローチャートである。なお、約定装置１３は、銘柄ごとに図９に示す処理を行う。図９に示すように、約定装置１３は、板寄せの開始時に注文管理装置１２から売り注文と買い注文の情報を受信する（ステップＳ１）。【００６３】
そして、約定装置１３は、最大約定数ｋを特定し（ステップＳ２）、ｎの初期値をｋとする（ステップＳ３）。そして、約定装置１３は、売り注文と買い注文の情報に基づいて、ｎ件約定させ、約定ごとに売り指値、買い指値、株数を記憶する（ステップＳ４）。【００６４】
そして、約定装置１３は、約定ごとに不満関数を作成し（ステップＳ５）、全約定の不満関数を加えて不満総和関数を作成する（ステップＳ６）。そして、約定装置１３は、不満総和関数の最小値と次の株価を特定し（ステップＳ７）、特定した最小値が第１閾値より小さいか否かを判定する（ステップＳ８）。そして、特定した最小値が閾値より小さくない場合には、約定装置１３は、ｎから１を引き（ステップＳ９）、ステップＳ４に戻る。【００６５】
一方、特定した最小値が第１閾値より小さい場合には、約定ごとに約定価格を決定し（ステップＳ１０）、注文管理装置１２に、ｎ、次の株価、及び、約定ごとの売り指値と買い指値と株数と約定価格を送信する。【００６６】
このように、約定装置１３は、約定数を最大約定数ｋから１ずつ減らしながら不満総和関数の最小値が第１閾値より小さくなった最初の約定数を最適約定数として特定するので、投資家が許容できる不満の下で約定数を特定することができる。【００６７】
図９では、ステップＳ５〜ステップＳ７において、不満関数及び不満総和関数を作成して不満総和関数の最小値と次の株価を特定したが、不満総和関数の最小値と次の株価を黄金分割探索を用いて直接特定することもできる。そこで、不満総和関数の最小値と次の株価を黄金分割探索を用いて直接特定する処理について説明する。【００６８】
図１０は、不満総和関数の最小値と次の株価を黄金分割探索を用いて特定する処理のフローを示すフローチャートである。図１０に示すように、最小値特定部３５は、全約定について売り指値と買い指値を取得する（ステップＳ３１）。そして、最小値特定部３５は、売り指値及び買い指値の最小値をｍ、最大値をＭとしたときの初期値をｘ1＝ｍ、ｘ3＝Ｍとし、ｘ1、ｘ3を１：φに内分する値を四捨五入してｘ2とする（ステップＳ３２）。ここで、φは黄金比（（１＋√５）／２）である。【００６９】
そして、最小値特定部３５は、ｘ1＋１とｘ3が等しいか否かを判定し（ステップＳ３３）、ｘ1＋１とｘ3が等しくない場合には、ｘ1、ｘ3をφ：１に内分する値を四捨五入してｘ4とする（ステップＳ３４）。そして、最小値特定部３５は、ＤＳ(ｘ1)＞ＤＳ(ｘ2)＞ＤＳ(ｘ4)であるか否かを判定し（ステップＳ３５）、ＤＳ(ｘ1)＞ＤＳ(ｘ2)＞ＤＳ(ｘ4)である場合には、（ｘ1，ｘ2，ｘ3）を（ｘ2，ｘ4，ｘ3）で置き換える（ステップＳ３６）。一方、（ＤＳ(ｘ1)＞ＤＳ(ｘ2)＞ＤＳ(ｘ4)）でない場合には、最小値特定部３５は、（ｘ1，ｘ2，ｘ3）を（ｘ1，ｘ2，ｘ4）で置き換える（ステップＳ３７）。そして、最小値特定部３５は、ＤＳの値も置き換えて（ステップＳ３８）、ステップＳ３３へ戻る。【００７０】
ステップＳ３３において、ｘ1＋１とｘ3が等しい場合には、最小値特定部３５は、ｘ1を次の株価として、ＤＳ(ｘ1)を不満総和関数の最小値として特定する（ステップＳ３９）。【００７１】
図１１は、ＤＳ(ｑ)の値を計算する処理のフローを示すフローチャートである。図１１に示すように、最小値特定部３５は、不満の総和Ｓ＝０とし（ステップＳ４１）、ｉ＝１とする（ステップＳ４２）。そして、最小値特定部３５は、Ｓに約定ｉの不満の値Ａ(ｓi−ｑ)＋Ａ(ｑ−ｂi)を足し（ステップＳ４３）、ｉ＝ｉ＋１とする（ステップＳ４４）。【００７２】
そして、最小値特定部３５は、ｉがｎ以下か否かを判定する（ステップＳ４５）。ここで、ｎは約定数である。そして、最小値特定部３５は、ｉがｎ以下の場合には、ステップＳ４３に戻り、ｉがｎ以下でない場合には、Ｓの値をＤＳ(ｑ)として返す（ステップＳ４６）。【００７３】
このように、最小値特定部３５は、不満総和関数の値を最小にする次の株価と不満総和関数の最小値を黄金分割探索を用いて直接特定するので、次の株価及び不満総和関数の最小値を効率よく特定することができる。【００７４】
上述してきたように、実施例では、マッチング部３２が、売り注文と買い注文の情報に基づいて、ｎ件マッチングさせる。そして、不満関数作成部３３が、売り指値と次の株価の差分と、次の株価と買い指値の差分とに基づいて、不満関数を約定ごとに作成する。また、総和関数作成部３４が、約定ごとに作成された不満関数に基づいて全約定の不満総和関数を作成する。そして、最小値特定部３５が、不満総和関数の最小値を特定する。そして、制御部３０が、ｎを最大約定数ｋから１ずつ減らしながら、不満総和関数の最小値が第１閾値より小さくなるまで、マッチング部３２、不満関数作成部３３、総和関数作成部３４及び最小値特定部３５に処理を繰り返させる。したがって、約定装置１３は、投資家が許容できる不満の下で約定数を特定することができる。【００７５】
なお、最小値特定部３５は、ｉを正の整数として不満総和関数の最小値からｉ番目の値を特定してもよい。この場合、制御部３０は、不満総和関数の最小値からｉ番目の値が第１閾値より小さくなるまで、マッチング部３２、不満関数作成部３３、総和関数作成部３４及び最小値特定部３５に処理を繰り返させる。【００７６】
また、実施例では、制御部３０は、不満総和関数の最小値の傾きが最初に第２閾値より大きくなる直前の約定数を最適約定数としてもよい。また、実施例では、制御部３０は、不満総和関数の最小値の傾きを、周辺の約定数の不満総和関数の最小値に基づき最小二乗法を用いて計算するので、不満総和関数の最小値の傾きを正確に計算することができる。【００７７】
なお、実施例では、約定装置１３について説明したが、約定装置１３が有する構成をソフトウェアによって実現することで、同様の機能を有する約定プログラムを得ることができる。そこで、約定プログラムを実行するコンピュータについて説明する。【００７８】
図１２は、実施例に係る約定プログラムを実行するコンピュータのハードウェア構成を示す図である。図１２に示すように、コンピュータ５０は、メインメモリ５１と、ＣＰＵ（Central  Processing  Unit）５２と、ＬＡＮ（Local  Area  Network）インタフェース５３と、ＨＤＤ（Hard  Disk  Drive）５４とを有する。また、コンピュータ５０は、スーパーＩＯ（Input  Output）５５と、ＤＶＩ（Digital  Visual  Interface）５６と、ＯＤＤ（Optical  Disk  Drive）５７とを有する。【００７９】
メインメモリ５１は、プログラムやプログラムの実行途中結果等を記憶するメモリである。ＣＰＵ５２は、メインメモリ５１からプログラムを読み出して実行する中央処理装置である。ＣＰＵ５２は、メモリコントローラを有するチップセットを含む。【００８０】
ＬＡＮインタフェース５３は、コンピュータ５０をＬＡＮ経由で他のコンピュータに接続するためのインタフェースである。ＨＤＤ５４は、プログラムやデータを格納するディスク装置であり、スーパーＩＯ５５は、マウスやキーボード等の入力装置を接続するためのインタフェースである。ＤＶＩ５６は、液晶表示装置を接続するインタフェースであり、ＯＤＤ５７は、ＤＶＤの読み書きを行う装置である。【００８１】
ＬＡＮインタフェース５３は、ＰＣＩエクスプレス（ＰＣＩｅ）によりＣＰＵ５２に接続され、ＨＤＤ５４及びＯＤＤ５７は、ＳＡＴＡ（Serial  Advanced  Technology  Attachment）によりＣＰＵ５２に接続される。スーパーＩＯ５５は、ＬＰＣ（Low  Pin  Count）によりＣＰＵ５２に接続される。【００８２】
そして、コンピュータ５０において実行される約定プログラムは、コンピュータ５０により読み出し可能な記録媒体の一例であるＤＶＤに記憶され、ＯＤＤ５７によってＤＶＤから読み出されてコンピュータ５０にインストールされる。あるいは、約定プログラムは、ＬＡＮインタフェース５３を介して接続された他のコンピュータシステムのデータベース等に記憶され、これらのデータベースから読み出されてコンピュータ５０にインストールされる。そして、インストールされた約定プログラムは、ＨＤＤ５４に記憶され、メインメモリ５１に読み出されてＣＰＵ５２によって実行される。【００８３】
また、実施例では、取引システム１が受付装置１１と注文管理装置１２と約定装置１３とを有する場合について説明したが、受付装置１１と注文管理装置１２と約定装置１３の機能を１つにまとめて取引装置を構成してもよい。あるいは、受付装置１１と注文管理装置１２の機能を１つにまとめるなど、任意の２つの機能を１つにまとめて１つの装置としてもよい。【００８４】
また、実施例では、株を取引する場合について説明したが、取引システム１は、他の有価証券や品物を取引してもよい。
【符号の説明】
【００８５】
１    取引システム
２    内部ネットワーク
１１    受付装置
１２    注文管理装置
１３    約定装置
２１    取得部
２２    約定決定部
２３    出力部
３０    制御部
３１    最大数特定部
３２    マッチング部
３３    不満関数作成部
３４    総和関数作成部
３５    最小値特定部
３６    約定価格決定部
５０    コンピュータ
５１    メインメモリ
５２    ＣＰＵ
５３    ＬＡＮインタフェース
５４    ＨＤＤ
５５    スーパーＩＯ
５６    ＤＶＩ
５７    ＯＤＤ
【図１】
2020179069.tif 000004
【図２】
2020179069.tif 000005
【図３】
2020179069.tif 000006
【図４】
2020179069.tif 000007
【図５】
2020179069.tif 000008
【図６】
2020179069.tif 000009
【図７】
2020179069.tif 000010
【図８】
2020179069.tif 000011
【図９】
2020179069.tif 000012
【図１０】
2020179069.tif 000013
【図１１】
2020179069.tif 000014
【図１２】
2020179069.tif 000015
【図１３】
2020179069.tif 000016
【図１４】
2020179069.tif 000017
【手続補正書】
【提出日】令和3年6月7日(2021.6.7)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピュータに、
売り指値と次の取引価格の差分と、該次の取引価格と買い指値の差分とに基づいて、該次の取引価格を変数として投資家の不満を表す不満関数を約定ごとに作成し、
約定ごとに作成した不満関数に基づいて全約定の総不満関数を作成し、
作成した総不満関数の値のうち小さい方から所定の数番目の値を特定する
処理を約定数を変化させながら実行することで得られる複数の前記所定の数番目の値に基づいて最適約定数を決定する
処理を実行させることを特徴とする取引プログラム。
【請求項２】
前記最適約定数を決定する処理は、前記複数の前記所定の数番目の値が約定数を最大約定数から減少させていくときに最初に第１閾値より小さくなる約定数を前記最適約定数として決定することを特徴とする請求項１に記載の取引プログラム。
【請求項３】
前記最適約定数を決定する処理は、前記複数の前記所定の数番目の値の傾きが約定数を増加させていくときに最初に第２閾値を超える直前の約定数を前記最適約定数として決定することを特徴とする請求項１に記載の取引プログラム。
【請求項４】
前記最適約定数を決定する処理は、約定数に対する前記傾きを該約定数より一定数小さい約定数から前記一定数大きい約定数と各約定数に対応する前記所定の数番目の値を用いて最小二乗法で算出することを特徴とする請求項３に記載の取引プログラム。
【請求項５】
前記特定する処理は、作成した総不満関数の最小値を特定することを特徴とする請求項１〜４のいずれか１つに記載の取引プログラム。
【請求項６】
前記特定する処理は、前記総不満関数の最小値を黄金分割探索を用いて特定することを特徴とする請求項５に記載の取引プログラム。
【請求項７】
コンピュータが、
売り指値と次の取引価格の差分と、該次の取引価格と買い指値の差分とに基づいて、該次の取引価格を変数として投資家の不満を表す不満関数を約定ごとに作成し、
約定ごとに作成した不満関数に基づいて全約定の総不満関数を作成し、
作成した総不満関数の値のうち小さい方から所定の数番目の値を特定する
処理を約定数を変化させながら実行することで得られる複数の前記所定の数番目の値に基づいて最適約定数を決定する
処理を実行することを特徴とする取引方法。
【請求項８】
売り指値と次の取引価格の差分と、該次の取引価格と買い指値の差分とに基づいて、該次の取引価格を変数として投資家の不満を表す不満関数を約定ごとに作成する第１作成部と、
前記第１作成部により約定ごとに作成された不満関数に基づいて全約定の総不満関数を作成する第２作成部と、
前記第２作成部により作成された総不満関数の値のうち小さい方から所定の数番目の値を特定する特定部と、
前記第１作成部、前記第２作成部及び前記特定部に約定数を変化させながら処理を実行させることで得られる複数の前記所定の数番目の値に基づいて最適約定数を決定する制御部と
を有することを特徴とする取引装置。
【国際調査報告】
2020179069.tif 000018
2020179069.tif 000019
2020179069.tif 000020
2020179069.tif 000021