(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023155161
(43)【公開日】2023-10-20
(54)【発明の名称】高頻度証券取引方法およびシステム
(51)【国際特許分類】
G06Q 40/04 20120101AFI20231013BHJP
G06N 20/00 20190101ALI20231013BHJP
【FI】
G06Q40/04
G06N20/00
【審査請求】有
【請求項の数】19
【出願形態】OL
(21)【出願番号】P 2023027874
(22)【出願日】2023-02-27
(31)【優先権主張番号】10-2022-0043472
(32)【優先日】2022-04-07
(33)【優先権主張国・地域又は機関】KR
(71)【出願人】
【識別番号】522431896
【氏名又は名称】リベリオンズ インコーポレイテッド
【氏名又は名称原語表記】REBELLIONS INC.
(74)【代理人】
【識別番号】100121728
【弁理士】
【氏名又は名称】井関 勝守
(74)【代理人】
【識別番号】100165803
【弁理士】
【氏名又は名称】金子 修平
(72)【発明者】
【氏名】キム ヒョンソン
(72)【発明者】
【氏名】ユ ソンヨップ
(72)【発明者】
【氏名】オ ジンウク
【テーマコード(参考)】
5L055
【Fターム(参考)】
5L055BB52
(57)【要約】 (修正有)
【課題】現在受信するかまたは収集される株式データの頻度に応じて機械学習モデルの入力のためのバッチサイズを決定することで、予測価格の正確度が向上または維持させながら、機械学習モデルでの不要な演算を最小化するか防止する高頻度証券取引方法、システム及びプログラムを提供する。
【解決手段】方法は、複数の候補バッチサイズのそれぞれに対する証券注文のための遅延時間を算出し、複数の候補バッチサイズの中で、算出された遅延時間に基づいて、バッチサイズを選択し、ターゲット種目に対するマーケットデータを利用して選択されたバッチサイズに対応する入力データを生成し、機械学習モデルを利用して、生成された入力データに基づいて選択されたバッチサイズに関連した未来時点でのターゲット種目に対する予測データを生成し、生成した予測データに基づいてターゲット種目に対する注文データを生成する。
【選択図】
図15
【特許請求の範囲】
【請求項1】
少なくとも一つのプロセッサによって遂行される、高頻度証券取引方法において、
複数の候補バッチサイズのそれぞれに対する証券注文のための遅延時間を算出する段階と、
前記複数の候補バッチサイズの中で、前記算出された遅延時間に基づいて、バッチサイズを選択する段階と、
ターゲット種目に対するマーケットデータを利用して前記選択されたバッチサイズに対応する入力データを生成する段階と、
機械学習モデルを利用して、前記生成された入力データに基づいて前記選択されたバッチサイズに関連した未来時点での前記ターゲット種目に対する予測データを生成する段階と、
前記生成された予測データに基づいて前記ターゲット種目に対する注文データを生成する段階とを含む、高頻度証券取引方法。
【請求項2】
前記バッチサイズを選択する段階は、
複数の予め決定された未来時点のそれぞれに対して、前記複数の候補バッチサイズの中で、前記算出された遅延時間の終了時点が前記複数の予め決定された未来時点のそれぞれより先立つ最も大きい候補バッチサイズを選択する段階を含む、請求項1に記載の高頻度証券取引方法。
【請求項3】
前記バッチサイズを選択する段階は、
前記複数の予め決定された未来時点のそれぞれに対して選択されたバッチサイズのそれぞれに対する期待収益を算出する段階と、
前記複数の予め決定された未来時点のそれぞれに対して選択されたバッチサイズの中で、前記算出された期待収益が最も高いバッチサイズを選択する段階とをさらに含む、請求項2に記載の高頻度証券取引方法。
【請求項4】
前記期待収益を算出する段階は、
前記複数の予め決定された未来時点のそれぞれに対して、前記選択されたバッチサイズのそれぞれ、クエリ当たり収益率および前記選択されたバッチサイズのそれぞれに対する前記機械学習モデルの演算時間に基づいて、前記選択されたバッチサイズのそれぞれの期待収益を算出する段階を含む、請求項3に記載の高頻度証券取引方法。
【請求項5】
前記生成された注文データをターゲット証券取引所に伝送する段階をさらに含む、請求項1に記載の高頻度証券取引方法。
【請求項6】
前記少なくとも一つのプロセッサはFPGA(Field Programmable Gate Array)と前記機械学習モデルのための専用加速器を含み、
前記遅延時間を算出する段階は、
前記複数の候補バッチサイズのそれぞれに対して、データレート(data rate)、前記FPGAと前記専用加速器との間の入出力データの帯域幅、前記入出力データの大きさ、前記専用加速器による前記機械学習モデルの演算速度、前記FPGAの処理速度、または前記専用加速器のビジー(busy)状態のうち少なくとも一つに基づいて前記遅延時間を算出する段階を含む、請求項1に記載の高頻度証券取引方法。
【請求項7】
前記遅延時間は、
前記FPGAによって前記マーケットデータが前処理されるまでにかかった所要時間、前記FPGAから前記専用加速器に前記前処理されたデータを伝達するのに所要する時間、前記専用加速器によって前記機械学習モデルの演算が完了するまでにかかった所要時間、前記専用加速器から前記FPGAに演算結果が伝達されるのにかかった所要時間および前記FPGAによって前記演算結果に基づいて前記注文データが生成されるまでにかかった所要時間を含む、請求項6に記載の高頻度証券取引方法。
【請求項8】
前記入力データのデータ正確度(data precision)を獲得する段階をさらに含み、
前記遅延時間を算出する段階は、
前記複数の候補バッチサイズのそれぞれに対して、前記入力データの正確度に基づいて遅延時間を算出する段階を含む、請求項1に記載の高頻度証券取引方法。
【請求項9】
前記遅延時間は、前記入力データのデータ正確度が減ることによって増えるプロセッシング要素(processing element)に基づいて算出される、請求項8に記載の高頻度証券取引方法。
【請求項10】
前記少なくとも一つのプロセッサは、前記機械学習モデルの演算を処理するための第1専用加速器および第2専用加速器を含み、
前記遅延時間を算出する段階は、
前記複数の候補バッチサイズのそれぞれに対して、前記第1専用加速器の演算時間を含む第1遅延時間および前記第2専用加速器の演算時間を含む第2遅延時間を算出する段階を含み、
前記バッチサイズを選択する段階は、
複数の予め決定された未来時点のそれぞれに対して、前記算出された第1遅延時間および第2遅延時間の中で、低い遅延時間の終了時点が前記複数の予め決定された未来時点のそれぞれより先立つ最も大きい候補バッチサイズを選択する段階を含む、請求項1に記載の高頻度証券取引方法。
【請求項11】
請求項1~請求項10のいずれか一項に記載された方法をコンピュータで実行するためのコンピュータ読み取り可能なコンピュータプログラム。
【請求項12】
情報処理システムにおいて、
一つ以上のインストラクションを保存する第1メモリと、
前記第1メモリの一つ以上のインストラクションを実行することによって複数の候補バッチサイズのそれぞれに対する証券注文のための遅延時間を算出し、前記複数の候補バッチサイズの中で、前記算出された遅延時間に基づいて、バッチサイズを選択し、ターゲット種目に対するマーケットデータを利用して前記選択されたバッチサイズに対応する入力データを生成するように構成された少なくとも一つのプロセッサと、
一つ以上のインストラクションを保存する第2メモリと、
前記第2メモリの一つ以上のインストラクションを実行することによって機械学習モデルを利用して、前記生成された入力データに基づいて前記選択されたバッチサイズに関連した未来時点で前記ターゲット種目に対する予測データを生成し、前記生成された予測データを前記少なくとも一つのプロセッサに提供するように構成された前記機械学習モデルのための専用加速器とを含み、
前記少なくとも一つのプロセッサは、
前記専用加速器から提供された予測データに基づいて前記ターゲット種目に対する注文データを生成するようにさらに構成された、情報処理システム。
【請求項13】
前記バッチサイズを選択することは、
複数の予め決定された未来時点のそれぞれに対して、前記複数の候補バッチサイズの中で、前記算出された遅延時間の終了時点が前記複数の予め決定された未来時点のそれぞれより先立つ最も大きい候補バッチサイズを選択することを含む、請求項12に記載の情報処理システム。
【請求項14】
前記バッチサイズを選択することは、
前記複数の予め決定された未来時点のそれぞれに対して選択されたバッチサイズのそれぞれに対する期待収益を算出し、前記複数の予め決定された未来時点のそれぞれに対して選択されたバッチサイズの中で、前記算出された期待収益が最も高いバッチサイズを選択することを含む、請求項13に記載の情報処理システム。
【請求項15】
前記期待収益を算出することは、
前記複数の予め決定された未来時点のそれぞれに対して、前記選択されたバッチサイズのそれぞれ、クエリ当たり収益率および前記選択されたバッチサイズのそれぞれに対する前記機械学習モデルの演算時間に基づいて、前記選択されたバッチサイズのそれぞれの期待収益を算出することを含む、請求項14に記載の情報処理システム。
【請求項16】
前記少なくとも一つのプロセッサは、FPGA(Field Programmable Gate Array)で具現され、前記機械学習モデルのための専用加速器はニューラル処理ユニットのための集積回路(NPU ASIC)で具現され、
前記遅延時間を算出することは、
前記複数の候補バッチサイズのそれぞれに対して、データレート(data rate)、前記FPGAと前記専用加速器との間の入出力データの帯域幅、前記入出力データの大きさ、前記専用加速器による前記機械学習モデルの演算速度、前記FPGAの処理速度、または前記専用加速器のビジー(busy)状態のうち少なくとも一つに基づいて前記遅延時間を算出することを含む、請求項12に記載の情報処理システム。
【請求項17】
前記少なくとも一つのプロセッサは、
前記入力データのデータ正確度を獲得するようにさらに構成され、
前記遅延時間を算出することは、
前記複数の候補バッチサイズのそれぞれに対して、前記入力データの正確度に基づいて遅延時間を算出することを含む、請求項12に記載の情報処理システム。
【請求項18】
前記遅延時間は、前記入力データのデータ正確度が減ることによって増えるプロセッシング要素に基づいて算出される、請求項17に記載の情報処理システム。
【請求項19】
前記専用加速器は、前記機械学習モデルの演算を処理するための第1専用加速器および第2専用加速器を含み、
前記遅延時間を算出することは、前記複数の候補バッチサイズのそれぞれに対して、前記第1専用加速器の演算時間を含む第1遅延時間および前記第2専用加速器の演算時間を含む第2遅延時間を算出することを含み、
前記バッチサイズを選択することは、
複数の予め決定された未来時点のそれぞれに対して、前記算出された第1遅延時間および第2遅延時間の中で、低い遅延時間の終了時点が前記複数の予め決定された未来時点のそれぞれより先立つ最も大きい候補バッチサイズを選択することを含む、請求項12に記載の情報処理システム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は高頻度証券取引方法およびシステムに関し、具体的には、機械学習モデルを利用して獲得されたターゲット種目に対する予測データに基づいて注文データを生成する、高頻度証券取引方法およびシステムに関する。
【背景技術】
【0002】
高頻度証券取引(high frequency trading)は株式、債権、派生商品などの有価証券の微細な価格変動を利用して、短い時間内に高頻度(例えば、1秒に数百回から数千回)で取引する取引方式である。高頻度証券取引においては迅速な処理速度が非常に重要である。一般的に、入力された情報に基づいてトレーディングアルゴリズムを処理して出力するまでの時間が短縮されるほど取引での優位を先取りすることができる。
【0003】
一方、機械学習モデルを利用した高頻度証券取引技法はマーケットから獲得される大量のデータを分析するので、特定種目の相場の予測時に既存の古典的なアルゴリズムを通じて獲得され得る予測の正確性に影響を及ぼす因子よりさらに多くの因子を考慮することができる。ただし、機械学習モデルを利用して多量のデータを分析するためには、機械学習の演算に多くの保存空間と処理資源が要求され得る。しかし、既存のプロセッサは、このような高頻度証券取引技法を支援するには適合しない場合もある。
【0004】
また、機械学習モデルで、大量のデータに対する複雑な演算が要求されるので、機械学習モデルを利用する場合、証券注文のための遅延時間(latency)が発生し得る。このような遅延時間によって、機械学習モデルを通じて証券種目の予測データが出力される時点がすでに過去の時点となる時点乖離現象が発生し得る。例えば、機械学習モデルがT1未来時点(T1は正数である)でのターゲット種目に対する予測データを出力したが、遅延時間によって予測データが獲得される時点がT1+n(nは正数である)となって、予測データが過去に対するデータとなる問題点が発生し得る。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】韓国公開特許第10-2001-0016454号
【発明の概要】
【発明が解決しようとする課題】
【0006】
本開示は前記のような問題点を解決するための高頻度証券取引方法、コンピュータプログラムおよび装置(システム)を提供する。
【課題を解決するための手段】
【0007】
本開示は、方法、装置(システム)および/またはコンピュータ読み取り可能保存媒体に保存されたコンピュータプログラムを含んだ多様な方式で具現され得る。
【0008】
本開示の一実施例によると、少なくとも一つのプロセッサによって実行される高頻度証券取引方法は、複数の候補バッチサイズのそれぞれに対する証券注文のための遅延時間を算出する段階、複数の候補バッチサイズの中で、算出された遅延時間に基づいて、バッチサイズを選択する段階、ターゲット種目に対するマーケットデータを利用して選択されたバッチサイズに対応する入力データを生成する段階、機械学習モデルを利用して、生成された入力データに基づいて選択されたバッチサイズに関連した未来時点でのターゲット種目に対する予測データを生成する段階および生成された予測データに基づいてターゲット種目に対する注文データを生成する段階を含むことができる。
【0009】
本開示の一実施例に係る高頻度証券取引方法をコンピュータで実行するためのコンピュータプログラムが提供され得る。
【0010】
本開示の一実施例によると、情報処理システムは一つ以上のインストラクションを保存する第1メモリ、第1メモリの一つ以上のインストラクションを実行することによって複数の候補バッチサイズのそれぞれに対する証券注文のための遅延時間を算出し、複数の候補バッチサイズの中で、算出された遅延時間に基づいて、バッチサイズを選択し、ターゲット種目に対するマーケットデータを利用して選択されたバッチサイズに対応する入力データを生成するように構成された少なくとも一つのプロセッサ、一つ以上のインストラクションを保存する第2メモリ、および第2メモリの一つ以上のインストラクションを実行することによって機械学習モデルを利用して、生成された入力データに基づいて選択されたバッチサイズに関連した未来時点でターゲット種目に対する予測データを生成し、生成された予測データを少なくとも一つのプロセッサに提供するように構成された機械学習モデルのための専用加速器を含むことができる。また、少なくとも一つのプロセッサは、専用加速器から提供された予測データに基づいてターゲット種目に対する注文データを生成するようにさらに構成され得る。
【発明の効果】
【0011】
本開示の一部の実施例によると、現在に受信または収集される株式データの頻度に応じて機械学習モデルの入力のためのバッチサイズを決定することによって、予測価格の正確度が向上または維持されながら、機械学習モデルでの不要な演算が最小化されるか防止され得る。
【0012】
本開示の一部の実施例によると、時点乖離が発生していない時間以内に機械学習モデルが処理できる最大バッチ(batch)サイズに対応する入力データが生成され、生成された入力データが機械学習モデルに入力され得る。これに伴い、時点乖離が発生せず、かつターゲット種目に対するより正確な予測データが機械学習モデルから獲得され得る。
【0013】
本開示の一部の実施例によると、複数の候補バッチサイズのそれぞれに対する遅延時間が予測され、予測された遅延時間の終了時点が未来時点より先立っているバッチサイズを選択することによって、不要な演算(例えば、時点乖離を発生させる演算)が機械学習モデルで遂行されることが防止され得る。
【0014】
本開示の一部の実施例によると、単一の機械学習モデルを利用して複数の未来時点でのターゲット種目の価格が正確に予測され、予測された結果に基づいて期待収益が最大値となる未来時点で証券が注文され得る。これに伴い、証券売買収益率が最大化され得る。
【0015】
本開示の一部の実施例によると、複数の専用加速器のうち最大収益を期待できる専用加速器が選択され、選択された専用加速器を通じて機械学習モデルを利用した演算が遂行され得る。このような場合、演算速度が向上し、さらに迅速な注文データが生成されて、証券売買収益率が最大化され得る。
【0016】
本開示の効果は以上で言及した効果に制限されず、言及されていない他の効果は請求の範囲の記載から本開示が属する技術分野で通常の知識を有する者(「通常の技術者」という)に明確に理解され得るであろう。
【図面の簡単な説明】
【0017】
本開示の実施例は、以下で説明する添付図面を参照して説明され、ここで類似する参照番号は類似する要素を示すが、これに限定されない。
【
図1】本開示の一実施例に係る情報処理システムの作動の例を示す概要図である。
【
図2】本開示の一実施例に係る情報処理システムの内部構成を示すブロック図である。
【
図3】本開示の一実施例に係るプロセッサの内部構成を示す図面である。
【
図4】プロセッサと専用加速器とで発生する遅延時間を視覚化したものである。
【
図5】証券注文のための遅延時間を視覚化して例示した図面である。
【
図6】複数の未来時点を視覚化して例示した図面である。
【
図7】候補バッチサイズ別に算出された遅延時間を視覚的に例示した図面である。
【
図8】各専用加速器のバッチサイズ別に算出された遅延時間を視覚的に例示した図面である。
【
図9】本開示の一実施例に係る機械学習モデルが入力データに基づいて出力データを出力する例を示す図面である。
【
図10】本開示の一実施例に係る機械学習モデルの入力データの構成の例を示す図面である。
【
図11】本開示の一実施例に係る人工ニューラルネットワークモデルを示す例示図である。
【
図12】本開示の一実施例に係る、証券取引方法を説明するためのフローチャートである。
【
図13】本開示の一実施例に係る、マーケットデータの前処理方法を説明するためのフローチャートである。
【
図14】複数の未来時点別期待収益を例示的に示す図面である。
【
図15】本開示の他の実施例に係る証券取引方法を説明するためのフローチャートである。
【
図16】出力データに基づいて注文データが生成される過程を例示的に示した図面である。
【
図17】本開示の一実施例に係る証券取引生成に関連した任意のコンピューティング装置の構成図である。
【発明を実施するための形態】
【0018】
<発明の概要>
本開示の一実施例によると、バッチサイズを選択する段階は、複数の予め決定された未来時点のそれぞれに対して、複数の候補バッチサイズの中で、算出された遅延時間の終了時点が複数の予め決定された未来時点のそれぞれより先立つ最も大きい候補バッチサイズを選択する段階を含むことができる。
【0019】
また、バッチサイズを選択する段階は、複数の予め決定された未来時点のそれぞれに対して選択されたバッチサイズのそれぞれに対する期待収益を算出する段階および複数の予め決定された未来時点のそれぞれに対して選択されたバッチサイズの中で、算出された期待収益が最も高いバッチサイズを選択する段階をさらに含むことができる。
【0020】
また、期待収益を算出する段階は、複数の予め決定された未来時点のそれぞれに対して、選択されたバッチサイズのそれぞれ、クエリ当たり収益率および選択されたバッチサイズのそれぞれに対する機械学習モデルの演算時間に基づいて、選択されたバッチサイズのそれぞれの期待収益を算出する段階を含むことができる。
【0021】
また、高頻度証券取引方法は、生成された注文データをターゲット証券取引所に伝送する段階をさらに含むことができる。
【0022】
また、少なくとも一つのプロセッサはFPGA(Field Programmable Gate Array)および機械学習モデルのための専用加速器を含むことができる。この場合、遅延時間を算出する段階は、複数の候補バッチサイズのそれぞれに対して、データレート(data rate)、FPGAと専用加速器との間の入出力データの帯域幅、入出力データの大きさ、専用加速器による機械学習モデルの演算速度、FPGAの処理速度、または専用加速器のビジー(busy)状態のうち少なくとも一つに基づいて遅延時間を算出する段階を含むことができる。
【0023】
また、遅延時間は、FPGAによってマーケットデータが前処理されるまでにかかった所要時間、FPGAから専用加速器に前処理されたデータを伝達するのに所要する時間、専用加速器によって機械学習モデルの演算が完了するまでにかかった所要時間、専用加速器からFPGAに演算結果が伝達されるのにかかった所要時間およびFPGAによって演算結果に基づいて注文データが生成されるまでにかかった所要時間を含むことができる。
【0024】
また、高頻度証券取引方法は、入力データのデータ正確度(data precision)を獲得する段階をさらに含み、遅延時間を算出する段階は、複数の候補バッチサイズのそれぞれに対して、入力データの正確度に基づいて遅延時間を算出する段階を含むことができる。
【0025】
また、遅延時間は、入力データのデータ正確度が減ることによって増えるプロセッシング要素(processing element)に基づいて算出され得る。
【0026】
また、少なくとも一つのプロセッサは、機械学習モデルの演算を処理するための第1専用加速器と第2専用加速器を含み、遅延時間を算出する段階は、複数の候補バッチサイズのそれぞれに対して、第1専用加速器の演算時間を含む第1遅延時間および第2専用加速器の演算時間を含む第2遅延時間を算出する段階を含み、バッチサイズを選択する段階は、複数の予め決定された未来時点のそれぞれに対して、算出された第1遅延時間および第2遅延時間の中で、低い遅延時間の終了時点が複数の予め決定された未来時点のそれぞれより先立つ最も大きい候補バッチサイズを選択する段階を含むことができる。
【0027】
<発明の詳細な説明>
以下、本開示の実施のための具体的な内容を添付された図面を参照して詳細に説明する。ただし、以下の説明では本開示の要旨を不要に曖昧にさせ得る恐れがある場合、広く知られている機能や構成に関する具体的な説明は省略することにする。
【0028】
添付された図面で、同一または対応する構成要素には同一の参照符号が付されている。また、以下の実施例の説明において、同一または対応する構成要素を重畳して記述することが省略され得る。しかし、構成要素に関する技術が省略されても、そのような構成要素がある実施例に含まれないものと意図しない。
【0029】
開示された実施例の利点および特徴、そして、それらを達成する方法は、添付される図面と共に後述されている実施例を参照すると明確となるであろう。しかし、本開示は以下で開示される実施例に限定されるものではなく互いに異なる多様な形態で具現され得、ただし、本実施例は本開示を完全なものとし、本開示が通常の技術者に発明の範疇を完全に知らせるために提供されるものに過ぎない。
【0030】
本明細書で使われる用語について簡略に説明し、開示された実施例について具体的に説明することにする。本明細書で使われる用語は、本開示での機能を考慮しつつ、できる限り現在広く使われる一般的な用語を選択したが、これは関連分野に従事する技術者の意図または判例、新しい技術の出現などにより変わり得る。また、特定の場合は出願人が任意に選定した用語もあり、この場合、該当する発明の説明の部分で詳細にその意味を記載するであろう。したがって、本開示で使われる用語は単純な用語の名称ではない、その用語が有する意味と本開示の全般にわたった内容に基づいて定義されなければならない。
【0031】
本明細書での単数の表現は文脈上明白に単数であると特定しない限り、複数の表現を含む。また、複数の表現は文脈上明白に複数であると特定しない限り、単数の表現を含む。明細書全体において、或る部分が何らかの構成要素を含むとする時、これは特に反対の記載がない限り、他の構成要素を除くものではなく他の構成要素をさらに含み得ることを意味する。
【0032】
また、明細書で使われる「モジュール」または「部」という用語はソフトウェアまたはハードウェア構成要素を意味し、「モジュール」または「部」は何らかの役割を遂行する。ところが、「モジュール」または「部」はソフトウェアまたはハードウェアに限定される意味ではない。「モジュール」または「部」はアドレッシングできる保存媒体にあるように構成されてもよく、一つまたはそれ以上のプロセッサを再生させるように構成されてもよい。したがって、一例として、「モジュール」または「部」はソフトウェア構成要素、オブジェクト指向ソフトウェア構成要素、クラス構成要素およびタスク構成要素のような構成要素と、プロセス、関数、属性、プロシージャ、サブルーチン、プログラムコードのセグメント、ドライバ、ファームウェア、マイクロコード、回路、データ、データベース、データ構造、テーブル、アレイまたは変数のうち少なくとも一つを含むことができる。構成要素および「モジュール」または「部」は、中で提供される機能はさらに小さい数の構成要素および「モジュール」または「部」で結合されたり、追加的な構成要素および「モジュール」または「部」にさらに分離され得る。
【0033】
本開示の一実施例によると、「モジュール」または「部」はプロセッサおよびメモリで具現され得る。「プロセッサ」は汎用プロセッサ、中央処理装置(CPU)、マイクロプロセッサ、デジタル信号プロセッサ(DSP)、制御器、マイクロ制御器、状態マシンなどを含むように広く解釈されるべきである。いくつかの環境で、「プロセッサ」は特定用途向け半導体(ASIC)、プログラム可能ロジックデバイス(PLD)、フィールドプログラム可能ゲートアレイ(FPGA)等を指称してもよい。「プロセッサ」は、例えば、DSPとマイクロプロセッサの組み合わせ、複数のマイクロプロセッサの組み合わせ、DSPコアと結合した一つ以上のマイクロプロセッサの組み合わせ、または任意の他のそのような構成の組み合わせのような処理デバイスの組み合わせを指称してもよい。また、「メモリ」は電子情報を保存可能な任意の電子コンポーネントを含むように広く解釈されるべきである。「メモリ」はランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、不揮発性ランダムアクセスメモリ(NVRAM)、プログラム可能読み取り専用メモリ(PROM)、消去-プログラム可能読み取り専用メモリ(EPROM)、電気的消去可能PROM(EEPROM)、フラッシュメモリ、磁気または光学データ保存装置、レジスタなどのようなプロセッサ-読み取り可能媒体の多様な類型を指称してもよい。プロセッサがメモリから情報を読み取りし/したり、メモリに情報を記録できるのであれば、メモリはプロセッサと電子通信状態にあると呼ばれる。プロセッサに集積されたメモリはプロセッサと電子通信状態にある。
【0034】
本開示において、「システム」はサーバー装置とクラウド装置のうち少なくとも一つの装置を含むことができるが、これに限定されるものではない。例えば、システムは一つ以上のサーバー装置で構成され得る。他の例として、システムは一つ以上のクラウド装置で構成され得る。さらに他の例として、システムはサーバー装置とクラウド装置が共に構成されて動作し得る。さらに他の例として、システムは高頻度証券注文のためのクライアント装置を指称し得る。
【0035】
また、以下の実施例で使われる第1、第2、A、B、(a)、(b)等の用語は、或る構成要素を他の構成要素と区別するために使われるものに過ぎず、その用語によって該当構成要素の本質や順番または順序などが限定されない。
【0036】
また、以下の実施例において、或る構成要素が他の構成要素に「連結」、「結合」または「接続」されると記載された場合、その構成要素はその他の構成要素に直接的に連結されたりまたは接続され得るが、各構成要素間にさらに他の構成要素が「連結」、「結合」または「接続」されてもよいものと理解されるべきである。
【0037】
また、以下の実施例で使われる「含む(comprises)」および/または「含む(comprising)」は、言及された構成要素、段階、動作および/または素子は一つ以上の他の構成要素、段階、動作および/または素子の存在または追加を排除しない。
【0038】
本開示において、「複数のAのそれぞれ」または「複数のAそれぞれ」は複数のAに含まれたすべての構成要素のそれぞれを指称するか、複数のAに含まれた一部の構成要素のそれぞれを指称し得る。
【0039】
本開示の多様な実施例の説明に先立ち、使われる用語について説明することにする。
【0040】
本開示において、「種目」とは、証券市場で売買取引の対象となる株式、債権、派生商品(オプション、先物など)のような有価証券を、内容と形式によって分類したものを指称し得る。種目は個別種目の他に、指数関連種目、産業セクターに関連した種目、特定商品(例えば、原油、農産物、金など)に対する種目、為替レート関連種目なども含むことができる。
【0041】
本開示において、「証券取引所」とは、少なくとも一つの国で流通する有価証券を流通する所であって、各企業や政府などが発行した有価証券を上場して取引できるように仲介する所を指称し得る。一実施例において、証券取引所は証券取引所のシステムを含むことができる。
【0042】
本開示において、「オーダーブック(Order Book:OB)」は証券市場に存在する買い希望者と売り希望者の買い注文または売り注文(呼び値、数量、買い希望者または売り希望者情報など)に対する情報を記録したリストを含むことができる。
【0043】
本開示において、「オーダーブックの上端(Top of the Book:ToB)」は最も高い買値と最も低い売値に対する情報を含むことができる。
【0044】
本開示において、「マーケットデータ」は証券取引所で取引される種目に対するデータを含むことができる。例えば、マーケットデータは証券取引所で取引される種目(のうち少なくとも一部)のオーダーブック、公示、ニュースなどを含むことができる。
【0045】
本開示において、「機械学習モデル」は与えられた入力に対する解答(answer)を推論するのに使う任意のモデルを含むことができる。一実施例によると、機械学習モデルは入力レイヤ(層)、複数個の隠れレイヤおよび出力レイヤを含んでいる人工ニューラルネットワークモデルを含むことができる。ここで、各レイヤは複数のノードを含むことができる。また、本開示において、機械学習モデルは人工ニューラルネットワークモデルを指称し得、人工ニューラルネットワークモデルは機械学習モデルを指称し得る。
【0046】
本開示の実施例において、「インストラクション(instruction)」は機能を基準として束ねられた一連のコンピュータ読み取り可能命令語であって、コンピュータプログラムの構成要素であるとともにプロセッサによって実行されるものを示す。
【0047】
以下、本開示の多様な実施例について添付された図面により詳細に説明する。
【0048】
図1は、本開示の一実施例に係る情報処理システム110の作動の例を示す概要図である。一実施例によると、情報処理システム110はマーケットデータに基づいて一つ以上の未来時点(近い未来時点、例えば、予め定められた時間後)の市場状況を予測することができ、これに基づいてターゲット種目に対する注文を生成してターゲット証券取引所(第2証券取引所)に伝送することができる。高頻度証券取引において、マーケットデータに基づいて速い速度で注文を生成して伝送することが非常に重要である。このため、高頻度証券取引ではマイクロ秒単位の遅延時間(latency)まで考慮されなければならず、遅延時間を減少させるために情報処理システム110はターゲット証券取引所(第2証券取引所)のサーバーと近いところに位置(colocation)することができる。
【0049】
一実施例によると、情報処理システム110は第1証券取引所からマーケットデータを受信することができる。また、情報処理システム110は第1証券取引所以外にウェブサイトからマーケットデータを受信することができる。ここで、ウェブサイトは一つ以上の取引所で発生するマーケットデータを取りまとめるサイトであり得、または私設の会社が独自に運営するウェブサイトであり得る。マーケットデータは複数の種目に対するオーダーブック、公示、ニュースなどが含まれ得る。一実施例において、マーケットデータはターゲット種目に対するデータを含むことができる。例えば、マーケットデータはターゲット種目のオーダーブックの上端、ターゲット種目に対する(有効な)注文リスト、ターゲット種目に関する以前の注文に対する第1証券取引所の応答などを含むことができる。
【0050】
マーケットデータは単位時間の間に動的に受信され得る。すなわち、証券市場の環境により、単位時間の間に情報処理システム110で受信されるマーケットデータの大きさまたは個数が異なり得る。例えば、証券市場の変動が大きい場合には単位時間の間に受信されるマーケットデータの大きさが大きいかまたはデータの個数が多いこともある。すなわち、証券市場の変動性が大きくなる場合にオーダーブックの変動の大きさまたは回数も増加し、これに伴い、単位時間当り情報処理システム110で受信されるマーケットデータの大きさまたは個数も多くなり得る。
【0051】
図1で第1証券取引所は一つの証券取引所のように示されたが、これは説明の便宜のためのものに過ぎず、第1証券取引所は一つ以上の証券取引所を含むことができる。また、
図1で第1証券取引所は第2証券取引所とは異なる別個の取引所のように示されたが、これも同様に説明の便宜のためのものに過ぎず、第1証券取引所は第2証券取引所を含んだり、第2証券取引所は第1証券取引所を含んでもよい。
【0052】
一実施例によると、情報処理システム110はマーケットデータを分析して注文を生成することができる。例えば、情報処理システム110はマーケットデータおよび/またはマーケットデータに基づいて生成されたデータを分析して、一つ以上の未来時点(例えば、n秒後、ここでnは正の実数である)での市場状況(例えば、ターゲット種目の価格)を予測し、これに基づいて注文を生成することができる。ここで、マーケットデータおよび/またはマーケットデータに基づいて生成されたデータを分析する過程は機械学習モデル(例えば、DNNなど)によって遂行され得る。
【0053】
一方、高頻度証券取引においてマーケットデータを速やかに分析して注文を生成することが非常に重要であるが、一般的なプロセッサの場合、機械学習モデルの複雑で大量の演算を支援するための保存空間と演算資源を保有していないため、一般的なプロセッサを利用して機械学習モデルを駆動する場合、処理速度および/または効率が低下し得る。このような点を勘案して、本開示の一実施例に係る情報処理システム110は、機械学習モデルのための専用加速器(例えば、ニューラル処理ユニット(Neural Processing Unit:NPU))を含むことができ、専用加速器はニューラル処理ユニットのための集積回路(例えば、Application-Specific Integrated Circuit:ASIC)で具現され得る。
【0054】
一方、機械学習モデルを利用する場合、適切な前/後処理過程が必要となり得る。例えば、マーケットデータから機械学習モデルの入力データを生成したり、機械学習モデルから出力されたデータに基づいて注文データを生成する過程が必要となり得る。このような前/後処理過程は市場状況、規律、マーケットメーカーに対する補償規定などの変化により持続的に変更され得る。このような前/後処理過程を処理するプロセッサを特定用途でオーダーメード製作された特定用途向け半導体(例えば、ASIC)で具現する場合、再設計が不可能であるため前/後処理過程が変更される場合、変更された前/後処理過程を遂行するためのプロセッサを再び製作しなければならないという問題点がある。これに伴い、機械学習モデルの駆動を除いた過程は再プログラミングおよび/または設計変更が可能なプロセッサ(例えば、フィールドプログラマブルゲートアレイ(Field Programmable Gate Array:FPGA)で具現されたプロセッサ)によって遂行され得る。
【0055】
前述した通り、機械学習モデルを駆動するプロセッサが専用加速器(例えば、NPU ASIC)で構成されることによって、迅速かつ効率的に機械学習モデルの演算を処理することができる。また、前/後処理過程は再プログラミングまたは再設計が可能なプロセッサ(例えば、FPGA)を利用して処理することによって、継続的に変化する市場状況に合わせて柔軟に前/後処理過程が変更され得る。このように、高頻度証券取引を処理するために、適合する異なる2以上のプロセッサを使うことによって、柔軟な前/後処理過程の具現および効率的でかつ迅速な機械学習モデルの演算処理が同時に実現され得る。情報処理システム110の内部構成とデータの流れについては
図2~
図4を参照して詳細に後述される。
【0056】
図2は本開示の一実施例に係る情報処理システム110の内部構成を示すブロック図である。情報処理システム110はメモリ210、プロセッサ220、通信モジュール230および入出力インターフェース240を含むことができる。
図2に示された通り、情報処理システム110は通信モジュール230を利用してネットワークを通じて情報および/またはデータを通信できるように構成され得る。
【0057】
メモリ210は非一時的な任意のコンピュータ読み取り可能な記録媒体を含むことができる。一実施例によると、メモリ210はROM(read only memory)、ディスクドライブ、SSD(solid state drive)、フラッシュメモリ(flash memory)などのような非消滅性大容量保存装置(permanent mass storage device)を含むことができる。他の例として、ROM、SSD、フラッシュメモリ、ディスクドライブなどのような非消滅性大容量保存装置はメモリとは区分される別途の永久保存装置であって、情報処理システム110に含まれ得る。また、メモリ210にはオペレーティングシステムと少なくとも一つのプログラムコード(例えば、情報処理システム110に設置されて駆動される機械学習モデルの演算処理、前/後処理、証券注文の伝送などのためのコード)が保存され得る。
図2で、メモリ210は単一のメモリとして示されたが、これは説明の便宜のためのものに過ぎず、メモリ210は複数のメモリを含むことができる。
【0058】
このようなソフトウェア構成要素は、メモリ210とは別途のコンピュータで読み取り可能な記録媒体からローディングされ得る。このような別途のコンピュータで読み取り可能な記録媒体は、このような情報処理システム110に直接連結可能な記録媒体を含むことができるが、例えば、フレキシブルディスク、ディスク、テープ、DVD/CD-ROMドライブ、メモリカードなどのコンピュータで読み取り可能な記録媒体を含むことができる。他の例として、ソフトウェア構成要素はコンピュータで読み取り可能な記録媒体ではなく通信モジュール230を通じてメモリ210にローディングされ得る。例えば、少なくとも一つのプログラムは、開発者またはアプリケーションの設置ファイルを配布するファイル配布システムが通信モジュール230を通じて提供するファイルによって設置されるコンピュータプログラム(例えば、マーケットデータ分析、未来市場予測、証券注文生成および伝送などのためのプログラムなど)に基づいてメモリ210にローディングされ得る。
【0059】
プロセッサ220は基本的な算術、ロジックおよび入出力演算を遂行することによって、コンピュータプログラムの命令を処理するように構成され得る。命令はメモリ210または通信モジュール230によりユーザ端末(図示されず)または他の外部システムに提供され得る。例えば、プロセッサ220は機械学習モデルを利用して入力データに基づいてターゲット種目に対する予測データを生成し、生成された予測データに基づいて注文データを生成することができる。このように生成された注文データはターゲット証券取引所に伝送され得る。
【0060】
通信モジュール230はネットワークを通じてユーザ端末(図示されず)と情報処理システム110が互いに通信するための構成または機能を提供することができ、情報処理システム110が外部システム(一例として、別途のクラウドシステムなど)と通信するための構成または機能を提供することができる。一例として、情報処理システム110のプロセッサ220の制御により提供される制御信号、命令、データなどが、通信モジュール230とネットワークを経てユーザ端末および/または外部システムの通信モジュールを通じてユーザ端末および/または外部システムに伝送され得る。例えば、外部システム(証券取引所システム)は情報処理システム110から注文データなどが伝達され得る。
【0061】
また、情報処理システム110の入出力インターフェース240は情報処理システム110と連結されるか、情報処理システム110が含むことができる入力または出力のための装置(図示されず)とのインターフェースのための手段であり得る。例えば、入出力インターフェース240はPCI express(登録商標)インターフェース、イーサネット(登録商標)(ethernet(登録商標))インターフェースのうち少なくとも一つを含むことができる。
図2では入出力インターフェース240がプロセッサ220と別途に構成された要素として示されたが、これに限定されず、入出力インターフェース240がプロセッサ220に含まれるように構成され得る。情報処理システム110は
図2の構成要素よりさらに多くの構成要素を含むことができる。
【0062】
情報処理システム110のプロセッサ220は、複数のユーザ端末および/または複数の外部システムから受信された情報および/またはデータを管理、処理および/または保存するように構成され得る。一実施例によると、プロセッサ220は第1証券取引所システムおよび第2証券取引所システムからマーケットデータを受信することができる。プロセッサ220は受信されたマーケットデータに基づいてターゲット種目に対する一つ以上の未来時点の予測データを生成し、生成された予測データに基づいて注文データを生成することができる。
図2で、プロセッサ220は単一のプロセッサとして示されたが、これは説明の便宜のためのものに過ぎず、プロセッサ220は複数のプロセッサを含むことができる。例えば、プロセッサ220は前処理および後処理のためのFPGAで具現された少なくとも一つのプロセッサ、機械学習モデルのためのASICで具現された一つ以上の専用加速器を含むことができる。この場合、FPGAで具現された少なくとも一つのプロセッサは第1メモリに保存された一つ以上のインストラクションを実行し、ASICで具現された一つ以上の専用加速器は第2メモリに保存された一つ以上のインストラクションを実行することができる。
【0063】
図3は、本開示の一実施例に係るプロセッサの内部構成を示す図面である。
図3と
図4では、プロセッサ300がボード(board)の形態で具現されたものとして例示している。例えば、情報処理システム110のプロセッサ220は
図3と
図4のプロセッサ300の形態で具現され得る。他の例として、情報処理システム110のプロセッサ220は
図3と
図4のプロセッサ300を含むことができる。
【0064】
一実施例によると、プロセッサ300はデータ前/後処理のための少なくとも一つのプロセッサ320および機械学習モデルのための専用加速器(例えば、ASICで具現された専用加速器)340を含むことができる。説明の便宜のために、
図3および
図4では、前/後処理のための少なくとも一つのプロセッサ320はFPGA320であり、機械学習モデルのための専用加速器340はNPU340であるものとして説明する。
【0065】
FPGA320はデータ受信部322、データ前処理部324および注文生成部326を含むことができる。
図3でプロセッサの内部構成を機能別に区分して説明するが、これにより必ずしも物理的に区分されることを意味しないことは明らかである。また、
図3で示したFPGA320の内部構成は例示に過ぎず、必須構成のみを示したものではない。
【0066】
一実施例によると、FPGA320のデータ受信部322は一つ以上の証券取引所(例えば、第1証券取引所、第2証券取引所など)からマーケットデータを受信することができる。一実施例において、一つ以上の証券取引所はターゲット証券取引所を含むことができる。ここで、ターゲット証券取引所は注文データを伝送する目的地であって、注文データに基づいて証券の売りまたは買いを進めることができる。
【0067】
マーケットデータは、一つ以上の証券取引所で取引される種目に対するデータを含むことができる。例えば、マーケットデータは証券取引所で取引される種目(のうち少なくとも一部)のオーダーブックを含むことができ、追加的にマーケットデータはターゲット種目に対するデータを含むことができる。例えば、マーケットデータはターゲット種目のオーダーブックの上端、ターゲット種目に対する(有効な)注文リスト、ターゲット種目に関する以前の注文に対するターゲット証券取引所の応答などを含むことができる。
【0068】
データ受信部322はマーケットデータの更新が必要な時ごとにまたは周期的に証券取引所からマーケットデータを受信することができる。一方、証券市場または/およびターゲット証券の変動幅が大きいとマーケットデータの受信回数が多くなり得、証券市場または/およびターゲット証券の変動幅が小さいとマーケットデータの受信回数が少なくなり得る。例えば、ターゲット種目の価格変動幅が大きい場合、データ受信部322はターゲット種目のオーダーブックを含むマーケットデータを単位時間の間により多くの回数で受信することができる。その反対に、ターゲット種目の価格変動幅が小さい場合、データ受信部322はターゲット種目のオーダーブックを含むマーケットデータを単位時間の間に少ない回数で受信することができる。
【0069】
高頻度証券取引では速い速度でデータを処理することが重要であるので、マーケットデータはデータ伝送速度が速いユーザデータグラムプロトコル(User Datagram Protocol:UDP)を通じて受信され得る。ただし、一部の実施例において、必要に応じて(例えば、データの信頼度を確保するために)マーケットデータ受信に他の通信プロトコル(例えば、TCP/IP)が使われ得る。
【0070】
データ前処理部324は、受信された一つ以上のマーケットデータに基づいて機械学習モデルに対する入力データを生成することができる。一実施例によると、データ前処理部324はマーケットデータのうち一つ以上の種目に対する一つ以上の入力特徴を選別して入力データを構成することができる。例えば、データ前処理部324は入力データに含まれる入力特徴を抽出したり選別するための特徴抽出部を含むことができる。
【0071】
一実施例において、入力データに含まれる一つ以上の種目はターゲット種目の市場状況変動の先行指標となり得る種目を含むことができる。例えば、注文の対象となるターゲット種目がA社の株式(現物)種目である場合、A社の株式に関連した先物種目、A社の株式に関連したオプション種目、他の取引所に含まれたA社関連種目、A社に関連した商品(例:原油など)に対する先物種目などに対するデータが入力データに含まれ得る。また、一実施例において、入力データに含まれる一つ以上の入力特徴は、ターゲット種目の市場状況の予測に有意な情報を含むことができる。例えば、入力特徴は市場価格(取引価格)、買い側のオーダーブック上端の価格、数量、売り側のオーダーブック上端の価格、数量、買い希望者数、売り希望者数、オーダーブック上端の次の段階の買い呼び値、オーダーブック上端の次の段階の売り呼び値、オーダーブックに含まれた呼び値の分散など、一つ以上の種目のオーダーブックから抽出できる多様な情報、これを加工した情報および/または情報の信頼度などを含むことができる。入力データの構成は、
図10を参照してより詳細に後述することにする。
【0072】
一実施例によると、データ前処理部324は予め決定された複数の候補バッチサイズのうちいずれか一つを選択し、選択された候補バッチサイズに対応するように機械学習モデルに対する入力データを生成することができる。互いに異なる複数のバッチサイズを含む候補バッチサイズリストが予め生成され得、データ前処理部324は候補バッチサイズリストからいずれか一つのバッチサイズを選択することができる。データ前処理部324は証券注文のための遅延時間(latency)を算出し、算出された遅延時間に基づいてバッチサイズリストから一つのバッチサイズを決定することができる。遅延時間が算出される方法については、
図4および
図5を参照して、詳細に後述することにする。
【0073】
データ前処理部324によって生成された入力データは、機械学習モデルのための専用加速器であるNPU340に伝達されて、機械学習モデル(例えば、DNN)に入力され得る。一実施例によると、NPU340は機械学習モデルの駆動のために特化した特定用途向け半導体(ASIC)で具現され得る。NPU340は機械学習モデルに入力データを入力することに応答して、ターゲット種目に対する予測データを獲得することができる。例えば、NPU340は機械学習モデルに入力データを入力して、一つ以上の未来時点のターゲット種目の価格(例えば、市場価格)を予測した出力データを導き出すことができる。ターゲット種目に対する注文に関連した出力データを導き出す機械学習モデルに関連しては、
図9~
図11を参照して詳細に後述される。
【0074】
注文生成部326は機械学習モデルから出力された予測データの提供を受けることができ、予測データに基づいてターゲット証券取引所での注文データを生成することができる。例えば、注文生成部326は機械学習モデルから推論された未来時点でのターゲット種目の価格変動予測および/または予測価格に基づいて、予め決定された規則によりターゲット種目に対する注文データを生成することができる。具体的な例として、ターゲット種目の価格が上昇すると予測された場合、注文生成部326は直ちに新しい買い要請注文を生成したり、既存の売り要請注文の呼び値を訂正することができる。一実施例によると、注文データはターゲット種目に対する注文の種類(新規注文、注文取り消し、注文訂正)、買いまたは売りの有無、価格(呼び値)、数量などに対する情報を含むことができる。
【0075】
マーケットデータに基づいて注文データを生成するまで情報処理システム内の遅延時間が発生し得る。遅延時間はデータレート(data rate)、FPGA320とNPU340との間の入出力データの帯域幅、入出力データの大きさ、NPU340による機械学習モデルの演算速度、FPGA320の処理速度、または/およびNPU320のビジー(busy)状態に基づいて算出され得る。
【0076】
バッチサイズが大きいほど機械学習モデルの演算速度が遅くなり得るが、遅延時間を考慮せずバッチサイズが大きく設定されると、機械学習モデルでの予測された未来時点の結果が出力時点ではすでに過去となる時点乖離問題が発生し得る。例えば、第1バッチサイズに対応する入力データを機械学習モデルに入力することに対する応答として、T1未来時点に対するターゲット証券の予測データをT1+1時点で獲得した場合、予測データを獲得したT1+1時点ではT1時点がすでに過去となる。このような場合、T1時点の出力データに基づいて注文データを生成することとなると、機械学習モデルの予測結果による収益の予想が困難であり得る。
【0077】
一方、遅延時間を減少させるために、バッチサイズを最も小さくする方法も考慮することができる。ところが、バッチサイズが小さいほど機械学習モデルの予測正確度が低くなり得る。したがって、正確度と期待収益を高めるためにはバッチサイズを大きくするのが有利であり得るが、バッチサイズを過度に大きくする場合、機械学習モデルから獲得された未来時点のデータがすでに過去データとなる時点乖離問題が発生し得る。これに伴い、証券注文のための遅延時間が正確に予測され、時点乖離現象が発生しない許容範囲内で期待収益が最も高いバッチサイズ(例えば、できるだけ大きいバッチサイズ)を決定することが重要であり得る。これに伴い、証券注文のための遅延時間が正確に算出され、算出された遅延時間に基づいて時点乖離現象が発生しない範囲内でできるだけ期待収益が最も高いバッチサイズが選択され得る。
【0078】
図4と
図5を参照して、本開示の一実施例に係る、証券注文のための遅延時間を算出する方法を説明する。
【0079】
図4は、プロセッサと専用加速器で発生する遅延時間を視覚化して例示したものである。
図4に例示された通り、マーケットデータが受信されると、マーケットデータが保存手段(例えば、受信バッファ、メモリなど)に保存される第1サブ遅延時間t1がFPGA320で発生し得る。第1サブ遅延時間t1はデータレート(data rate)またはマーケットデータの大きさのうち少なくとも一つに基づいて算出され得る。例えば、データレートが高いほど第1サブ遅延時間t1は短くなり得、マーケットデータの大きさが大きいほど第1サブ遅延時間t1が長くなり得る。
【0080】
追加的に、保存されたマーケットデータが前処理されて入力データが生成されるのに必要とされる第2サブ遅延時間t2がFPGA320で発生し得る。第2サブ遅延時間t2はバッチサイズの大きさまたは/およびFPGA320の処理速度に基づいて算出され得る。すなわち、データ前処理部324によって、複数の候補バッチサイズの中で入力データに対するバッチサイズが選択され、選択されたバッチサイズに対応する入力データを生成するまで第2サブ遅延時間t2が発生し得る。バッチサイズが大きいほど第2サブ遅延時間t2が増加し得る。また、FPGA320の処理速度が遅いほど第2サブ遅延時間t2が増加し得る。
【0081】
入力データが受信されてメモリにロードされるまで必要とされる第3サブ遅延時間t3がNPU340で発生し得る。第3サブ遅延時間t3は入力データの大きさまたは/およびFPGA320とNPU340との間の入出力帯域幅に基づいて算出され得る。例えば、入出力帯域幅が大きいほど第3サブ遅延時間t3が短くなり得、入力データの大きさが大きいほど第3サブ遅延時間t3が増加し得る。
【0082】
追加的に、ロードされた入力データに基づいて機械学習モデルが演算されるまで必要とされる第4サブ遅延時間t4がNPU340で発生し得る。第4サブ遅延時間t4はNPU340による機械学習モデルの演算速度または/および入力データの大きさに基づいて算出され得る。入力データの大きさが大きいほど第4サブ遅延時間t4が増加し得、機械学習モデルの演算速度が遅いほど第4サブ遅延時間t4が増加し得る。
【0083】
また、機械学習モデルの結果値(すなわち、予測データ)がFPGA320に伝達されるまで必要とされる第5サブ遅延時間t5がNPU340で発生し得る。第5サブ遅延時間t5は予測データの大きさまたは/およびFPGA320とNPU340との間の入出力帯域幅に基づいて算出され得る。例えば、FPGA320とNPU340間の入出力帯域幅が大きいほど第5サブ遅延時間t5が減少し得、予測データの大きさが大きいほど第5サブ遅延時間t5が増加し得る。
【0084】
NPU340から受信した機械学習モデルの予測データ(すなわち、結果値)に基づいて注文データを生成および伝送するまで必要とされる第6サブ遅延時間t6がFPGA320で発生し得る。第6サブ遅延時間t6はFPGA320の処理速度または/およびデータレートに基づいて算出され得る。データレートが高いほど第6サブ遅延時間t6が減少し得、FPGA320の処理速度が高いほど第6サブ遅延時間t6が減少し得る。
【0085】
前述されたサブ遅延時間t1~t6のそれぞれを合算して証券注文のための遅延時間が算出され得る。
【0086】
図5は、証券注文のための遅延時間500を視覚化した図面である。図示された通り、FPGA320または/およびNPU340で発生するサブ遅延時間t1~t6を合算すると、証券注文のための遅延時間500が算出され得る。
【0087】
一方、FPGA320がビジー(busy)状態である場合、FPGA320のビジー状態によるサブ遅延時間が遅延時間500に合算され得る。また、NPU340がビジー状態である場合、NPU340のビジー状態によるサブ遅延時間が遅延時間500に合算され得る。例えば、FPGA320および/またはNPU340のビジー状態による追加されるサブ遅延時間は、FPGA320および/またはNPU340の現在の処理状況および今後処理しなければならない作業を考慮して決定され得る。他の例として、FPGA320および/またはNPU340のビジー状態による追加されるサブ遅延時間は事前に予め設定され得る。
【0088】
機械学習モデルは入力データに基づいて未来時点の証券に対する予測データを出力することができる。これとは異なり、入力データに基づいて互いに異なる未来時点が予測されるように機械学習モデルが設計されて学習され得る。この場合、現在時点を基準とした複数の未来時点は予め決定され得る。
【0089】
図6は、複数の未来時点を視覚化して例示した図面である。
図6の横軸は時間を示すことができる。
図6の(a)でのように低いデータレート環境では単位時間の横幅が相対的に長くなり得、
図6の(b)でのように高いデータレート環境では単位時間の横幅が相対的に短くなり得る。
【0090】
図6に示された通り、機械学習モデルは未来時点でのターゲット種目の価格および/または価格変動の有無を予測するように設計され得る。
図6では時間間隔kが5倍数となる未来時点を予測するものとして例示されている。一実施例によると、プロセッサ(例えば、FPGA)は予め決定された未来時点のそれぞれに対して、各候補バッチサイズ別証券注文のための遅延時間を算出し、算出された遅延時間に基づいて未来時点それぞれに対する候補バッチサイズを選択することができる。この時、プロセッサは複数の予め決定された未来時点のそれぞれに対して、複数の候補バッチサイズの中で、遅延時間の終了時点が複数の予め決定された未来時点のそれぞれより先立つ最も大きい候補バッチサイズを選択することができる。すなわち、プロセッサは特定の未来時点で選択できる複数の候補バッチサイズの中で、遅延時間の終了時点が特定の未来時点より先立つ一つ以上の候補バッチサイズを識別し、識別された候補バッチサイズの中で最も大きい候補バッチサイズを特定の未来時点の候補バッチサイズとして選択することができる。
【0091】
図6では、それぞれの未来時点別に最大値のバッチサイズが選択されるものとして例示されている。
図6を例にして説明すると、5番目(k=5)の未来時点に対しては、遅延時間の終了時点が5番目の未来時点より先立つ候補バッチサイズが「1」と「2」であり、これに伴い、最大値のバッチサイズである「2」が5番目(k=5)の未来時点に対する候補バッチサイズとして選択され得る。他の例として、10番目(k=10)の未来時点に対しては、遅延時間の終了時点が10番目の未来時点より先立つ候補バッチサイズが「4」以下のサイズであり、これに伴い、最大値のバッチサイズである「4」が10番目(k=10)の未来時点に対する候補バッチサイズとして選択され得る。
【0092】
説明した通り、k番目の未来時点に対する機械学習モデルの予測データが有効に使われるためには、予測データに基づいた注文データがk番目の未来時点以前にターゲット証券取引所に伝送されなければならない。ところが、証券注文のための遅延時間が長くなる場合、ターゲット証券取引所に伝送される注文データの伝送時点がk番目の未来時点以後となり得る。この場合、予測された証券種目の価格が有効でなく、特に高頻度証券取引では損失が発生することもある。これに伴い、遅延時間と未来時点に基づいて候補バッチサイズが選択され、選択されたバッチサイズと対応する入力データを生成することが高頻度証券取引で重要となり得る。
【0093】
図7は、候補バッチサイズ別に算出された遅延時間を視覚的に例示した図面である。batch 4からbatch 16に行くほどバッチサイズが大きくなることを示し、第1未来時点から第3未来時点に行くほど現在時点より遠い未来時点であり得る。
図7に例示された通り、それぞれの候補バッチサイズに基づいて複数の遅延時間(latency#1~latency#3)が算出され得る。ところが、第1遅延時間(latency#1)の終了時点がbatch 4に基づいて予測された第1未来時点を経過して、batch 4のサイズに対応する入力データを生成すると機械学習モデルの予測データに基づいた注文データの生成時点が第1未来時点以後であり得る。同様に、第3遅延時間(latency#3)の終了時点がbatch 16に基づいて予測された第3未来時点を経過して、batch 16のサイズに対応する入力データを生成すると機械学習モデルの予測データに基づいた注文データの生成時点が第3未来時点以後であり得る。このような時点の乖離によって、batch 4またはbatch 16に対応する入力データは有効な結果を導き出すことができない場合もある。
【0094】
一方、第2遅延時間(latency#2)の終了時点がbatch 8に基づいて予測された第2未来時点を経過しないので、batch 8のサイズと対応する入力データを生成すると機械学習モデルの出力データが有効となり、正確なタイミングに注文データをターゲット証券取引所に伝送することができる。これに伴い、
図7のように遅延時間が算出される場合、時点乖離現象を発生させていない最大値の候補バッチサイズに該当するbatch 8が選択され得、選択された候補バッチサイズに対応する入力データが生成されて機械学習モデルに入力され得る。
【0095】
一方、プロセッサは複数の専用加速器を含むことができる。この場合、プロセッサは複数の専用加速器のそれぞれの演算時間を考慮して遅延時間を算出し、遅延時間に基づいて候補バッチサイズと機械学習モデルの演算のためのNPUを選択することができる。
【0096】
図8は、各専用加速器のバッチサイズ別に算出された遅延時間を視覚的に例示した図面である。
図8に示された通り、専用加速器1(NPU1)に対する候補バッチサイズ別遅延時間(latency#1、latency#2)が算出され、専用加速器2(NPU2)に対する候補バッチサイズ別遅延時間(latency#3、latency#4)が算出され得る。同一のバッチサイズであっても、専用加速器別に互いに異なる遅延時間が算出される理由は、各専用加速器による機械学習モデルの演算速度または/およびビジー(busy)状態が異なるためであり得る。
【0097】
各専用加速器の候補バッチサイズ別遅延時間に基づいて、プロセッサは機械学習演算を遂行するいずれか一つの専用加速器と候補バッチサイズを選択することができる。
図8に示されたように遅延時間が算出された場合、プロセッサは複数の専用加速器の中で第2専用加速器(NPU2)を機械学習モデルの演算のための専用加速器として選択し、またbatch 8を候補バッチサイズとして選択することができる。このように候補バッチサイズと専用加速器が選択されると、マーケットデータに基づいて候補バッチサイズに対応する入力データが生成され、生成された入力データが選択された専用加速器(NPU2)に提供され得る。
【0098】
以下、
図9~
図11を参照して、機械学習モデルの学習方法と機械学習モデルから獲得される予測データについて説明する。
【0099】
図9は、本開示の一実施例に係る機械学習モデルが入力データ910に基づいて出力データ920を出力する例を示す図面である。一実施例によると、機械学習モデル900は入力データ910に基づいて、ターゲット種目の注文に関連した出力データ920を出力することができる。一実施例によると、機械学習モデルは入力データ910に基づいて未来特定時点でのターゲット種目の予測価格(例えば、市場価格または中間価格等)を出力することができる。他の実施例によると、入力データ910に基づいて複数の未来時点でのターゲット種目の予測価格が出力され得る。この時、機械学習モデル900を利用してマルチホライズン予測(multi horizon forecasting)に基づいて、複数の未来時点それぞれでのターゲット種目の価格が予測され得る。
【0100】
一実施例によると、機械学習モデル900に入力される入力データ910は、一つ以上の時点での一つ以上の種目に対する一つ以上の入力特徴を含む入力特徴マップ(input feature map)を含むことができる。機械学習モデル900の入力データ910に関しては
図10を参照して詳細に後述される。
【0101】
一実施例によると、機械学習モデル900は参照マーケットデータに基づいて生成された参照入力データを利用してターゲット証券取引所での証券注文に関連した参照出力データを推論するように学習され得る。例えば、機械学習モデル900は第1証券取引所の第1参照マーケットデータおよび第2証券取引所の第2参照マーケットデータに基づいて生成された時点tから時点t+M-1までの参照入力データ、時点t+1でのターゲット種目の中間価格データを利用して、総M個の連続した時点を含む時間区間での入力データに基づいて次の時点でのターゲット種目の中間価格を推論するように教師あり学習され得る。
【0102】
一実施例によると、機械学習モデル900は特定時点の特定種目に対するマーケットデータおよび正解データ(ground truth data)を含むトレーニングセットに基づいて、特定時点より未来である複数の時点での特定種目に対する予測データを推論するように学習され得る。ここで、正解データは未来である複数の時点それぞれでの特定種目の価格であり得る。機械学習モデル900から出力された特定の未来時点での特定種目に対する推論価格と、正解データに含まれた特定の未来時点での特定種目に対する価格の差(loss)が算出され、算出された差が機械学習モデル900に反映(フィードバック)されて、人工ニューラルネットワークに含まれた各ノードの加重値が調整され得る。
【0103】
機械学習モデル900により出力された出力データ920はターゲット証券取引所での証券注文に関連した情報を含むことができ、プロセッサ(例えば、情報処理システムのプロセッサ)は出力データ920に基づいて予め指定された規則に基づいて、ターゲット種目に対する注文データを生成することができる。
【0104】
一実施例によると、本開示の機械学習モデル900は人工ニューラルネットワークモデル(例えば、DNNなど)であり得る。人工ニューラルネットワークモデルに関しては、
図11を参照して詳細に後述される。
【0105】
図10は、本開示の一実施例に係る機械学習モデルの入力データ1010の構成の例を示す図面である。情報処理システムは一つ以上の取引所から受信されたマーケットデータに基づいて、入力データ1010を生成することができる。入力データ1010はバッチサイズと対応する大きさを有するデータであり得る。一実施例によると、入力データ1010は一つ以上の時点での一つ以上の種目に対する一つ以上の入力特徴を含む入力特徴マップ(input feature map)を含むことができる。
【0106】
例えば、入力特徴マップは、
図10に示された通り、M個(ここで、Mは自然数である)の時点でのK個の種目に対するN個(ここで、Nは自然数である)の入力特徴を含むことができる。図示された例において、入力データに含まれた入力特徴マップのうち特定時点(
図10で、時点m)でのデータ1020は、特定時点での一つ以上の種目(
図10で、第1種目、第2種目、第3種目など)に対する一つ以上の入力特徴(
図10で、買い側のオーダーブック上端の価格、数量、売り側のオーダーブック上端の価格、数量など)を含むことができる。また、入力データに含まれた入力特徴マップのうち特定入力特徴(
図10で、n番目の入力特徴)に対するデータ1030は一つ以上の時点(
図10で、時点t-M+1から時点tまで)での一つ以上の種目に対する特定入力特徴を含むことができる。一実施例において、入力特徴マップは互いに異なる種目に対する一つ以上の入力特徴が互いに交差するように生成され得る。
【0107】
一実施例によると、入力データ1010に含まれる一つ以上の種目は注文対象となるターゲット種目の市場状況の先行指標となる種目であり得る。例えば、注文の対象となるターゲット種目がA社の株式(現物)種目である場合、A社の株式に関連した先物種目、A社の株式に関連したオプション種目、他の取引所に含まれたA社関連種目、A社関連商品に対する先物種目のうち少なくとも一つが先行となる指標となる種目であり得る。一実施例において、一つ以上の種目はターゲット種目を含むことができる。すなわち、情報処理システムはターゲット種目に対するデータを含んだ入力データに基づいて、ターゲット種目の未来市場状況を予測することができる。また、一実施例において、各入力種目に対する情報は各入力種目に関連したコード(symbol)で含まれ得る。
【0108】
一実施例によると、入力データ1010に含まれる一つ以上の入力特徴はターゲット種目の市場状況の予測に有意な情報を含むことができる。例えば、入力特徴は市場価格(取引価格)、買い側のオーダーブック上端の価格、数量、売り側のオーダーブック上端の価格、数量、買い希望者数、売り希望者数、オーダーブック上端の次の段階の買い呼び値、オーダーブック上端の次の段階の売り呼び値、オーダーブックに含まれた呼び値の分散など、一つ以上の種目のオーダーブックから抽出できる多様な情報、これを加工した情報および/または情報の信頼度などを含むことができる。一実施例において、このような一つ以上の入力特徴は一つ以上の種目それぞれから抽出され得る。
【0109】
前述した通り、構成された入力データ1010はプロセッサ(例えば、FPGAなど)により機械学習モデルのための専用加速器に伝達されて、機械学習モデルに入力され得る。一実施例によると、遅延時間に基づいて未来時点と候補バッチサイズが決定され、決定された候補バッチサイズに対応する入力データ1010が専用加速器に提供され得る。
【0110】
図11は、本開示の一実施例に係る人工ニューラルネットワークモデル1100を示す例示図である。人工ニューラルネットワークモデル1100は、機械学習モデルの一例であって、機械学習(Machine Learning)技術と認知科学で、生物学的ニューラルネットワークの構造に基づいて具現された統計学的学習アルゴリズムまたはそのアルゴリズムを実行する構造である。
【0111】
一実施例によると、人工ニューラルネットワークモデル1100は、生物学的ニューラルネットワークでのように、シナプスの結合でネットワークを形成した人工ニューロンであるノード(Node)がシナプスの加重値を繰り返し調整して、特定入力に対応した正しい出力と推論された出力との間の誤差が減少するように学習することによって、問題解決能力を有する機械学習モデルを示すことができる。例えば、人工ニューラルネットワークモデル1100は機械学習、ディープラーニングなどの人工知能学習法に使われる任意の確率モデル、ニューラルネットワークモデルなどを含むことができる。
【0112】
一実施例によると、人工ニューラルネットワークモデル1100は一つ以上の証券取引所のマーケットデータに基づいて生成された入力データを利用して、未来の一時点でターゲット証券取引所での証券注文に関連したデータ(例えば、価格、価格変動などに対するデータ)を推論するように構成された人工ニューラルネットワークモデルを含むことができる。他の実施例によると、人工ニューラルネットワークモデル1100はマルチホライズン予測(multi horizon forecasting)モデルを含み、複数の未来時点でターゲット証券取引所での証券注文に関連したデータ(例:価格、価格変動などに対するデータ)を予測してもよい。
【0113】
人工ニューラルネットワークモデル1100は多層のノードとこれら間の連結で構成された多層パーセプトロン(MLP:multilayer perceptron)で具現される。本実施例に係る人工ニューラルネットワークモデル1100は、MLPを含む多様な人工ニューラルネットワークモデル構造のうち一つを利用して具現され得る。
図11に示された通り、人工ニューラルネットワークモデル1100は、外部から入力信号またはデータ1110を受信する入力層1120、入力データに対応した出力信号またはデータ1150を出力する出力層1140、入力層1120と出力層1140の間に位置し、入力層1120から信号を受けて特性を抽出して出力層1140に伝達するn個(ここで、nは正の整数)の隠れ層1130_1~1130_nで構成される。ここで、出力層1140は隠れ層1130_1~1130_nから信号を受けて外部に出力する。
【0114】
人工ニューラルネットワークモデル1100の学習方法には、教師信号(正解)の入力によって問題の解決に最適化されるように学習する教師あり学習(Supervised Learning)方法と、教師信号を必要としない教師なし学習(Unsupervised Learning)方法がある。一実施例において、人工ニューラルネットワークモデル1100は、ターゲット証券取引所での証券注文に関連したデータを推論するように教師あり学習および/または教師なし学習され得る。例えば、人工ニューラルネットワークモデル1100は参照入力データから一つ以上の未来時点でのターゲット種目の参照価格を推論するように教師あり学習され得る。
【0115】
このように学習された人工ニューラルネットワークモデル1100は情報処理システムのメモリ(図示されず)に保存され得、通信モジュールおよび/またはメモリから受信されたデータの入力に応答してターゲット証券取引所での証券注文に関連したデータを推論することができる。
【0116】
一実施例によると、ターゲット証券取引所での証券注文に関連したデータを推論するための人工ニューラルネットワークモデルの入力データは、一つ以上の時点での一つ以上の種目に対する一つ以上の入力特徴を含むことができる。例えば、人工ニューラルネットワークモデル1100の入力層1120に入力される入力データは、一つ以上の時点での一つ以上の種目に対する一つ以上の入力特徴に対する情報を含むデータを一つのベクトルデータ要素で構成した、ベクトル1110となり得る。データの入力に応答して、人工ニューラルネットワークモデル1100の出力層1140で出力される出力データは、ターゲット証券取引所での証券注文に関連したデータを示すか特徴化するベクトル1150となり得る。すなわち、人工ニューラルネットワークモデル1100の出力層1140は、一つ以上の未来時点でターゲット証券取引所での証券注文に関連したデータを示すか特徴化するベクトルを出力するように構成され得る。本開示において、人工ニューラルネットワークモデル1100の出力データは、以上で説明された類型に限定されず、一つ以上の未来時点でターゲット証券取引所での証券注文に関連したデータを示す任意の情報/データを含むことができる。
【0117】
このように、人工ニューラルネットワークモデル1100の入力層1120と出力層1140に複数の入力データと対応する複数の出力データがそれぞれマッチングされ、入力層1120、隠れ層1130_1~1130_nおよび出力層1140に含まれたノードの間のシナプス値が調整されることによって、特定入力に対応した正しい出力が抽出されるように学習され得る。このような学習過程を通じて、人工ニューラルネットワークモデル1100の入力データに隠されている特性が把握され得、入力データに基づいて算出された出力データと目標出力との間の誤差が減るように人工ニューラルネットワークモデル1100のノード間のシナプス値(または加重値)が調整され得る。このように学習された人工ニューラルネットワークモデル1100は入力されたデータに応答して、ターゲット証券取引所での証券注文に関連したデータを出力することができる。
【0118】
以下、
図12~
図14を参照して、本開示の一実施例に係る機械学習モデルを利用した証券取引方法について説明する。
【0119】
図12は、本開示の一実施例に係る、証券取引方法1200を説明するためのフローチャートである。
図12に示された方法は、本開示の目的を達成するための一実施例に過ぎず、必要に応じて一部の段階が追加されたり削除され得ることは言うまでもない。また、
図12に示された方法は、情報処理システムに含まれた少なくとも一つのプロセッサによって遂行され得る。説明の便宜のために、
図2に示された情報処理システムに含まれたプロセッサによって、
図12に示された各段階が遂行されるものとして説明することにする。また、プロセッサはデータ前/後処理用第1プロセッサと機械学習モデルのための専用加速器を含む第2プロセッサとを含むものとして説明することにする。ここで、第1プロセッサはFPGAであり得、第2プロセッサはNPUであり得る。
【0120】
第1プロセッサは、証券取引所および/または指定されたウェブサイトのうち少なくとも一つから一つ以上のマーケットデータを受信することができる(S1210)。ここで、マーケットデータは証券取引所で取引される種目に対する取引、評価情報などを含むことができる。例えば、マーケットデータは証券取引所および/またはウェブサイトから収集される一つ以上のターゲット種目に対する取引、評価情報などを含むことができる。
【0121】
引き続き、第1プロセッサはマーケットデータを前処理して機械学習モデルに対する入力データを生成し、第2プロセッサに入力データを提供することができる(S1220)。マーケットデータが前処理されて入力データが生成される具体的な方法については、
図13を参照して説明することにする。
【0122】
その後、第2プロセッサは入力データを利用して機械学習モデルの演算処理を遂行し、これに対する応答としてターゲット種目に対する予測データを獲得した後、獲得された予測データを第1プロセッサに提供することができる(S1230)。例えば、第2プロセッサは第1プロセッサから入力データの提供を受け、入力データを機械学習モデルに入力して、入力データに対して一連の演算を遂行して機械学習モデルの出力データ(予測データ)を獲得することができる。機械学習モデルの予測データには未来時点、ターゲット種目および予想価格に対するデータが含まれ得る。
【0123】
その後、第1プロセッサは第2プロセッサから提供された機械学習モデルの出力データ(予測データ)に基づいて注文データを生成した後、注文データをターゲット証券取引所に伝送することができる(S1240)。例えば、第1プロセッサは予測データに含まれたターゲット種目を買収または売り渡す注文データを生成することができる。この時、第1プロセッサは予測データに含まれた未来時点が到来するかどうかをモニタリングして、未来時点または未来時点よりt秒だけ先立つ時点で生成された注文データをターゲット証券取引所に伝送することができる。他の例として、第1プロセッサは予測データに含まれた未来時点が到来するかどうかをモニタリングして、未来時点または未来時点よりt秒だけ先立つ時点で注文データを生成した後、生成された注文データをターゲット証券取引所に伝送することができる。
【0124】
図13は、本開示の一実施例に係る、マーケットデータの前処理方法1220を説明するためのフローチャートである。マーケットデータが受信されると、第1プロセッサは予め決定された複数の未来時点のうちいずれか一つの未来時点を検証対象として選択することができる(S1310)。一実施例において、第1プロセッサは予め決定された複数の未来時点の中で選択されていない最も近い未来時点を選択することができる。
【0125】
その後、第1プロセッサは選択された未来時点に対する候補バッチサイズ別遅延時間を算出することができる(S1320)。一実施例において、第1プロセッサはデータレート、第1プロセッサと第2プロセッサとの間の入出力データの帯域幅、入出力データの大きさ、第2プロセッサによる機械学習モデルの演算速度、第1プロセッサの処理速度、または/および第2プロセッサのビジー(busy)状態に基づいて候補バッチサイズのそれぞれに対する遅延時間を算出することができる。
【0126】
引き続き、第1プロセッサは算出された遅延時間の終了時点が選択された未来時点を先立つ一つ以上の候補バッチサイズを識別し、識別された候補バッチサイズの中で最大サイズを有するバッチサイズを選択された(すなわち、検証中の)未来時点の候補バッチサイズとして選択することができる(S1330)。これに伴い、一つの未来時点には一つの候補バッチサイズが選択され得る。
【0127】
選択された未来時点に対する候補バッチサイズが選択されると、第1プロセッサは未来時点の候補バッチサイズに対する期待収益を算出することができる(S1340)。ここで、期待収益は注文データを生成するまで単位時間当り予想される収益であり得る。期待収益はクエリ当たり収益率、候補バッチサイズおよび候補バッチサイズに対する機械学習モデルの演算時間に基づいて獲得され得る。例えば、期待収益(profit)は下記の数1を通じて獲得され得る。
【数1】
【0128】
ここで、「price」はクエリ当たり収益率を表し、予め決定された定数と定義され得る。また、bsはバッチサイズを表し、t_dnnは機械学習モデルでの演算時間であって、機械学習モデルの演算速度(すなわち、NPUでの処理速度)または/および入力データの大きさに基づいて算出され得る。
【0129】
未来時点の候補バッチサイズに対する期待収益の算出が完了すると、第1プロセッサは予め決定された未来時点のすべてに対する選択(検証)が完了しているかどうかを判定することができる(S1350)。
【0130】
予め決定された複数の未来時点の中で選択(検証)されていない未来時点が残っているという判定に応答して、第1プロセッサは検証対象に選定されなかった未来時点を検証対象として再び選定することができる(S1360)。引き続き、第1プロセッサは検証対象として選定された他の未来時点を対象に段階S1320からのプロセスを進めることができる。
【0131】
一方、段階S1350の判定結果、予め決定された未来時点の中で選択(検証)されていない未来時点が残っていないという判定に応答して、第1プロセッサは各未来時点で選択された候補バッチサイズの期待収益を識別し、この中で最大収益を有する未来時点の候補バッチサイズを最終的に選択することができる(S1370)。それから、第1プロセッサはマーケットデータを利用して選択された未来時点の候補バッチサイズに対応する入力データを生成し、生成された入力データを第2プロセッサに提供することができる(S1380)。
【0132】
本実施例によると、時点乖離を発生させるバッチサイズが選択されないようにして、不要な演算が機械学習モデルで進行されることが防止され得る。また、本実施例によると、最大収益を収め得る未来時点と候補バッチサイズを選択し、選択された候補バッチサイズに対応する入力データが機械学習モデルに入力されるようにすることができる。
【0133】
追加的にまたは代案として、入力データのデータ正確度(data precision)が事前に設定され得、この場合、第1プロセッサは入力データのデータ正確度に基づいて遅延時間を算出することができる。ここで、データ正確度は入力データが損失せずに保存される尺度を示すものであり得る。例えば、データ正確度100%である場合、入力データが損失せずに完全に第2プロセッサに提供されて機械学習モデルに入力されることを意味し得る。他の例として、データ正確度50%である場合、入力データが1/2に該当するビット(例えば、int8からint4)で量子化されるか2倍で圧縮されて機械学習モデルに入力されることを意味し得る。さらに他の例として、データ正確度50%である場合、1/2に該当するビットで量子化されるかマーケットデータが2倍で圧縮され、量子化されるか圧縮されたマーケットデータに基づいて入力データが生成されることを意味し得る。
【0134】
一実施例によると、第2プロセッサ(例:NPUなど)は入力データのデータ正確度により異なる大きさを有するプロセッシング要素(processing element)を含むことができる。例えば、fixed point 8を有する入力データを処理するためのNPUは、fixed point 8を処理するためのプロセッシング要素を含むことができる。他の例として、fixed point 4を有する入力データを処理するためのNPUは、fixed point 4を処理するためのプロセッシング要素を含むことができる。ただし、fixed point 8を処理するプロセッシング要素の大きさは、fixed point 4を処理するプロセッシング要素の大きさより略二倍程度大きくてもよい。これに伴い、NPUが同じ空間に設置された場合であれば、fixed point 4を処理するプロセッシング要素はfixed point 8を処理するプロセッシング要素より約2倍程度多くてもよい。例えば、fixed point 8を処理するためのプロセッシング要素(例:データ正確度100%)の個数がfixed point 4を処理するためのプロセッシング要素(例:データ正確度50%)より2倍多いと、fixed point 4を処理するためのプロセッシング要素を含んだNPUに入力される入力データのバッチサイズは2倍増加し得る。この場合、fixed point 8を処理するためのプロセッシング要素を含んだNPUおよびfixed point 4を処理するためのプロセッシング要素を含んだNPUで計算に必要なSRAMの大きさと計算に所要する時間は、同一であるか類似し得る。
【0135】
入力データのデータ正確度が小さくなる場合、入力データが完全に機械学習モデルに入力されず、一部損失が発生し得る。これに伴い、予測正確度が低くなり得るが、データ正確度が低い入力データを処理するプロセッシング要素がより多いので、入力データのバッチサイズが増加し得る。すなわち、データ正確度が低くなることにより、低くなった予測正確度はクエリ当たり収益率が落ちるように影響を及ぼし得るが、データ正確度が低くなることによって増えたバッチサイズは期待収益が向上するように影響を及ぼし得る。前記の数1を参照してみる時、期待収益はクエリ当たり収益率が落ちた分だけ落ちるが、増えたバッチサイズ分だけ増加し得る。例えば、データ正確度が1/2となって、クエリ当たり収益率が50パーセントに減少しバッチサイズが2倍に増加したと仮定した時、期待収益は変更されないことがあり得る。
【0136】
一実施例によると、複数の専用加速器が情報処理システムに含まれ得る。このような場合、第1プロセッサは複数の候補バッチサイズのそれぞれに対して、第1専用加速器の演算時間を含む第1遅延時間および第2専用加速器の演算時間を含む第2遅延時間を算出することができる。また、第1プロセッサは複数の予め決定された未来時点のそれぞれに対して、第1遅延時間および第2遅延時間の中で、低い遅延時間の終了時点が複数の予め決定された未来時点のそれぞれより先立つ最も大きい候補バッチサイズを選択することができる。また、第1プロセッサは専用加速器別に区分されて選択された候補バッチサイズに対する期待収益を算出し、期待収益が最も高い候補バッチサイズ、未来時点および専用加速器を識別して選択することができる。期待収益が最も高い候補バッチサイズに対応して生成された入力データは選択された専用加速器(最大収益が予測される専用加速器)に提供され得る。
【0137】
一方、本開示の他の実施例によると、機械学習モデルは複数の未来時点それぞれに対するターゲット種目の予測データを出力することができる。例えば、機械学習モデルは第1時点でのターゲット種目に対する第1予測データ、第2時点でのターゲット種目に対する第2予測データおよび第3時点でのターゲット種目に対する第3予測データを出力することができる。予測データはターゲット証券識別情報、ターゲット価格および期待収益を含むことができる。
【0138】
図14は、複数の未来時点別期待収益を例示的に示す図面である。
図14に示された通り、機械学習モデルは入力データに基づいて複数の未来時点別に期待収益を推論し、各未来時点別期待収益とターゲット種目を含む予測データを出力することができる。ここで、各未来時点でのターゲット種目は互いに同一であり得、または異なり得る。
図14では、アメリカドル(USD)単位で期待収益が表示されている。
【0139】
第1プロセッサは
図14のような複数の未来時点のそれぞれに対する期待収益を含む予測データを獲得し、予測データに基づいて注文データを生成してターゲット証券取引所に伝送することができる。
【0140】
図15は、本開示の他の実施例に係る証券取引方法1500を説明するためのフローチャートである。
図15に示された方法は、本開示の目的を達成するための一実施例に過ぎず、必要に応じて一部の段階が追加または削除され得ることは言うまでもない。また、
図15に示された方法は、情報処理システムに含まれた少なくとも一つのプロセッサによって遂行され得る。また、プロセッサはデータ前処理および後処理用第1プロセッサと機械学習モデルのための専用加速器を含む第2プロセッサとを含むものとして説明することにする。ここで、第1プロセッサはFPGAであり得、第2プロセッサはNPUであり得る。
【0141】
第1プロセッサは証券取引所および/またはウェブサイトから一つ以上のマーケットデータを受信することができる(S1510)。ここで、マーケットデータは証券取引所で取引される種目に対する取引、評価情報などを含むことができる。例えば、マーケットデータは証券取引所および/またはウェブサイトから収集される一つ以上のターゲット種目に対する取引、評価情報などを含むことができる。
【0142】
引き続き、第1プロセッサはマーケットデータに基づいて機械学習モデルの入力データを生成し、専用加速器に入力データを提供することができる(S1520)。例えば、第1プロセッサは事前に設定されたバッチサイズに対応する入力データを生成することができる。他の例として、第1プロセッサは受信されるマーケットデータの頻度および/または大きさによりバッチサイズを決定し、バッチサイズに対応する入力データを生成することができる。
【0143】
その後、第2プロセッサは入力データを機械学習モデルに入力して、機械学習モデルから複数の未来時点それぞれに対するターゲット種目の予測データを獲得することができる(S1530)。例えば、第2プロセッサは第1時点でのターゲット種目に対する第1予測データ、第2時点でのターゲット種目に対する第2予測データおよび第3時点でのターゲット種目に対する第3予測データを機械学習モデルから獲得することができる。予測データには、各未来時点別ターゲット種目に対する期待収益が含まれ得る。
【0144】
その後、第1プロセッサは第2プロセッサから複数の未来時点別予測データの提供を受け、複数の未来時点のうち少なくとも一つを選択することができる(S1540)。一実施例において、第1プロセッサは注文データ生成のための遅延時間を算出し、遅延時間に基づいて複数の未来時点のうち少なくとも一つの未来時点を選択することができる。一例として、第1プロセッサは複数の未来時点の中で遅延時間以後の最も速い未来時点を選択することができる。他の例として、第1プロセッサは遅延時間以後の一つ以上の未来時点を識別し、識別された未来時点それぞれに対する期待収益を識別または算出した後、期待収益が最大の未来時点を選択することができる。例えば、期待収益の算出は予め決定されたアルゴリズムまたは数学式(例:前記数1)に基づいて遂行され得る。他の例として、機械学習モデルからそれぞれの期待収益が算出されて出力され得る。この時、期待収益は予測データに含まれ得る。
【0145】
その後、第1プロセッサは選択された未来時点の予測データに基づいて注文データを生成した後、注文データをターゲット証券取引所に伝送することができる(S1550)。例えば、第1プロセッサは選択された未来時点に対する予測データに含まれたターゲット種目をターゲット価格で買収または売り渡す注文データを生成することができる。この時、第1プロセッサは選択された未来時点が到来するかどうかをモニタリングして、未来時点または未来時点よりt秒だけ先立つ時点で生成された注文データをターゲット証券取引所に伝送することができる。他の例として、第1プロセッサは選択された未来時点が到来するかどうかをモニタリングして、未来時点または未来時点よりt秒だけ先立つ時点で注文データを生成した後、生成された注文データをターゲット証券取引所に伝送することができる。
【0146】
図16は、出力データに基づいて注文データが生成される過程を例示的に示した図面である。機械学習モデルを通じて複数の未来時点(k=5、k=10、…、k=25)に対する予測データが獲得され得る。遅延時間(latency)によって、予測データの中で最も速い未来時点(k=5)を有する予測データは遅延時間範囲を離脱して有効でないものとして処理され得る。有効性がある(すなわち、遅延時間の終了時点が未来時点より先立つ)残りの予測データの中で最も速い未来時点(k=10)を有する第2予測データ(
図16で円で表示された予測データ)が選択され、選択された第2予測データに基づいて注文ロジックが実行されて注文データが生成され得る。他の例として、有効性がある残りの予測データの中で最大の期待収益が予想される未来時点が選択され、選択された未来時点に対する予測データに基づいて注文ロジックが実行されて注文データが生成され得る。
【0147】
さらに他の例として、第1プロセッサは有効な予測データそれぞれを時間の順序に沿って順次利用して、複数個の注文データを生成してターゲット証券取引所に伝送することができる。
図16を例にして説明すると、第1プロセッサは第2未来時点(k=10)で第2予測データに基づいて生成された第2注文データをターゲット証券取引所に伝送することができ、第3未来時点(k=15)で第3予測データに基づいて生成された第3注文データをターゲット証券取引所に伝送することができ、第4未来時点(k=20)で第4予測データに基づいて生成された第4注文データをターゲット証券取引所に伝送することができ、第5未来時点(k=25)で第5予測データに基づいて生成された第5注文データをターゲット証券取引所に伝送することができる。
【0148】
図17は、本開示の一実施例に係る証券取引生成に関連した任意のコンピューティング装置1700の構成図である。例えば、コンピューティング装置1700は情報処理システム120および/またはユーザ端末(図示されず)に関連され得る。図示された通り、コンピューティング装置1700は一つ以上のプロセッサ1720、バス1710、通信インターフェース1730、プロセッサ1720によって遂行されるコンピュータプログラム1760をロード(load)するメモリ1740およびコンピュータプログラム1760を保存するストレージ1750を含むことができる。ただし、
図17には本開示の実施例に関連する構成要素のみが示されている。したがって、本開示が属した技術分野の通常の技術者であれば、
図17に示された構成要素の他に他の汎用的な構成要素がさらに含まれ得ることが分かるであろう。
【0149】
プロセッサ1720はコンピューティング装置1700の各構成の全般的な動作を制御する。プロセッサ1720はCPU(Central Processing Unit)、MPU(Micro Processor Unit)、MCU(Micro Controller Unit)、GPU(Graphic Processing Unit)、NPU(Neural Processing Unit)または本開示の技術分野に広く知られている任意の形態のプロセッサを含んで構成され得る。また、プロセッサ1720は本開示の実施例に係る方法を実行するための少なくとも一つのアプリケーションまたはプログラムに対する演算を遂行できる。コンピューティング装置1700は一つ以上のプロセッサを具備することができる。例えば、コンピューティング装置1700はFPGAで具現されたプロセッサ、ASICで具現された機械学習モデルのための専用加速器(NPU ASIC)を含むことができる。
【0150】
メモリ1740は各種データ、命令および/または情報を保存することができる。メモリ1740は本開示の多様な実施例に係る方法/動作を実行するためにストレージ1750から一つ以上のコンピュータプログラム1760をロードすることができる。メモリ1740はRAMのような揮発性メモリで具現され得るが、本開示の技術的範囲はこれに限定されない。コンピューティング装置1700が複数のプロセッサを含む場合、コンピューティング装置1700は第1プロセッサのための第1メモリおよび第2プロセッサのための第2メモリを含むことができる。この場合、第1プロセッサは第1メモリに保存された一つ以上のインストラクションを実行することによって、前述したデータ前処理または/および後処理を遂行できる。第2プロセッサは第2メモリに保存された一つ以上のインストラクションを実行することによって、機械学習モデルの演算を遂行して予測データを第1プロセッサに提供することができる。
【0151】
バス1710はコンピューティング装置1700の構成要素間の通信機能を提供することができる。バス1710はアドレスバス(Address Bus)、データバス(Data Bus)および制御バス(Control Bus)等の多様な形態のバスで具現され得る。
【0152】
通信インターフェース1730はコンピューティング装置1700の有線/無線インターネット通信を支援することができる。また、通信インターフェース1730はインターネット通信以外の多様な通信方式を支援することもできる。このために、通信インターフェース1730は本開示の技術分野に広く知られている通信モジュールを含んで構成され得る。
【0153】
ストレージ1750は一つ以上のコンピュータプログラム1760を非一時的に保存することができる。ストレージ1750はROM(Read Only Memory)、EPROM(Erasable Programmable ROM)、EEPROM(Electrically Erasable Programmable ROM)、フラッシュメモリなどのような不揮発性メモリ、ハードディスク、着脱型ディスク、または本開示が属する技術分野で広く知られている任意の形態のコンピュータで読み取り可能な記録媒体を含んで構成され得る。
【0154】
コンピュータプログラム1760はメモリ1740にロードされる時、プロセッサ1720に本開示の多様な実施例に係る動作/方法を遂行するようにする一つ以上のインストラクション(instructions)を含むことができる。すなわち、プロセッサ1720は一つ以上のインストラクションを実行することによって、本開示の多様な実施例に係る動作/方法を遂行できる。
【0155】
前述したフローチャートおよび前述した説明は一例示に過ぎず、一部の実施例では異なって具現され得る。例えば、一部の実施例では各段階の順序が変わったり、一部の段階が繰り返し遂行されたり、一部の段階が省略されたり、一部の段階が追加され得る。
【0156】
前述した方法はコンピュータで実行するためにコンピュータ読み取り可能な記録媒体に保存されたコンピュータプログラムで提供され得る。媒体はコンピュータで実行可能なプログラムを継続して保存するか、実行またはダウンロードのために一時保存するものであってもよい。また、媒体は単一または数個のハードウェアが結合された形態の多様な記録手段または保存手段であり得るが、何らかのコンピュータシステムに直接接続される媒体に限定されず、ネットワーク上に分散存在するものであってもよい。媒体の例示としては、ハードディスク、フレキシブルディスクおよび磁気テープのような磁気媒体、CD-ROMおよびDVDのような光記録媒体、フロプティカルディスク(floptical disk)のような磁気-光媒体(magneto optical medium)、およびROM、RAM、フラッシュメモリなどを含んでプログラム命令語が保存されるように構成されたものがあり得る。また、他の媒体の例示として、アプリケーションを流通するアプリストアやその他多様なソフトウェアを供給乃至流通するサイト、サーバーなどで管理する記録媒体乃至保存媒体も挙げられる。
【0157】
本開示の方法、動作または技法は多様な手段によって具現されてもよい。例えば、このような技法はハードウェア、ファームウェア、ソフトウェア、またはこれらの組み合わせで具現されてもよい。本願の開示と関連して説明された多様な例示的な論理的ブロック、モジュール、回路、およびアルゴリズム段階は、電子ハードウェア、コンピュータソフトウェア、または両者の組み合わせで具現されてもよいことを通常の技術者は理解できるであろう。ハードウェアおよびソフトウェアのこのような相互の代替を明確に説明するために、多様な例示的な構成要素、ブロック、モジュール、回路、および段階がそれらの機能的観点で一般的に上記にて説明された。そのような機能がハードウェアで具現されるのかまたはソフトウェアで具現されるのかの有無は、特定のアプリケーションおよび全体システムに課される設計要求事項により変わる。通常の技術者はそれぞれの特定のアプリケーションのために多様な方式で説明された機能を具現してもよいが、そのような具現は本開示の範囲から逸脱させるものと解釈されてはならない。
【0158】
ハードウェアの具現において、技法を遂行するのに利用されるプロセッシングユニットは、一つ以上のASIC、DSP、デジタル信号プロセッシングデバイス(digital signal processing devices:DSPD)、プログラム可能論理デバイス(programmable logic devices:PLD)、フィールドプログラム可能ゲートアレイ(field programmable gate arrays:FPGA)、プロセッサ、制御器、マイクロ制御器、マイクロプロセッサ、電子デバイス、本開示に説明された機能を遂行するように設計された他の電子ユニット、コンピュータ、またはこれらの組み合わせ内で具現されてもよい。
【0159】
したがって、本開示と関連して説明された多様な例示的な論理ブロック、モジュール、および回路は汎用プロセッサ、DSP、ASIC、FPGAや他のプログラム可能論理デバイス、離散ゲートやトランジスタロジック、離散ハードウェアコンポーネント、または本願に説明された機能を遂行するように設計されたものなどの任意の組み合わせで具現されたり遂行されてもよい。汎用プロセッサはマイクロプロセッサであり得るが、代案として、プロセッサは任意の従来のプロセッサ、制御器、マイクロ制御器、または状態マシンであってもよい。プロセッサはまた、コンピューティングデバイスの組み合わせ、例えば、DSPとマイクロプロセッサ、複数のマイクロプロセッサ、DSPコアと連係した一つ以上のマイクロプロセッサ、または任意の他の構成の組み合わせで具現されてもよい。
【0160】
ファームウェアおよび/またはソフトウェアの具現において、技法はランダムアクセスメモリ(random access memory:RAM)、読み取り専用メモリ(read-only memory:ROM)、不揮発性RAM(non-volatile random access memory:NVRAM)、PROM(programmable read-only memory)、EPROM(erasable programmable read-only memory)、EEPROM(electrically erasable PROM)、フラッシュメモリ、コンパクトディスク(compact disc:CD)、磁気または光学データストレージデバイスなどのようなコンピュータ読み取り可能媒体上に保存された命令で具現されてもよい。命令は一つ以上のプロセッサによって実行可能であってもよく、プロセッサ(ら)に、本開示に説明された機能の特定様態を遂行させるようにしてもよい。
【0161】
ソフトウェアで具現される場合、前述した技法は一つ以上の命令またはコードでコンピュータ読み取り可能な媒体上に保存されるかまたはコンピュータ読み取り可能な媒体を通じて伝送されてもよい。コンピュータ読み取り可能媒体は一つの場所から他の場所にコンピュータプログラムの伝送を容易にする任意の媒体を含んでコンピュータ保存媒体および通信媒体の両者を含む。保存媒体はコンピュータによってアクセスされ得る任意の利用可能な媒体であってもよい。非制限的な例として、このようなコンピュータ読み取り可能媒体はRAM、ROM、EEPROM、CD-ROMまたは他の光学ディスクストレージ、磁気ディスクストレージまたは他の磁気ストレージデバイス、または所望するプログラムコードを命令またはデータ構造の形態で移送または保存するために使われ得、コンピュータによってアクセスされ得る任意の他の媒体を含むことができる。また、任意の接続がコンピュータ読み取り可能媒体で適切に使用される。
【0162】
例えば、ソフトウェアが同軸ケーブル、光ファイバーケーブル、撚線、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波のような無線技術を使ってウェブサイト、サーバー、または他の遠隔ソースから伝送されると、同軸ケーブル、光ファイバーケーブル、撚線、デジタル加入者回線、または赤外線、無線、およびマイクロ波のような無線技術は媒体の定義内に含まれる。本願で使われたディスク(disk)とディスク(disc)は、CD、レーザーディスク(登録商標)、光ディスク、DVD(digital versatile disc)、フレキシブルディスク、およびブルーレイディスクを含み、ここでディスク(disks)は普通磁気的にデータを再生し、反面ディスク(discs)はレーザーを利用して光学的にデータを再生する。前記の組み合わせもコンピュータ読み取り可能媒体の範囲内に含まれなければならない。
【0163】
ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、移動式ディスク、CD-ROM、または公知の任意の他の形態の保存媒体内に常駐してもよい。例示的な保存媒体は、プロセッサが保存媒体から情報を読み取ったり保存媒体に情報を記録できるように、プロセッサに連結され得る。代案として、保存媒体はプロセッサに統合されてもよい。プロセッサと保存媒体はASIC内に存在してもよい。ASICはユーザ端末内に存在してもよい。代案として、プロセッサと保存媒体はユーザ端末で個別の構成要素として存在してもよい。
【0164】
以上で説明された実施例が一つ以上の独立型コンピュータシステムで現在開示された主題の態様を活用するものとして記述されたが、本開示はこれに限定されず、ネットワークや分散コンピューティング環境のような任意のコンピューティング環境と連係して具現されてもよい。ひいては、本開示で主題の態様は複数のプロセッシングチップや装置で具現されてもよく、ストレージは複数の装置にわたって同様に影響を受ける場合もある。このような装置はPC、ネットワークサーバー、および携帯用装置を含んでもよい。
【0165】
本明細書では本開示が一部の実施例と関連して説明されたが、本開示の発明が属する技術分野の通常の技術者が理解できる本開示の範囲を逸脱しない範囲で多様な変形および変更がなされ得る。また、そのような変形および変更は、本明細書に添付された特許請求の範囲内に属するものと理解されるべきである。
【符号の説明】
【0166】
110 情報処理システム
120 第1証券取引所
130 第2証券取引所