machine-learning-for-trading - アルゴリズム取引のための機械学習のためのコード、第2版。

(Code for Machine Learning for Algorithmic Trading, 2nd edition.)

Created at: 2018-05-09 20:33:08
Language: Jupyter Notebook

取引のためのML -2版

このは、MLが実用的でありながら包括的な方法でアルゴリズム取引戦略にどのように価値を付加できるかを示すことを目的としています。線形回帰から深層強化学習まで、幅広いML手法をカバーし、モデル予測によって駆動される取引戦略を構築、バックテスト、および評価する方法を示します。

23の章と付録を含む800つの部分で、<>ページ以上をカバーしています

  • データソーシング、金融機能エンジニアリング、ポートフォリオ管理の重要な側面、
  • 教師ありおよび教師なしMLアルゴリズムに基づくロングショート戦略の設計と評価、
  • SECファイリング、決算説明文、金融ニュースなどの財務テキストデータから取引可能なシグナルを抽出する方法、
  • CNNやRNNなどのディープラーニングモデルを市場データやオルタナティブデータで使用し、敵対的生成ネットワークで合成データを生成する方法、深層強化学習を使用した取引エージェントのトレーニング

このリポジトリには、本で説明されている概念、アルゴリズム、ユース ケースを実行に移した 150 を超えるノートブックが含まれています。それらは、以下を示す多数の例を提供します。

  • 市場、基本および代替のテキストおよび画像データを操作および抽出する方法、
  • 最近発表された研究を再現する方法など、さまざまな資産クラスと投資期間のリターンを予測するモデルをトレーニングおよび調整する方法、および
  • 取引戦略を設計、バックテスト、および評価する方法。

本を読みながらノートブックを確認することを強くお勧めします。これらは通常、実行状態にあり、多くの場合、スペースの制約のために含まれていない追加情報が含まれています。

このリポジトリの情報に加えて、本のWebサイトには、章の概要と追加情報が含まれています。

ML4T コミュニティに参加しましょう!

読者が本の内容やコード例、および独自の戦略や業界の発展の開発と実装について簡単に質問できるように、オンラインプラットフォームをホストしています。

私たちのコミュニティに参加して、取引戦略にMLを活用することに関心のある仲間のトレーダーとつながり、あなたの経験を共有し、お互いから学んでください!

第2版の新機能は何ですか?

何よりもまず、このは、さまざまなデータソースのセットからシグナルを抽出し、教師あり、教師なし、および強化学習アルゴリズムの幅広いを使用して、さまざまな資産クラスの取引戦略を設計する方法を示しています。また、アルゴリズムのチューニングや結果の解釈を容易にするための関連する数学的および統計的知識も提供します。さらに、市場およびファンダメンタルデータの操作、有益な機能の抽出、および取引戦略のパフォーマンスの管理に役立つ財務的背景をカバーしています。

実用的な観点から、第2版は、独自のMLベースの取引戦略を開発するための概念的な理解とツールを提供することを目的としています。この目的のために、MLをスタンドアロンの演習ではなくプロセスの重要な要素として組み立て、データソーシング、特徴エンジニアリング、モデル最適化から戦略設計とバックテストまでの取引ワークフローのためのエンドツーエンドのMLを導入します。

具体的には、ML4Tワークフローは、明確に定義された投資ユニバースのアイデアを生成し、関連データを収集し、有益な特徴を抽出することから始まります。また、予測タスクに適した ML モデルの設計、調整、評価も含まれます。最後に、モデルの予測シグナルに基づいて行動するための取引戦略を開発し、バックテストエンジンを使用して履歴データのパフォーマンスをシミュレートおよび評価する必要があります。実際の市場でアルゴリズム戦略を実行することを決定したら、新しい情報と変化する環境を組み込むために、このワークフローを繰り返し繰り返すことに気付くでしょう。

