カワセミ: 市場の質

カワセミ: 市場の質

市場の健康と成熟は、価格とボリュームだけでは評価できません。その参加者と彼らの関係が…


カワセミ: 市場の質

2020年11月のFTXダイジェストに掲載された記事

市場の健康と成熟は、価格とボリュームだけでは評価できません。その参加者と彼らの関係が、業界がどのような方向に進むかに大きな影響を与えます。取引所、大手マーケットメイカー、一般的な市場参加者について考察し、彼らの相互作用が暗号市場をどのように形成しているかを見ていきます。

この記事では、取引所のマッチングエンジンの物理的制限、これが広範な暗号市場に与える影響、そして暗号市場をより公正で効率的にするためのいくつかの提案について説明します。

取引の物理的限界

何千年もの間、人間は市場をより弾力的で効率的、そしてより迅速にするために努力してきました。物流ネットワークからオンライン決済処理システムまで、レイテンシーの削減を追求することは市場自体と同じくらい古いものです。業界が突破できない障害に直面したとき、何が起こるのでしょうか?シリコンの発見とその応用により、情報の伝播速度を光の速度に近づけることができました。これ以上速くすることはできません。

ユーロネクストのマッチングエンジンで働いた経験から、ハードウェアの物理的限界を最大限に活用し、より高速なマッチングエンジン(ME)を開発する方法を理解しました。

MEは、取引所の心臓部です。高度に熟練したマラソン選手は、遅いが強い心拍を持ち、非常に多くのことを行うことができます。すべての心拍は、組織や筋肉に栄養を届けるための効率と速度を最適化されています。同様に、MEは取引操作を効率的かつ迅速に解決し、結果として得られた情報が取引所のインフラの正しい部分に信頼性と弾力性を持って伝達されるようにします。MEのレイテンシーは、取引所のチームが懸命に働くおかげで年々低下していますが、一部の古いリーダーは基盤を固め、トロフィーに座って、日々顧客を失っています。

「上に行かないなら、下に行く」

上に行くために下に行こう: CPU 101の神秘を解く

2000年代中頃は、ムーアの法則の時代の終わりを示しており、高周波ハードウェアへのアップグレードが自動的なパフォーマンス向上をもたらしていました。代わりに、業界はパフォーマンス向上がより多くの実行ユニット(コア)を追加することから来るモデルに移行しました。しかし、マルチコアアーキテクチャを活用するには、追加の開発とテストの努力が必要であり、単純にスレッドを追加するナイーブなアプローチは、スケーラビリティの期待に応えることができません。なぜでしょうか?

「1つの中央処理装置(CPU)は1つのタスクに非常に優れていますが、多くのCPUはデフォルトではチームとしては優れていません。」

CPUは、処理ユニットとメモリユニットで構成されています。1つのCPUコアは、その周波数速度で命令を実行するように組織されています。例えば、3 GHzのCPUは、各命令を0.333ナノ秒で処理します(1,000,000,000ナノ秒 = 1秒)。半導体技術(ナノメートル単位)は、物理的な限界を決定します。

現実ははるかに複雑です。私たちは、命令とデータがすでにCPUの物理レジスタに格納されており、それがCPUの周波数と同じ速度で動作すると仮定しています。実際には、命令とデータはマルチレイヤキャッシュメモリアーキテクチャ(L1/L2/L3)に格納されています。CPUの処理ユニットに物理的に近いほど、最速かつ最小になります。したがって、L1キャッシュが最も速く、最も小さいです。図1は、マルチコアCPUのマイクロアーキテクチャと各キャッシュレベルのサイズ/速度を示しています。

図1: マルチコアCPUマイクロアーキテクチャ

レイテンシーが長くなり、サイクルが消える理由を理解するためには、マルチコアCPUシステムに適用されるユニバーサルスケーラビリティ法則の基本を理解する必要があります。スケーラビリティに影響を与える主なパラメータは次のとおりです。

• コアリソースの競合: 例えば、ハイパースレッディングによるものです。複数のソフトウェアスレッドが同じ実行ユニットに同時にアクセスしようとし、そのため処理が直列化され、優先順位が付けられます。

• キャッシュメモリの競合: これは、オペレーティングシステムのコンテキストスイッチの際に、同じコアのプライベートキャッシュメモリ(L1/L2)に競合が発生する場合や、問題のサイズがプライベートキャッシュメモリに格納できないほど大きい場合に発生します。この現象はキャッシュスラッシングと呼ばれます。マルチコアでは、キャッシュスラッシングはコア間の共有L3キャッシュ(またはLLC最後のレベルキャッシュ)で発生します。したがって、影響は数百ナノ秒のレイテンシーの損失となります。この問題を解決するには、データのローカリティを改善し、メモリ帯域幅の利用を向上させながら、CPUコアがローカル計算を行うために忙しくなるようにするインテリジェントなソフトウェアが必要です。これは非常に難しい問題であり、今日のところ簡単な解決策はありません。

• キャッシュの整合性: これは、ソフトウェアの同期(ミューテックス、バリアなど)や両方のコアによる同じメモリ領域へのアクセスがある場合に、コア間でシームレスな通信を可能にするハードウェアメカニズムです。単純なキャッシュの整合性(1つのキャッシュライン)は、少なくとも600サイクルのコストがかかります。

マッチングエンジンが受ける負荷

CPUの制限を考慮すると、取引所は自らの運営を管理する必要があります。まず、取引所はトレーダーのポジションを管理しなければなりません。これは、高いボラティリティの市場エピソード中に大量の清算が発生する際に流動性リスクにさらされることを意味します。取引所は、大量清算が発生した際に他の市場参加者に波及効果を避ける方法でそれらのポジションの清算を管理する傾向があります。また、市場ルールを施行し、取引のバックログを管理して、サービスの弾力性と一貫性を確保する必要があります。

