7章リアルタイムデータとソケットを扱う

宇宙の秘密を知りたければ、エネルギー、周波数、振動の観点から考えなさい。

—ニコラ・テスラ

トレードアイディアの開発とバックテストは、かなり非同期的であり重要ではないプロセスであり、複数のステップが繰り返されたり、繰り返されなかったりします。その間、資本が危険に晒されることはなく、最も重要な要件はパフォーマンスとスピードではありません。トレード戦略を展開するためにマーケットに目を向けると、そのルールは大きく変わります。データはリアルタイムで大量に届くため、データのリアルタイム処理と、ストリーミングデータに基づいたリアルタイムの意思決定が必要になります。この章では、リアルタイムデータを用いた処理について説明します。リアルタイムデータに対しては、技術的なツールとしてソケットを使用することが一般的です。その中で、中心となる専門用語について少しご紹介します。

ネットワークソケット
コンピュータネットワークにおける接続のエンドポイントで、単にソケットとも呼ばれる。
ソケットアドレス
インターネットプロトコル(IP)アドレスとポート番号の組み合わせ。
ソケットプロトコル
TCP(Transfer Control Protocol)のように、ソケット通信を定義して処理するプロトコル。
ソケットペア
相互に通信するローカルソケットとリモートソケットの組み合わせ。
ソケットAPI
ソケットとその通信を制御するためのアプリケーション・プログラミング・インターフェース。

この章では、軽量、高速、かつスケーラブルなソケットプログラミングライブラリとして、ZeroMQ(https://zeromq.org)の使い方を中心に説明します。ZeroMQは複数のプラットフォームで利用可能で、最も人気のあるプログラミング言語のラッパーが用意されています。ZeroMQはソケット通信のためのさまざまなパターンをサポートしています。それらのパターンの1つはいわゆる ...

Get Pythonからはじめるアルゴリズムトレード ―自動売買の基礎と機械学習の本格導入に向けたPythonプログラミング now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.