第 4 版では ML100t ワークフローに重点が置かれており、戦略のバックテストに関する新しい章、<> を超えるさまざまなアルファ要素を説明する新しい付録、および多くの新しい実用的なアプリケーションが実現します。また、既存のコンテンツのほとんどを、わかりやすく読みやすくするために書き直しました。

取引アプリケーションは、国際株式やETFなど、毎日の米国株価を超えて幅広いデータソースを使用するようになりました。また、分頻度の株式データを使用した日中戦略にMLを使用する方法も示します。さらに、代替データソースの範囲を拡大して、感情分析と収益予測のためのSECファイリング、および土地利用を分類するための衛星画像を含めます。

第2版のもう一つの革新は、最近トップジャーナルに掲載されたいくつかの取引アプリケーションを複製することです。

  • 第18章では、Sezer and Ozbahoglu (2018)に基づいて、戻り予測のために画像形式に変換された時系列に畳み込みニューラルネットワークを適用する方法を示します。
  • 第20章では、Shihao Gu、Bryan T. Kelly、Dacheng Xiu(2019)によるオートエンコーダー資産価格モデルに基づいて、資産価格の株式特性を条件としたリスク要因を抽出する方法を示します。
  • 第21章では、Jinsung Yoon, Daniel Jarrett, Mihaela van der Schaar (2019)による時系列敵対的生成ネットワークに基づく敵対的生成ネットワークを用いて合成訓練データを作成する方法を示します。

すべてのアプリケーションは、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.<>が使用されるようになりました。

  • インストールディレクトリには、Docker イメージを設定して使用し、ノートブックを実行するための詳細な手順が含まれています。また、さまざまな環境をセットアップし、必要に応じてノートブックで使用されているパッケージをマシンに直接インストールするための構成ファイルも含まれています(システムによっては、さらに一歩進む準備ができています)。
    conda
  • 本書で使用されているデータ ソースの多くをダウンロードして前処理するには、データ ディレクトリ内のさまざまなノートブックと共に README ファイルの手順を参照してください。

環境のインストール、データのダウンロード、またはコードの実行に問題がある場合は、リポジトリ(ここ)でGitHubの問題を提起してください。GitHub の問題の操作については、こちらで説明されています。

更新:本で使用されているアルゴシークデータはここからダウンロードできます。第2章の前処理の手順と第12章の勾配ブースティングモデルを使用した日中の例を参照してください。

更新:数字ディレクトリには、本で使用されているチャートのカラーバージョンが含まれています。

概要と章の概要

このは、市場、ファンダメンタルおよびオルタナティブデータソーシングのソーシングと操作、取引コンテキストでのさまざまな予測タスクに対するMLソリューションの開発、およびMLモデルによって生成された予測シグナルに依存する取引戦略の設計と評価。

各章のディレクトリには、コンテンツ、コード例、および追加リソースに関する追加情報を含むREADMEが含まれています。

パート1:データから戦略開発まで

パート2:取引のための機械学習:基礎

パート3:取引のための自然言語処理

パート4:ディープ&強化学習

パート1:データから戦略開発まで

最初の部分は、機械学習(ML)によって駆動される取引戦略を開発するためのフレームワークを提供します。本書で取り上げたMLアルゴリズムと戦略を強化するデータに焦点を当て、MLモデルに適した機能を設計および評価する方法、および取引戦略を実行しながらポートフォリオのパフォーマンスを管理および測定する方法の概要を説明します。

01 取引のための機械学習:アイデアから実行まで

このでは、投資業界における競争上の優位性の源泉としてMLが登場するに至った業界のトレンドを探ります。また、アルゴリズム取引戦略を可能にするために、MLが投資プロセスのどこに当てはまるかについても見ていきます。

具体的には、次のトピックについて説明します。

  • 投資業界におけるMLの台頭の背後にある主なトレンド
  • MLを活用した取引戦略の設計と実行
  • 取引におけるMLの一般的なユースケース

02 市場とファンダメンタルデータ:情報源と技術

