この本は、MLが実用的でありながら包括的な方法でアルゴリズム取引戦略にどのように価値を付加できるかを示すことを目的としています。線形回帰から深層強化学習まで、幅広いML手法をカバーし、モデル予測によって駆動される取引戦略を構築、バックテスト、および評価する方法を示します。
23の章と付録を含む800つの部分で、<>ページ以上をカバーしています。
このリポジトリには、本で説明されている概念、アルゴリズム、ユース ケースを実行に移した 150 を超えるノートブックが含まれています。それらは、以下を示す多数の例を提供します。
本を読みながらノートブックを確認することを強くお勧めします。これらは通常、実行状態にあり、多くの場合、スペースの制約のために含まれていない追加情報が含まれています。
このリポジトリの情報に加えて、本のWebサイトには、章の概要と追加情報が含まれています。
読者が本の内容やコード例、および独自の戦略や業界の発展の開発と実装について簡単に質問できるように、オンラインプラットフォームをホストしています。
私たちのコミュニティに参加して、取引戦略にMLを活用することに関心のある仲間のトレーダーとつながり、あなたの経験を共有し、お互いから学んでください!
何よりもまず、この本は、さまざまなデータソースのセットからシグナルを抽出し、教師あり、教師なし、および強化学習アルゴリズムの幅広いを使用して、さまざまな資産クラスの取引戦略を設計する方法を示しています。また、アルゴリズムのチューニングや結果の解釈を容易にするための関連する数学的および統計的知識も提供します。さらに、市場およびファンダメンタルデータの操作、有益な機能の抽出、および取引戦略のパフォーマンスの管理に役立つ財務的背景をカバーしています。
実用的な観点から、第2版は、独自のMLベースの取引戦略を開発するための概念的な理解とツールを提供することを目的としています。この目的のために、MLをスタンドアロンの演習ではなくプロセスの重要な要素として組み立て、データソーシング、特徴エンジニアリング、モデル最適化から戦略設計とバックテストまでの取引ワークフローのためのエンドツーエンドのMLを導入します。
具体的には、ML4Tワークフローは、明確に定義された投資ユニバースのアイデアを生成し、関連データを収集し、有益な特徴を抽出することから始まります。また、予測タスクに適した ML モデルの設計、調整、評価も含まれます。最後に、モデルの予測シグナルに基づいて行動するための取引戦略を開発し、バックテストエンジンを使用して履歴データのパフォーマンスをシミュレートおよび評価する必要があります。実際の市場でアルゴリズム戦略を実行することを決定したら、新しい情報と変化する環境を組み込むために、このワークフローを繰り返し繰り返すことに気付くでしょう。
第 4 版では ML100t ワークフローに重点が置かれており、戦略のバックテストに関する新しい章、<> を超えるさまざまなアルファ要素を説明する新しい付録、および多くの新しい実用的なアプリケーションが実現します。また、既存のコンテンツのほとんどを、わかりやすく読みやすくするために書き直しました。
取引アプリケーションは、国際株式やETFなど、毎日の米国株価を超えて幅広いデータソースを使用するようになりました。また、分頻度の株式データを使用した日中戦略にMLを使用する方法も示します。さらに、代替データソースの範囲を拡大して、感情分析と収益予測のためのSECファイリング、および土地利用を分類するための衛星画像を含めます。
第2版のもう一つの革新は、最近トップジャーナルに掲載されたいくつかの取引アプリケーションを複製することです。
すべてのアプリケーションは、pandas 1.0やTensorFlow 2.2などの利用可能な最新のソフトウェアバージョンを使用するようになりました。取引戦略を設計するときに機械学習モデルの予測を簡単に含めることができるZiplineのカスタマイズされたバージョンもあります。
コード例は、データ サイエンスと財務のドメインからの幅広い Python ライブラリに依存しています。インストールを容易にするために、Dockerを使用してコンテナ化されたconda環境を提供します。
2021年<>月の更新:Ziplineの更新により、Dockerを使用する必要がなくなりました。インストール手順では、ノートブックの実行を簡略化する OS 固有の環境ファイルを参照するようになりました。
2021年2月の更新:コードサンプルリリース0.3は、Dockerイメージによって提供されるconda環境をPython 8.1、Pandas 2.1、およびTensorFlow 2.3などに更新します。Ziplineバックテスト環境では、Python 6.<>が使用されるようになりました。
conda
環境のインストール、データのダウンロード、またはコードの実行に問題がある場合は、リポジトリ(ここ)でGitHubの問題を提起してください。GitHub の問題の操作については、こちらで説明されています。
更新:本で使用されているアルゴシークデータはここからダウンロードできます。第2章の前処理の手順と第12章の勾配ブースティングモデルを使用した日中の例を参照してください。
更新:数字ディレクトリには、本で使用されているチャートのカラーバージョンが含まれています。
この本は、市場、ファンダメンタルおよびオルタナティブデータソーシングのソーシングと操作、取引コンテキストでのさまざまな予測タスクに対するMLソリューションの開発、およびMLモデルによって生成された予測シグナルに依存する取引戦略の設計と評価。
各章のディレクトリには、コンテンツ、コード例、および追加リソースに関する追加情報を含むREADMEが含まれています。
最初の部分は、機械学習(ML)によって駆動される取引戦略を開発するためのフレームワークを提供します。本書で取り上げたMLアルゴリズムと戦略を強化するデータに焦点を当て、MLモデルに適した機能を設計および評価する方法、および取引戦略を実行しながらポートフォリオのパフォーマンスを管理および測定する方法の概要を説明します。
この章では、投資業界における競争上の優位性の源泉としてMLが登場するに至った業界のトレンドを探ります。また、アルゴリズム取引戦略を可能にするために、MLが投資プロセスのどこに当てはまるかについても見ていきます。
具体的には、次のトピックについて説明します。
この章では、市場データとファンダメンタルデータの操作方法を示し、それらが反映する環境の重要な側面について説明します。たとえば、さまざまな注文タイプと取引インフラストラクチャに精通していることは、データの解釈だけでなく、バックテストシミュレーションを正しく設計するためにも重要です。また、Python を使用して取引および財務諸表データにアクセスして操作する方法についても説明します。
実際の例では、NASDAQティックデータとAlgoseekミニッツバーデータからの取引データを、後でMLベースの日中戦略に使用する需給ダイナミクスをキャプチャする豊富な属性セットを使用して操作する方法を示しています。また、さまざまなデータ プロバイダー API と、SEC から財務諸表情報を入手する方法についても説明します。
特に、この章では以下について説明します。この章では、オルタナティブデータのカテゴリとユースケースの概要を説明し、ソースとプロバイダーの爆発的な数を評価するための基準について説明し、現在の市場環境を要約します。
また、本書の第 3 部では、自然言語処理 (NLP) や感情分析アルゴリズムで使用する収益呼び出しトランスクリプトの収集など、Web サイトをスクレイピングして代替データセットを作成する方法も示しています。
具体的には、この章では次の内容について説明します。
ML にすでに精通している場合は、特徴エンジニアリングが予測を成功させるための重要な要素であることをご存知でしょう。学術研究者や産業界の研究者が何十年にもわたって資産市場と価格を動かすもの、そしてどの機能が価格変動を説明または予測するのに役立つかを調査してきた取引分野では、少なくとも同じくらい重要です。
この章では、アルファ因子の探求の出発点として、この研究の重要なポイントを概説します。また、アルファ係数の計算とテストに不可欠なツールを紹介し、NumPy、pandas、およびTA-Libライブラリがデータの操作を容易にし、データのノイズを低減するのに役立つウェーブレットやカルマンフィルタなどの一般的な平滑化手法を紹介します。それを読んだ後、あなたは以下について知るでしょう:
アルファファクターは、アルゴリズム戦略が取引に変換されるシグナルを生成し、それがロングポジションとショートポジションを生成します。結果として得られるポートフォリオのリターンとリスクは、戦略が投資目的を満たしているかどうかを決定します。
ポートフォリオを最適化するにはいくつかのアプローチがあります。これには、資産間の階層関係を学習し、ポートフォリオのリスクプロファイルを設計する際にそれらを補完または代替として扱うための機械学習(ML)の適用が含まれます。この章では、次の内容について説明します。
第2部では、基本的な教師あり学習アルゴリズムと教師なし学習アルゴリズムについて説明し、取引戦略への応用を示します。また、本書で開発したデータとML技術を活用して組み合わせ、ライブ市場で取引を実行するアルゴリズム戦略を実装できるQuantopianプラットフォームについても紹介しています。
この章では、パート 2 を開始し、さまざまな教師ありおよび教師なし ML モデルを取引に使用する方法について説明します。さまざまなPythonライブラリを使用して関連するアプリケーションを示す前に、各モデルの仮定とユースケースを説明します。
これらのモデルとそのアプリケーションの多くに共通するいくつかの側面があります。この章では、次の章でモデル固有の使用法に焦点を当てることができるように、これらの一般的な側面について説明します。ML モデルの予測パフォーマンスを体系的なワークフローとして定式化、トレーニング、調整、評価する方法を概説することで、ステージを設定します。内容は次のとおりです。
線形モデルは、回帰および分類のコンテキストでの推論と予測のための標準ツールです。広く使用されている多くの資産価格モデルは、線形回帰に依存しています。Ridge 回帰やなげなわ回帰などの正規化モデルは、多くの場合、オーバーフィットのリスクを制限することで、より良い予測をもたらします。一般的な回帰アプリケーションは、資産のリターンを促進するリスク要因を特定して、リスクを管理したり、リターンを予測したりします。一方、分類の問題には、方向性のある価格予測が含まれます。
第 07 章では、次のトピックについて説明します。
この章では、MLアルゴリズムによって駆動される取引戦略の設計、シミュレーション、および評価に関するエンドツーエンドの視点を示します。 Python ライブラリのバックトレーダーと Zipline を使用して、過去の市場のコンテキストで ML 駆動型戦略をバックテストする方法を詳しく説明します。 ML4Tワークフローは、最終的には、候補戦略をライブ市場に展開し、財源をリスクにさらすかどうかを決定するのに役立つ証拠を履歴データから収集することを目的としています。戦略の現実的なシミュレーションでは、証券市場がどのように機能し、取引がどのように実行されるかを忠実に表す必要があります。また、いくつかの方法論的側面は、投資決定の悪さにつながる偏った結果や誤った発見を避けるために注意が必要です。
具体的には、この章を読み進めると、次のことができるようになります。
この章では、時系列の履歴からシグナルを抽出して、同じ時系列の将来の値を予測するモデルに焦点を当てます。 時系列モデルは、取引に固有の時間ディメンションのために広く使用されています。定常性などの時系列特性を診断し、潜在的に有用なパターンをキャプチャする特徴を抽出するためのツールを提供します。また、マクロデータとボラティリティパターンを予測するための単変量および多変量時系列モデルも紹介しています。 最後に、共和分が時系列全体の共通の傾向を特定する方法を説明し、この重要な概念に基づいてペア取引戦略を開発する方法を示します。
特に、以下をカバーしています。
ベイズ統計により、将来のイベントに関する不確実性を定量化し、新しい情報が到着したときに原則的な方法で推定値を絞り込むことができます。このダイナミックなアプローチは、金融市場の進化する性質にうまく適応します。 ML に対するベイジアン アプローチにより、統計メトリック、パラメーター推定値、予測に関する不確実性に関する新しい分析情報が可能になります。アプリケーションは、より詳細なリスク管理から、市場環境の変化を組み込んだ予測モデルの動的な更新まで多岐にわたります。
具体的には、この章では次の内容について説明します。
この章では、決定木とランダムフォレストを取引に適用します。デシジョン ツリーは、非線形の入出力関係をエンコードするデータからルールを学習します。回帰と分類の問題の予測を行うように決定木をトレーニングし、モデルによって学習されたルールを視覚化して解釈し、モデルのハイパーパラメーターを調整してバイアスと分散のトレードオフを最適化し、オーバーフィットを防止する方法を示します。
この章の第 2 部では、複数の決定木をランダムに組み合わせて、誤差の少ない単一の予測を生成するアンサンブル モデルを紹介します。最後に、ランダムフォレストモデルによって生成された取引シグナルに基づく日本株のロングショート戦略で締めくくられます。
要するに、この章では以下について説明します。
勾配ブースティングは、代替のツリーベースのアンサンブルアルゴリズムであり、多くの場合、ランダムフォレストよりも優れた結果が得られます。重要な違いは、ブースティングでは、モデルによって行われた累積エラーに基づいて、各ツリーのトレーニングに使用されるデータが変更されることです。ランダム フォレストは、データのランダムなサブセットを使用して多くのツリーを個別にトレーニングしますが、ブースティングは順番に進行し、データの重み付けを変更します。 この章では、最先端のライブラリが印象的なパフォーマンスを達成し、日次データと高頻度データの両方にブースティングを適用して、日中の取引戦略をバックテストする方法を示します。
具体的には、次のトピックについて説明します。
次元の削減とクラスタリングは、教師なし学習の主なタスクです。
具体的には、この章では次の内容について説明します。
Text data are rich in content, yet unstructured in format and hence require more preprocessing so that a machine learning algorithm can extract the potential signal. The critical challenge consists of converting text into a numerical format for use by an algorithm, while simultaneously expressing the semantics or meaning of the content.
The next three chapters cover several techniques that capture language nuances readily understandable to humans so that machine learning algorithms can also interpret them.
Text data is very rich in content but highly unstructured so that it requires more preprocessing to enable an ML algorithm to extract relevant information. A key challenge consists of converting text into a numerical format without losing its meaning. This chapter shows how to represent documents as vectors of token counts by creating a document-term matrix that, in turn, serves as input for text classification and sentiment analysis. It also introduces the Naive Bayes algorithm and compares its performance to linear and tree-based models.
In particular, in this chapter covers:
This chapter uses unsupervised learning to model latent topics and extract hidden themes from documents. These themes can generate detailed insights into a large corpus of financial reports. Topic models automate the creation of sophisticated, interpretable text features that, in turn, can help extract trading signals from extensive collections of texts. They speed up document review, enable the clustering of similar documents, and produce annotations useful for predictive modeling. Applications include identifying critical themes in company disclosures, earnings call transcripts or contracts, and annotation based on sentiment analysis or using returns of related assets.
More specifically, it covers:
This chapter uses neural networks to learn a vector representation of individual semantic units like a word or a paragraph. These vectors are dense with a few hundred real-valued entries, compared to the higher-dimensional sparse vectors of the bag-of-words model. As a result, these vectors embed or locate each semantic unit in a continuous vector space.
Embeddings result from training a model to relate tokens to their context with the benefit that similar usage implies a similar vector. As a result, they encode semantic aspects like relationships among words through their relative location. They are powerful features that we will use with deep learning models in the following chapters.
More specifically, in this chapter, we will cover:
Part four explains and demonstrates how to leverage deep learning for algorithmic trading. The powerful capabilities of deep learning algorithms to identify patterns in unstructured data make it particularly suitable for alternative data like images and text.
The sample applications show, for exapmle, how to combine text and price data to predict earnings surprises from SEC filings, generate synthetic time series to expand the amount of training data, and train a trading agent using deep reinforcement learning. Several of these applications replicate research recently published in top journals.
This chapter presents feedforward neural networks (NN) and demonstrates how to efficiently train large models using backpropagation while managing the risks of overfitting. It also shows how to use TensorFlow 2.0 and PyTorch and how to optimize a NN architecture to generate trading signals. In the following chapters, we will build on this foundation to apply various architectures to different investment applications with a focus on alternative data. These include recurrent NN tailored to sequential data like time series or natural language and convolutional NN, particularly well suited to image data. We will also cover deep unsupervised learning, such as how to create synthetic data using Generative Adversarial Networks (GAN). Moreover, we will discuss reinforcement learning to train agents that interactively learn from their environment.
In particular, this chapter will cover
CNN architectures continue to evolve. This chapter describes building blocks common to successful applications, demonstrates how transfer learning can speed up learning, and how to use CNNs for object detection. CNNs can generate trading signals from images or time-series data. Satellite data can anticipate commodity trends via aerial images of agricultural areas, mines, or transport networks. Camera footage can help predict consumer activity; we show how to build a CNN that classifies economic activity in satellite images. CNNs can also deliver high-quality time-series classification results by exploiting their structural similarity with images, and we design a strategy based on time-series data formatted like images.
More specifically, this chapter covers:
Recurrent neural networks (RNNs) compute each output as a function of the previous output and new data, effectively creating a model with memory that shares parameters across a deeper computational graph. Prominent architectures include Long Short-Term Memory (LSTM) and Gated Recurrent Units (GRU) that address the challenges of learning long-range dependencies. RNNs are designed to map one or more input sequences to one or more output sequences and are particularly well suited to natural language. They can also be applied to univariate and multivariate time series to predict market or fundamental data. This chapter covers how RNN can model alternative text data using the word embeddings that we covered in Chapter 16 to classify the sentiment expressed in documents.
More specifically, this chapter addresses:
This chapter shows how to leverage unsupervised deep learning for trading. We also discuss autoencoders, namely, a neural network trained to reproduce the input while learning a new representation encoded by the parameters of a hidden layer. Autoencoders have long been used for nonlinear dimensionality reduction, leveraging the NN architectures we covered in the last three chapters. We replicate a recent AQR paper that shows how autoencoders can underpin a trading strategy. We will use a deep neural network that relies on an autoencoder to extract risk factors and predict equity returns, conditioned on a range of equity attributes.
More specifically, in this chapter you will learn about:
This chapter introduces generative adversarial networks (GAN). GANs train a generator and a discriminator network in a competitive setting so that the generator learns to produce samples that the discriminator cannot distinguish from a given class of training data. The goal is to yield a generative model capable of producing synthetic samples representative of this class. While most popular with image data, GANs have also been used to generate synthetic time-series data in the medical domain. Subsequent experiments with financial data explored whether GANs can produce alternative price trajectories useful for ML training or strategy backtests. We replicate the 2019 NeurIPS Time-Series GAN paper to illustrate the approach and demonstrate the results.
More specifically, in this chapter you will learn about:
Reinforcement Learning (RL) models goal-directed learning by an agent that interacts with a stochastic environment. RL optimizes the agent's decisions concerning a long-term objective by learning the value of states and actions from a reward signal. The ultimate goal is to derive a policy that encodes behavioral rules and maps states to actions. This chapter shows how to formulate and solve an RL problem. It covers model-based and model-free methods, introduces the OpenAI Gym environment, and combines deep learning with RL to train an agent that navigates a complex environment. Finally, we'll show you how to adapt RL to algorithmic trading by modeling an agent that interacts with the financial market while trying to optimize an objective function.
More specifically,this chapter will cover:
この最後の章では、本全体で学んだ重要なツール、アプリケーション、および教訓を簡単に要約して、詳細を詳細に見失わないようにします。 次に、カバーしなかったが、導入した多くの機械学習手法を拡張し、日常の使用で生産性を高めるにつれて、焦点を当てる価値のある領域を特定します。
要するに、この章では、
本書全体を通して、適切な前処理やノイズ除去などの機能のスマートな設計が、通常、効果的な戦略にどのようにつながるかを強調しました。この付録では、特徴エンジニアリングで学んだ教訓の一部をまとめ、この重要なトピックに関する追加情報を提供します。
この目的のために、TA-Lib(第4章を参照)とWorldQuantの101フォーミュラアルファペーパー(Kakushadze 2016)によって実装された幅広い指標に焦点を当て、平均保有期間が0.6〜6.4日の生産で使用される実際の定量的取引要因を提示します。
この章では、次の内容について説明します。