99パーセンタイルは、特定のタスクに対して与えられた時間間隔内で評価されたクエリの中で、最も高いレイテンシー値の上位1%を表します。弾力性があり効率的なソフトウェアは、99パーセンタイルによって評価され、これが広告されたレイテンシーの閾値となります。取引所のマッチングエンジンは、どれだけ優れたコードであっても、常にこれらのレイテンシーに制限され、ユーザーのための総取引スループットが制限されます。取引所が1秒あたりの取引数に上限を設けている場合。

これは、MEが管理するためのマッチング指示ごとに数千の操作が加算されます。彼らはまた、多くの金融商品を提供し、毎秒何百万ものメッセージを処理するというビジネス上の制約もあります。

アーキテクチャの観点からスケーラビリティと安定性を達成するには?

MEは、高度に相互接続されたワークフロー計算プロファイルであり、複数のソースからのデータを組み合わせ、モジュール間の通信頻度と相互依存関係が高く動的です。スレッドの同期とスケジューリングは、動的かつ迅速に行う必要があります。

リアクティブソフトウェアは、リアクティブマイクロサービスとファイングレインリアクティブアプリケーション(1つのプロセス)の両方を構築するための設計哲学とパラダイムシフトです。非同期メッセージパッシング設計に基づいて、リアクティブソフトウェアをゼロから構築するための多数の同時プログラミングモデルが存在します。アクターモデルは、そのような戦闘実績のあるプログラミングモードの1つです。

アクターは非常に効率的な概念であり、開発から生産までのライフサイクル全体をサポートします。機能的な概念に直接マッピングされることで、アクターはビジネスと機能アーキテクチャの間の距離を短縮します。彼らは、開発者間での作業の分割に十分な粒度でロジックをカプセル化し、テストのために直接使用可能な概念であり、利用可能なハードウェアとアプリケーションの負荷に基づいてトポロジーを動的に決定することを可能にします。

これらの操作を受け取るMEは、利用可能なCPUコア間で必要な計算を分配します。コアが満杯の場合、データは上位のキャッシュレベル、マザーボードソケット、または最悪の場合、RAMに戻され、ハードウェアリソースに送信されます(これは他のコンポーネントに到達する必要があるため、最もコストがかかります)。

コアが負荷をバランスさせるために同期する必要があるたびに、「レイテンシー料金」を支払います。コアを追加すればするほど、データを分散させることができますが、支払うレイテンシー料金も増えます。この料金は指数関数的に増加します。これが主に、取引所が単にサーバーを購入することでスケールできない理由であり、また、彼らが自らの成功の犠牲者になる理由でもあります。レイテンシーの臨界点は、エントロピーが発生し、多くのコアにデータが広がり、互いにデータを待つ約束をする時に打撃を受けます。

エンジニアが使用する戦略は、各コアを特定の役割に専念させ、他のことを決して行わないようにし、データや命令が過剰にならないようにし、入力からの同期やランダム性をできるだけ避けることです。これを達成するためには、研究にお金をかけるか、メモリアロケーションとコア制御を管理するソフトウェアに投資する必要があります。そして特に、CPU時間のバイトを無駄にしない厳格なエンジニアが必要です。

ジレンマ:

取引所と市場全体は、ジレンマに直面しています: スピードとレイテンシーの制限をより明確にする代償として負荷を増加させること。

売り手側:

売り手側(取引所)の観点から見ると、エントロピーをより良く管理するためのソリューションを開発するために多くのお金を費やしています。レイテンシーのジレンマを理解し、顧客基盤の成長によって生じるエントロピーを理解する才能ある開発者が必要です。物理法則によって設計の限界が達成されると、どんなミスも積み重なり、すぐに痛みを伴うものとなり、開発能力が制限され、イノベーションが新たなレイテンシーコストを生むことへの恐れから殺されることになります。取引所は、正当な市場参加者によって引き起こされる分散型サービス拒否攻撃に類似したMEの故障リスクを減らす必要があります。

これらのリスクを軽減するために、彼らはレート制限を適用し、どの命令が最良のビジネス機会をもたらすかを優先します。CPUとレイテンシーは物理学と数学です。研究、厳密さ、そして「公正さ」の概念は人間の裁量に委ねられています。もし全員を遅くすれば、ほとんどのトレーダーにとって市場はより非効率的になります。これにより、リソースを持つ者(低レベルのコーディングエンジニア、展開するための資本、研究チーム、ボリューム)に有利になります。もう一つ言及すべき点は、法的理由から、各操作は数ミリ秒後に注文をキャンセルする場合でも保存されなければならないということです。HFT(高頻度取引)企業は、主に取引所に対して無駄なリソースをかけて高い負荷をかけます。

買い手側

買い手側(顧客の観点)では、無制限のMEがより良い戦略、より多くの競争、より効率的な市場、取引所間のより良いアービトラージ機会、そして他のすべての人と同じペースで流動性にアクセスできる低ボリュームトレーダーにとってより公正な市場を可能にします。

顧客の数が増えると、MEは遅くなり、ほとんどのトレーダーを排除します。取引所のサーバーの地理的近くにサーバーを購入することで、特定の市場参加者が特定の価格パターンを送信できるようになり、これは規制当局や取引所の観点から特に興味深いものです。高いボラティリティの期間中、HFTは主に競合他社の流動性を消費し、オーダーフローを通過する非HFTの受動的な注文を吸収します。テイカーは情報を持ったトレーダーとして行動し、そのオーダーフローは他の参加