このでは、市場データとファンダメンタルデータの操作方法を示し、それらが反映する環境の重要な側面について説明します。たとえば、さまざまな注文タイプと取引インフラストラクチャに精通していることは、データの解釈だけでなく、バックテストシミュレーションを正しく設計するためにも重要です。また、Python を使用して取引および財務諸表データにアクセスして操作する方法についても説明します。

実際の例では、NASDAQティックデータとAlgoseekミニッツバーデータからの取引データを、後でMLベースの日中戦略に使用する需給ダイナミクスをキャプチャする豊富な属性セットを使用して操作する方法を示しています。また、さまざまなデータ プロバイダー API と、SEC から財務諸表情報を入手する方法についても説明します。

特に、この章では以下について説明します。
  • 市場データが取引環境の構造をどのように反映しているか
  • 日中の取引と相場データを分頻度で操作する
  • NASDAQ ITCHを使用したティックデータからの指値注文帳の再構築
  • さまざまなタイプのバーを使用したティックデータの要約
  • 拡張可能なビジネスレポート言語 (XBRL) でエンコードされた電子ファイリングの使用
  • 市場データとファンダメンタルズデータを解析および組み合わせてP/Eシリーズを作成する
  • Pythonを使用してさまざまな市場およびファンダメンタルズデータソースにアクセスする方法

03 財務の代替データ:カテゴリとユースケース

このでは、オルタナティブデータのカテゴリとユースケースの概要を説明し、ソースとプロバイダーの爆発的な数を評価するための基準について説明し、現在の市場環境を要約します。

また、本書の第 3 部では、自然言語処理 (NLP) や感情分析アルゴリズムで使用する収益呼び出しトランスクリプトの収集など、Web サイトをスクレイピングして代替データセットを作成する方法も示しています。

具体的には、この章では次の内容について説明します。

  • オルタナティブデータ革命の間に出現した新しい信号源
  • 個人、企業、センサーが多様なオルタナティブデータを生成する方法
  • 代替データの重要なカテゴリとプロバイダー
  • 急増するオルタナティブデータの供給を取引にどのように使用できるかを評価する
  • インターネットをスクレイピングするなど、Pythonでの代替データの操作

04 金融特徴工学:アルファ因子の研究方法

ML にすでに精通している場合は、特徴エンジニアリングが予測を成功させるための重要な要素であることをご存知でしょう。学術研究者や産業界の研究者が何十年にもわたって資産市場と価格を動かすもの、そしてどの機能が価格変動を説明または予測するのに役立つかを調査してきた取引分野では、少なくとも同じくらい重要です。

このでは、アルファ因子の探求の出発点として、この研究の重要なポイントを概説します。また、アルファ係数の計算とテストに不可欠なツールを紹介し、NumPy、pandas、およびTA-Libライブラリがデータの操作を容易にし、データのノイズを低減するのに役立つウェーブレットやカルマンフィルタなどの一般的な平滑化手法を紹介します。それを読んだ後、あなたは以下について知るでしょう:

  • どのカテゴリの要因が存在するのか、なぜそれらが機能するのか、そしてそれらをどのように測定するのか、
  • NumPy、パンダ、およびTA-Libを使用してアルファ係数を作成する。
  • ウェーブレットとカルマンフィルタを使用してデータをノイズ除去する方法、
  • Ziplineを使用して、個別および複数のアルファ因子をテストし、
  • アルファレンズを使用して予測パフォーマンスを評価する方法。

05 ポートフォリオの最適化とパフォーマンス評価

アルファファクターは、アルゴリズム戦略が取引に変換されるシグナルを生成し、それがロングポジションとショートポジションを生成します。結果として得られるポートフォリオのリターンとリスクは、戦略が投資目的を満たしているかどうかを決定します。

