web-dev-qa-db-ja.com

高周波取引

ここ数週間で、私は高頻度取引に関する多くの記事に出くわしました。彼らはすべて、コンピュータとソフトウェアがこれにどれほど重要であるかについて話しますが、それらはすべて財務的な観点から書かれているため、ソフトウェアが何をするかについての詳細はありませんか?

誰もがプログラマーの観点から高頻度取引とは何かを説明できますか?そして、なぜこの分野でコンピュータ/ソフトウェアがそれほど重要なのですか?

58
Hamza Yerlikaya

パウロが言ったことをさらに詳しく説明します。

HFTまたはUHFTを実行するサーバーは、ほとんどの場合、取引所のデータセンターに配置されます。これにより、レイテンシーが最小限に抑えられ、アルゴがFlash注文(間もなく禁止される可能性があります)を使用して、注文が市場にブロードキャストされる前に注文フローを最初に確認できます。多くのアルゴは数ミリ秒で注文を評価しますが、これはミリ秒が重要なゲームです。取引グループは、注文がNIC)に到達してから結果としてアクションが実行されるまでの時間をより最適化するために、カーネル開発者を雇ってカスタムOSコンポーネントを構築するなど、あらゆるストップを引き出すことが知られています。

今日一般的に使用されている戦略の大きなバケットがいくつかあります:

最初は大きなブロック注文の前での取引です。 IBMの100万株を購入するPaulの例を使用するために、HFTアルゴは購入圧力を模索します。注文は分割され、通常は複数の取引所とダークプールにまたがって実行されるため、異なる取引所とダークプールにあるコンピューターは情報を共有する必要があります。 HFTアルゴは、統計的/機械学習モデルを使用して購入圧力の大きさを予測し、十分であると判断した場合は、市場全体からの株式も蓄積し、わずかに高い価格でそれらを販売しようとします。

2つ目は、取引所が市場参加者に支払って流動性を追加するリベートリベート取引です。 ( Direct Edge Pricingを参照 )購入または売却された株式は、非常に短い期間しか保有されない場合があります。目標は、リベートを収集して、他のすべてのものでさえ破ることです。

これらの戦略タイプの両方でのアイデアは、トレードでペニー(または分数)を作成し、これを1日に何度も行うことです。

お気づきかもしれませんが、利用可能なHFTジョブがたくさんあるため、取引はより混雑します。私はこれを2000年代初頭のstat arbのようなものと見なしており、非常に多くのプレイヤーがそれを作ろうとしているため、最終的にはトレードはあまり利益を生みません。

ソフトウェアが重要である理由については、ミリ秒が重要です。レイテンシは非常に重要であり、コードはタイトで高速で、安定した安定している必要があります。アルゴがクラッシュし、市場があなたに逆らったときに株に捕まることは、あまり有益ではありません。これらの要件に対するエンジニアリングは必然的に異なり、異なるスキルが必要です。注文書全体をリアルタイムで処理するには、ある程度の処理能力と優れたアルゴリズムが必要です。でも面白くて面白いです。

60
Steve Severance

HFTシステムには2つの部分があります。

  1. リアルタイムの超低レイテンシトレーディング-さまざまなソースからのリアルタイムオーダーブックと価格情報を購読し、最小限のスリッページで大量注文を実行するように設計された調整済みアルゴリズムを実行します(つまり、最終的に100万株のIBMを購入したいその日の市場をあまり動かさないで)、または単に短期的な裁定取引に基づいて統計的にお金を稼ごうとすることです。このシステムはまた、1人以上の人間のオペレーターがシステムの動作を効果的に監視および制御できるように、優れたリスクおよび位置管理ツールを提供する必要があります。

  2. リアルタイムで実行される最適なアルゴリズムを最適化および「検索」するために、大量の「ティックデータ」(価格、時間、注文帳の情報、およびシステムの以前の取引活動の履歴データ)の夜間/毎週などの分析パート1による時間。つまり、#1で実行されるアルゴリズムを「調整」してテストします。

1つ目は、低レイテンシと市場への非常に優れたアクセス(つまり、最小限のホップでの取引所への直接ネットワーク接続)を必要とします。この部分は通常、CやC++などの非GC言語で記述する必要があります(ガベージコレクターが世界を停止するまでの0.5秒の遅延は非常にコストがかかる可能性があります)。 2番目は通常、グリッドと多数の優れたシミュレーションおよび統計分析ソフトウェア、AIアルゴリズムなどを必要とします。

20

この種類の取引で最も一般的なアプリケーションはCEP(複雑なイベント処理)である傾向があることを付け加えておきます。いくつかの例は、Streambase、Apama、およびAleriです。一方、大量のデータを処理するために、人々はKDB、OneTick、Vhayuなどの高速データベースを使用します。

技術的な課題の種類を理解したい場合は、まずこれらのベンダーを検討することをお勧めします。彼らのマーケティング資料はあなたにビジネスアプリケーションと技術的な挑戦の良い感覚を与えます。

8
Shane

特定の時間(たとえば、先物満期)では、1分間に数千回の取引を行う必要があります。明らかに、人間がこれを支援せずに行うことはできません。このBTWは、プログラマにとって非常にストレスの多い時間です。何かがうまくいかなかったとしても、回復の可能性はほとんどありません。

7
anon

あなたは価格を追跡し、何が上下しているかを素早く決定し、それに応じて売買する必要があります。さまざまなポジションがたくさん取引されているので、その分析と取引の実行に使用するより優れたソフトウェアを取引することで、より多くのお金を稼ぐことができます。

Betterは、頻繁にデータを更新することを意味します。興味深い傾向をすばやく特定できるように特定し、頻繁に必要な操作を実行するときに簡単に使用できるようにします。

3
sharptooth

なぜこの分野でコンピュータ/ソフトウェアがそれほど重要なのですか?

物事への反応が速ければ速いほど、より多くのお金を稼ぐことができるので、最高のパフォーマンスと最低の待ち時間が望ましいです。

1
xyz