高頻度取引(HFT)とアルゴリズムの速さについて聞いているときはいつも。しかし、私は疑問に思っています-最近は何が速いですか?
更新
私は、取引所と取引アプリケーションを実行しているサーバーとの間の物理的な距離に起因する待ち時間については考えていませんが、プログラム自体によってもたらされる待ち時間について考えています。
より具体的に言うと、アプリケーションでワイヤに到着するイベントから、そのアプリケーションがワイヤで注文/価格を出力するまでの時間はどのくらいですか?つまりtick-to-trade時間。
ミリ秒未満の話ですか?それともサブマイクロ秒ですか?
人々はどのようにしてこれらのレイテンシーを達成しますか?アセンブリのコーディング? FPGA?古き良きC++コード?
更新
最近、ACMに関する興味深い記事が公開され、今日のHFTテクノロジーに関する多くの詳細が提供されています。
あなたは非常に良い答えを受け取りました。ただし、問題が1つあります。ほとんどの交渉は秘密です。あなたはそれがどれほど速いかを知らないだけです。これは両方の方法に当てはまります-彼らが望んでいないので、いくつかは彼らがどれほど速く働くかあなたに言わないかもしれません。他の人は、多くの理由で「誇張」することができます(投資家やクライアントを引き付けます)。
たとえば、ピコ秒に関する噂はかなりとんでもないです。 10ナノ秒と0.1ナノ秒はまったく同じものです。注文がトレーディングサーバーに到達するのにかかる時間がそれよりもはるかに長いためです。
そして、最も重要なことは、あなたが求めたことではありませんが、アルゴリズム的に取引しようとする場合、より速くしようとせず、より賢くしようとすることです。数秒のレイテンシを処理し、たくさんお金を稼ぐことができる非常に良いアルゴリズムを見てきました。
私は、FPGAベースのHFTシステムを製造および販売する小さな会社のCTOです。 Solarflare Application Onload Engine(AOE)の上にシステムを構築することで、ワイヤ上の「興味深い」市場イベント(ICEまたはCMEからの10Gb/S UDP市場データフィード)の最初のバイトまでの遅延を一貫して提供しています。 750〜800ナノ秒の範囲(はい、サブマイクロ秒)でワイヤにヒットする結果の注文メッセージ。次のバージョンのシステムは、704〜710ナノ秒の範囲になると予想されます。一部の人々はわずかに少ないと主張しているが、それはラボ環境にあり、実際にはシカゴのCOLOに座って注文を清算しているわけではない。
物理学と「光の速度」に関するコメントは有効ですが、関係ありません。 HFTに真剣な人は誰でも、交換機のサーバーの隣の部屋にあるCOLOにサーバーを持っています。
このサブマイクロ秒のドメインに入るには、FPGAへのフィードストラテジー実装コマンドを除いて、ホストCPUで多くのことを行うことができません。カーネルバイパスなどの技術を使用しても、1.5マイクロ秒の避けられないオーバーヘッドがあります... FPGA。
他の回答の1つは、この非常に機密性の高い市場では、使用するツールやパフォーマンスについて話す人はほとんどいないと非常に正直に言っています。私たちのクライアントは皆、彼らが私たちのツールを使用していることを誰にも言わず、彼らがそれらをどのように使用するかについて何も開示しないことを要求します。これはマーケティングを難しくするだけでなく、同僚間の技術知識の良好な流れを実際に妨げます。
市場の「邪悪な」部分にエキゾチックなシステムを導入する必要があるため、クアンツ(私たちが高速化するアルゴリズムを考え出す人々)は、アルゴリズムをイベントからイベントに分割していることがわかります。応答時間レイヤー。テクノロジーヒープの最上部にあるのは、サブマイクロ秒システム(私たちのシステムなど)です。次の層は、カーネルバイパスを多用するカスタムC++システムで、3〜5マイクロ秒の範囲です。次のレイヤーは、10Gb/Sワイヤーで「エクスチェンジ」から1ルーターホップだけ離れることができない人々です。彼らはまだCOLOにいる可能性がありますが、「ポートルーレット」と呼ばれる厄介なゲームのために数十から数百マイクロ秒のドメイン。ミリ秒になると、もうHFTではなくなります。
乾杯
Nasdaqについていく場合は、「サブ40マイクロ秒」。この図はここに公開されています http://www.nasdaqomx.com/technology/
HFTの状態(2011年)を説明し、ナノ秒を達成できるハードウェアソリューションのサンプルを提供する優れた記事: Wall Streets Need For Trading Speed:The Nanosecond Age
最低の「待ち時間」を求める競争が続いているため、一部の市場参加者はピコ秒-兆分の1秒について話しています。
編集:として ニコラス 親切に言及:
このリンクには、740ns(つまり、入力イベントが発生してから注文が送信されるまでの時間)で「取引を準備する」ことができるFixnetixという会社が記載されています。
TIBCOのFTLメッセージング製品 は、マシン(共有メモリ)内で500 ns未満であり、データセンター内でRDMA(リモートダイレクトメモリアクセス)を使用して数マイクロ秒です。その後、物理学が方程式の主要部分になります。
そのため、フィードから意思決定を行うアプリにデータを取得できる速度です。
少なくとも1つのシステムが〜30nsのスレッド間メッセージングを要求しており、これはおそらく調整されたベンチマークであるため、低い数値について話している人は何らかのマジックCPUを使用しています。
アプリを起動すると、プログラムがどれだけ速く意思決定を行えるかが問題になります。
ここでのすべての回答は少なくとも4年前のものであり、2018年にHFT /アルゴリズム取引分野の誰かからの視点と経験を共有すると思いました。
(これは、これらの回答のどれもが間違いなく最も悪いというわけではありませんが、より最新のトピックに関する洞察を提供する必要があると思います)。
最初の質問に直接答えるために:私たちは約3,000億分の1秒(300ナノ秒)を話している。これは導入されたレイテンシーであることを思い出してくださいプログラムによる自体。
システムのレイテンシに関しては、常に企業ごとにある程度の差異がありますが、ここで提供する数値は、内部HFTエンジンレイテンシの一般的な値です。
問題は、どのくらいの速さ高頻度取引システムであり、関連するハードウェアに関してインフラストラクチャがどのように見えるかです。この技術は2014年から進歩しましたが、この分野で文献が議論していることの多くに反して、FPGAは必ずしもHFT分野の大企業にとって最適な選択肢ではありません。 Intel や Nvidia などの大企業は、これらの企業に特化したハードウェアを提供し、取引システムから必要なものをすべて入手できるようにします。 Intelを使用すると、明らかにCPUとCPUによって実行される計算の種類を中心にシステムが構築され、Nvidiaを使用すると、システムはよりGPU指向になります。
フィールドプログラマブルゲートアレイ(FPGA)上のシステムでは、VerilogやVHDLなどの言語が一般的に使用されます。ただし、FPGAシステムであってもすべてがアセンブリに含まれるわけではなく、そのほとんどがインラインアセンブリが組み込まれた高度に最適化されたC++です。これは、あらゆる種類のハードウェア(FPGA、専用のIntelシステムなど)を使用している企業の場合です。
しかし、 ここで一番上の答え が完全に間違っていると述べているのは不幸です:
10ナノ秒と0.1ナノ秒はまったく同じものです。なぜなら、注文が取引サーバーに到達するのにかかる時間はそれよりもはるかに長いからです。
高頻度取引のコロケーションの側面が完全に標準化されているため、これは完全に間違っています。Everyoneは、あなたと同じようにマッチングエンジンに近いしたがって、システムの内部遅延は非常に重要です。
最近では、マイクロ秒単位の1桁のティックトゥトレードが、競争力のあるHFT企業にとっての障壁となっています。ソフトウェアのみを使用して上位1桁を実行できる必要があります。その後、ハードウェアを追加して5 usec未満にします。
高頻度取引に関するウィキペディアのページ によると、遅延はマイクロ秒です:
1998年に米国証券取引委員会(SEC)が電子取引を承認した後、少なくとも1999年以降、高頻度取引が行われました。21世紀の変わり目に、HFT取引の実行時間は数秒でした。ミリ秒やマイクロ秒にまで減少していました。
em-w/lightの速度制限のため、数マイクロ秒未満になることはありません。1km以内にいなければならない幸運な数人だけがそれに近づくことを夢見ることさえできます。
また、コーディングはなく、その速度を達成するために物理的に移動する必要があります..(300nsスイッチを備えた記事を持っている人;それはそのスイッチの追加レイテンシーに過ぎません!銅で)