ポートフォリオを最適化するにはいくつかのアプローチがあります。これには、資産間の階層関係を学習し、ポートフォリオのリスクプロファイルを設計する際にそれらを補完または代替として扱うための機械学習(ML)の適用が含まれます。このでは、次の内容について説明します。

  • ポートフォリオのリスクとリターンを測定する方法
  • 平均分散最適化と代替案を使用したポートフォリオの重みの管理
  • 機械学習を使用してポートフォリオのコンテキストで資産配分を最適化する
  • 取引をシミュレートし、Ziplineを使用してアルファ係数に基づいてポートフォリオを作成します
  • pyfolioを使用してポートフォリオのパフォーマンスを評価する方法

パート2:取引のための機械学習:基礎

第2部では、基本的な教師あり学習アルゴリズムと教師なし学習アルゴリズムについて説明し、取引戦略への応用を示します。また、本書で開発したデータとML技術を活用して組み合わせ、ライブ市場で取引を実行するアルゴリズム戦略を実装できるQuantopianプラットフォームについても紹介しています。

06 機械学習プロセス

このでは、パート 2 を開始し、さまざまな教師ありおよび教師なし ML モデルを取引に使用する方法について説明します。さまざまなPythonライブラリを使用して関連するアプリケーションを示す前に、各モデルの仮定とユースケースを説明します。

これらのモデルとそのアプリケーションの多くに共通するいくつかの側面があります。この章では、次の章でモデル固有の使用法に焦点を当てることができるように、これらの一般的な側面について説明します。ML モデルの予測パフォーマンスを体系的なワークフローとして定式化、トレーニング、調整、評価する方法を概説することで、ステージを設定します。内容は次のとおりです。

  • データからの教師あり学習と教師なし学習の仕組み
  • 回帰および分類タスクのための教師あり学習モデルのトレーニングと評価
  • バイアスと分散のトレードオフが予測パフォーマンスに与える影響
  • オーバーフィットによる予測エラーを診断して対処する方法
  • 交差検証を使用して、時系列データに焦点を当ててハイパーパラメータを最適化する
  • サンプル外でテストするときに財務データにさらに注意が必要な理由

07 線形モデル:リスク要因からリターン予測まで

線形モデルは、回帰および分類のコンテキストでの推論と予測のための標準ツールです。広く使用されている多くの資産価格モデルは、線形回帰に依存しています。Ridge 回帰やなげなわ回帰などの正規化モデルは、多くの場合、オーバーフィットのリスクを制限することで、より良い予測をもたらします。一般的な回帰アプリケーションは、資産のリターンを促進するリスク要因を特定して、リスクを管理したり、リターンを予測したりします。一方、分類の問題には、方向性のある価格予測が含まれます。

第 07 章では、次のトピックについて説明します。

  • 線形回帰の仕組みとそれが行う仮定
  • 線形回帰モデルのトレーニングと診断
  • 線形回帰を使用して株式のリターンを予測する
  • 正則化を使用して予測パフォーマンスを向上させる
  • ロジスティック回帰の仕組み
  • 回帰を分類問題に変換する

08 ML4Tワークフロー:モデルから戦略のバックテストまで

このでは、MLアルゴリズムによって駆動される取引戦略の設計、シミュレーション、および評価に関するエンドツーエンドの視点を示します。 Python ライブラリのバックトレーダーと Zipline を使用して、過去の市場のコンテキストで ML 駆動型戦略をバックテストする方法を詳しく説明します。 ML4Tワークフローは、最終的には、候補戦略をライブ市場に展開し、財源をリスクにさらすかどうかを決定するのに役立つ証拠を履歴データから収集することを目的としています。戦略の現実的なシミュレーションでは、証券市場がどのように機能し、取引がどのように実行されるかを忠実に表す必要があります。また、いくつかの方法論的側面は、投資決定の悪さにつながる偏った結果や誤った発見を避けるために注意が必要です。

