OrderBook は、買い注文と売り注文で満たされます。更新、新しい注文により、取引が実行される場合があります。
実装の例が見つからないようです。
各注文に ID を与え、注文を 1 つずつチェックすることができます。しかし、何千ものアクティブな注文に対応できるものが必要です。
実行される注文を取得するために価格を並べ替えることができます (重複するため)。しかし、注意して、注文を受けた順序でのみ実行する必要があります:)
考え?
Python のOrderedDictは、スケーラブルな OrderBook の基盤として機能します。価格/時間の優先順位に従って注文が一致するように、価格レベルごとに 1 つの順序付き辞書が必要です。
市場データは通常、時系列でモデル化されているため、現時点ではピコ秒の精度まで上がるタイムスタンプによって自然に順序付けられます。
依存している技術にもよりますが、お金を払ってもかまわない場合は、OneTickを使用します。これは、ブックの深さ/価格レベル、CEP などを備えたオーダーブックが既に組み込まれている時系列 DB です。もっと。
自分で構築したい (または無料の製品に頼る) 場合は、LGPLv3+ ライセンスを持つオープン ソースの時系列データベースである OpenTSDB をご覧ください。もちろん、OneTickよりも遅くなりますが、速度要件に応じて数千(OneTickは数十億を処理)が必要なだけなので、動作する可能性があります.
OrderBook データ モデルに関しては、書籍をどのように正確に使用するかによって異なります。たとえば、複数の価格レベルを気にしますか? 本のトップ?ビッド/アスクを実際の注文と一致させる必要がありますか?
ただし、次のような OrderBook イベントを記録するスキーマの設計から始めることができます。