具体的には、この章を読み進めると、次のことができるようになります。

  • エンドツーエンドの戦略バックテストを計画して実装する
  • バックテストを実装する際の重大な落とし穴を理解して回避する
  • ベクトル化されたバックテストエンジンとイベント駆動型のバックテストエンジンの利点と欠点について説明する
  • イベント駆動型バックテスターの主要コンポーネントを特定して評価する
  • ML4T ワークフローを分単位および日単位の頻度で使用して設計および実行し、ML モデルを個別に、またはバックテストの一部としてトレーニングします。
  • ジップラインとバックトレーダーを使用して、独自の戦略を設計および評価します

09 ボラティリティ予測と統計裁定取引の時系列モデル

このでは、時系列の履歴からシグナルを抽出して、同じ時系列の将来の値を予測するモデルに焦点を当てます。 時系列モデルは、取引に固有の時間ディメンションのために広く使用されています。定常性などの時系列特性を診断し、潜在的に有用なパターンをキャプチャする特徴を抽出するためのツールを提供します。また、マクロデータとボラティリティパターンを予測するための単変量および多変量時系列モデルも紹介しています。 最後に、共和分が時系列全体の共通の傾向を特定する方法を説明し、この重要な概念に基づいてペア取引戦略を開発する方法を示します。

特に、以下をカバーしています。

  • 時系列分析を使用してモデリング プロセスを準備し、通知する方法
  • 単変量自己回帰モデルと移動平均モデルの推定と診断
  • ボラティリティを予測するための自己回帰条件付き不均一性(ARCH)モデルの構築
  • 多変量ベクトル自己回帰モデルの構築方法
  • 共和分を使用してペア取引戦略を開発する

10ベイジアンML:ダイナミックシャープレシオとペア取引

ベイズ統計により、将来のイベントに関する不確実性を定量化し、新しい情報が到着したときに原則的な方法で推定値を絞り込むことができます。このダイナミックなアプローチは、金融市場の進化する性質にうまく適応します。 ML に対するベイジアン アプローチにより、統計メトリック、パラメーター推定値、予測に関する不確実性に関する新しい分析情報が可能になります。アプリケーションは、より詳細なリスク管理から、市場環境の変化を組み込んだ予測モデルの動的な更新まで多岐にわたります。

具体的には、このでは次の内容について説明します。

  • ベイズ統計を機械学習に適用する方法
  • PyMC3による確率的プログラミング
  • PyMC3 を使用した機械学習モデルの定義とトレーニング
  • 最先端のサンプリング手法を実行して近似推論を実行する方法
  • 動的シャープレシオ、動的ペア取引ヘッジ比率を計算し、確率的ボラティリティを推定するためのベイジアンMLアプリケーション

11のランダムフォレスト:日本株のロングショート戦略

このでは、決定木とランダムフォレストを取引に適用します。デシジョン ツリーは、非線形の入出力関係をエンコードするデータからルールを学習します。回帰と分類の問題の予測を行うように決定木をトレーニングし、モデルによって学習されたルールを視覚化して解釈し、モデルのハイパーパラメーターを調整してバイアスと分散のトレードオフを最適化し、オーバーフィットを防止する方法を示します。

この章の第 2 部では、複数の決定木をランダムに組み合わせて、誤差の少ない単一の予測を生成するアンサンブル モデルを紹介します。最後に、ランダムフォレストモデルによって生成された取引シグナルに基づく日本株のロングショート戦略で締めくくられます。

要するに、この章では以下について説明します。

  • 回帰と分類に決定木を使用する
  • デシジョンツリーから洞察を得て、データから学習したルールを視覚化する
  • アンサンブルモデルが優れた結果をもたらす傾向がある理由を理解する
  • ブートストラップ集約を使用して、デシジョンツリーのオーバーフィッティングの課題に対処する
  • ランダムフォレストのトレーニング、調整、解釈
  • ランダムフォレストを採用して、収益性の高い取引戦略を設計および評価します

12 あなたの取引戦略を後押しする

勾配ブースティングは、代替のツリーベースのアンサンブルアルゴリズムであり、多くの場合、ランダムフォレストよりも優れた結果が得られます。重要な違いは、ブースティングでは、モデルによって行われた累積エラーに基づいて、各ツリーのトレーニングに使用されるデータが変更されることです。ランダム フォレストは、データのランダムなサブセットを使用して多くのツリーを個別にトレーニングしますが、ブースティングは順番に進行し、データの重み付けを変更します。 このでは、最先端のライブラリが印象的なパフォーマンスを達成し、日次データと高頻度データの両方にブースティングを適用して、日中の取引戦略をバックテストする方法を示します。

具体的には、次のトピックについて説明します。

  • ブースティングはバギングとどのように異なり、勾配ブースティングは適応ブースティングからどのように進化しましたか。
  • scikit-learnを使用して適応モデルと勾配ブースティングモデルを設計および調整します。
  • 最先端の実装XGBoost、LightGBM、CatBoostを使用して、大規模なデータセットで勾配ブースティングモデルを構築、最適化、評価します。
  • SHAP値を使用した勾配ブースティングモデルの解釈と洞察の取得、および
  • 高頻度データによるブースティングを使用して、日中戦略を設計します。

13 教師なし学習によるデータ駆動型リスク要因と資産配分

次元の削減とクラスタリングは、教師なし学習の主なタスクです。

  • 次元削減は、情報の損失を最小限に抑えながら、既存の機能を新しい小さなセットに変換します。情報の損失を測定する方法、線形変換または非線形変換を適用するかどうか、または新しい機能セットに課す制約によって異なる幅広いアルゴリズムが存在します。
  • クラスタリングアルゴリズムは、新しい特徴を識別する代わりに、類似した観測値または特徴を識別してグループ化します。アルゴリズムは、観測値の類似性を定義する方法と、結果のグループに関する仮定が異なります。

具体的には、このでは次の内容について説明します。

  • 主成分分析と独立成分分析(PCAおよびICA)が線形次元削減を実行する方法
  • PCAを使用した資産リターンからのデータ駆動型リスク要因と固有ポートフォリオの特定
  • 多様体学習を用いた非線形・高次元データの効果的な可視化
  • T-SNEとUMAPを用いた高次元画像データの探索
  • K平均法、階層型、密度ベースのクラスタリングアルゴリズムの仕組み
  • 凝集型クラスタリングを使用して、階層的なリスクパリティを持つ堅牢なポートフォリオを構築する

パート3:取引のための自然言語処理

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.

14 Text Data for Trading: Sentiment Analysis

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:

  • What the fundamental NLP workflow looks like
  • How to build a multilingual feature extraction pipeline using spaCy and TextBlob
  • Performing NLP tasks like part-of-speech tagging or named entity recognition
  • Converting tokens to numbers using the document-term matrix
  • Classifying news using the naive Bayes model
  • How to perform sentiment analysis using different ML algorithms

15 Topic Modeling: Summarizing Financial News

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:

  • How topic modeling has evolved, what it achieves, and why it matters
  • Reducing the dimensionality of the DTM using latent semantic indexing
  • Extracting topics with probabilistic latent semantic analysis (pLSA)
  • How latent Dirichlet allocation (LDA) improves pLSA to become the most popular topic model
  • Visualizing and evaluating topic modeling results -
  • Running LDA using scikit-learn and gensim
  • How to apply topic modeling to collections of earnings calls and financial news articles

16 Word embeddings for Earnings Calls and SEC Filings

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:

  • What word embeddings are and how they capture semantic information
  • How to obtain and use pre-trained word vectors
  • Which network architectures are most effective at training word2vec models
  • How to train a word2vec model using TensorFlow and gensim
  • Visualizing and evaluating the quality of word vectors
  • How to train a word2vec model on SEC filings to predict stock price moves
  • How doc2vec extends word2vec and helps with sentiment analysis
  • Why the transformer’s attention mechanism had such an impact on NLP
  • How to fine-tune pre-trained BERT models on financial data

Part 4: Deep & Reinforcement Learning

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.

17 Deep Learning for Trading

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

  • How DL solves AI challenges in complex domains
  • Key innovations that have propelled DL to its current popularity
  • How feedforward networks learn representations from data
  • Designing and training deep neural networks (NNs) in Python
  • Implementing deep NNs using Keras, TensorFlow, and PyTorch
  • Building and tuning a deep NN to predict asset returns
  • Designing and backtesting a trading strategy based on deep NN signals

18 CNN for Financial Time Series and Satellite Images

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:

  • How CNNs employ several building blocks to efficiently model grid-like data
  • Training, tuning and regularizing CNNs for images and time series data using TensorFlow
  • Using transfer learning to streamline CNNs, even with fewer data
  • Designing a trading strategy using return predictions by a CNN trained on time-series data formatted like images
  • How to classify economic activity based on satellite images

19 RNN for Multivariate Time Series and Sentiment Analysis

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:

  • How recurrent connections allow RNNs to memorize patterns and model a hidden state
  • Unrolling and analyzing the computational graph of RNNs
  • How gated units learn to regulate RNN memory from data to enable long-range dependencies
  • Designing and training RNNs for univariate and multivariate time series in Python
  • How to learn word embeddings or use pretrained word vectors for sentiment analysis with RNNs
  • Building a bidirectional RNN to predict stock returns using custom word embeddings

20 Autoencoders for Conditional Risk Factors and Asset Pricing

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:

  • Which types of autoencoders are of practical use and how they work
  • Building and training autoencoders using Python
  • Using autoencoders to extract data-driven risk factors that take into account asset characteristics to predict returns

21 Generative Adversarial Nets for Synthetic Time Series Data

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:

  • How GANs work, why they are useful, and how they could be applied to trading
  • Designing and training GANs using TensorFlow 2
  • Generating synthetic financial data to expand the inputs available for training ML models and backtesting

22 Deep Reinforcement Learning: Building a Trading Agent

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:

  • Define a Markov decision problem (MDP)
  • 価値とポリシーの反復を使用してMDPを解決する
  • 離散的な状態とアクションを持つ環境でのQラーニングの適用
  • 継続的な環境でディープQラーニングエージェントを構築してトレーニングする
  • OpenAI ジムを使用してカスタム市場環境を設計し、RL エージェントをトレーニングして株式を取引する

23 結論と次のステップ

この最後の章では、本全体で学んだ重要なツール、アプリケーション、および教訓を簡単に要約して、詳細を詳細に見失わないようにします。 次に、カバーしなかったが、導入した多くの機械学習手法を拡張し、日常の使用で生産性を高めるにつれて、焦点を当てる価値のある領域を特定します。

要するに、この章では、

  • 重要なポイントと学んだ教訓を確認する
  • 本書のテクニックを基にするための次のステップを指摘する
  • 投資プロセスに ML を組み込む方法を提案する

24 付録-アルファファクターライブラリ

本書全体を通して、適切な前処理やノイズ除去などの機能のスマートな設計が、通常、効果的な戦略にどのようにつながるかを強調しました。この付録では、特徴エンジニアリングで学んだ教訓の一部をまとめ、この重要なトピックに関する追加情報を提供します。

この目的のために、TA-Lib(第4章を参照)とWorldQuantの101フォーミュラアルファペーパー(Kakushadze 2016)によって実装された幅広い指標に焦点を当て、平均保有期間が0.6〜6.4日の生産で使用される実際の定量的取引要因を提示します。

この章では、次の内容について説明します。

  • TA-LibとNumPy/pandasを使用して数十のテクニカル指標を計算する方法、
  • 上記の論文で説明されている数式アルファの作成、および
  • ランク相関や相互情報から特徴量の重要度、SHAP値、Alphalensまで、さまざまなメトリックを使用して結果の予測品質を評価します。