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

Book description

『Pythonによるファイナンス 第2版』の著者が、アルゴリズムトレードを始める上で必要な自動売買の基礎と、機械学習を本格的に導入するために必要なPythonの知識について解説します。具体的には、アルゴリズムトレード用の適切なPython環境の設定、データの取得、NumPy/pandasを使ったデータ分析、トレード戦略のバックテスト、市場予測、ストリーミングのリアルタイム処理等、アルゴリズムトレードのさまざまな側面にPythonを適用するさまざまな手法を紹介し、自動トレード戦略を効率よく構築、デプロイするために、どのような選択肢があるのかを提示します。本書で利用したサンプルコードはGitHubから利用可能です。

Table of contents

  1. 大扉
  2. 原書大扉
  3. クレジット
  4. まえがき
    1. 内容と構成
    2. 本書の対象読者
    3. 本書の表記法
    4. サンプルコードの使用
    5. 連絡先
    6. 謝辞
  5. 1章 Pythonとアルゴリズムトレード
    1. 1.1 Pythonによるファイナンス
      1. 1.1.1 Pythonと擬似コード
      2. 1.1.2 NumPyとベクトル化
      3. 1.1.3 pandasとDataFrameクラス
    2. 1.2 アルゴリズムトレード
    3. 1.3 アルゴリズムトレードのためのPython
    4. 1.4 焦点と前提条件
    5. 1.5 トレード戦略
      1. 1.5.1 単純移動平均
      2. 1.5.2 モメンタム
      3. 1.5.3 平均回帰
      4. 1.5.4 機械学習と深層学習
    6. 1.6 まとめ
    7. 1.7 参考文献
  6. 2章 Pythonインフラストラクチャ
    1. 2.1 パッケージマネージャーConda
      1. 2.1.1 Minicondaのインストール
      2. 2.1.2 condaの基本操作
    2. 2.2 仮想環境マネージャーとしてのconda
    3. 2.3 Dockerコンテナを使う
      1. 2.3.1 Dockerイメージとコンテナ
      2. 2.3.2 UbuntuのPython Dockerイメージを作る
    4. 2.4 クラウドインスタンスを使う
      1. 2.4.1 RSA公開鍵と秘密鍵のファイル
      2. 2.4.2 Jupyter Notebook設定ファイル
      3. 2.4.3 PythonとJupyter Notebookのインストールスクリプト
      4. 2.4.4 Dropletのセットアップのオーケストレーションスクリプト
    5. 2.5 結論
    6. 2.6 参考文献
  7. 3章 金融データの処理
    1. 3.1 異なるデータソースから金融データを読み取る
      1. 3.1.1 データセット
      2. 3.1.2 Pythonを使ってCSVファイルを読み込む
      3. 3.1.3 pandasを使用してCSVファイルを読み込む
      4. 3.1.4 ExcelとJSONにエクスポートする
      5. 3.1.5 ExcelとJSONから読み込む
    2. 3.2 オープンデータソースの使用
    3. 3.3 Eikon Data API
      1. 3.3.1 構造化されたヒストリカルデータを取得する
      2. 3.3.2 構造化されていないヒストリカルデータを取得する
    4. 3.4 金融データを効率的に保存する
      1. 3.4.1 DataFrameオブジェクトを保存する
      2. 3.4.2 TsTablesの使用
      3. 3.4.3 SQLite3を使用してデータを保存する
    5. 3.5 結論
    6. 3.6 参考文献
    7. 3.7 Pythonスクリプト
  8. 4章 ベクトル化バックテストの習得
    1. 4.1 ベクトル化の利用
      1. 4.1.1 NumPyを使用したベクトル化
      2. 4.1.2 pandasを使用したベクトル化
    2. 4.2 単純移動平均を用いた戦略
      1. 4.2.1 基本を押さえる
      2. 4.2.2 アプローチの一般化
    3. 4.3 モメンタム戦略
      1. 4.3.1 基本を押さえる
      2. 4.3.2 アプローチの一般化
    4. 4.4 平均回帰戦略
      1. 4.4.1 基本を押さえる
      2. 4.4.2 アプローチの一般化
    5. 4.5 データスヌーピングとオーバーフィッティング
    6. 4.6 結論
    7. 4.7 参考文献・参考情報
    8. 4.8 Pythonスクリプト
      1. 4.8.1 SMA戦略のバックテストクラス
      2. 4.8.2 モメンタム戦略のバックテストクラス
      3. 4.8.3 平均回帰戦略のバックテストクラス
  9. 5章 機械学習を用いたマーケットの動きの予測
    1. 5.1 マーケット予測のための線形回帰の使用
      1. 5.1.1 線形回帰のおさらい
      2. 5.1.2 価格予測の基本的な考え方
      3. 5.1.3 指数の水準の予測
      4. 5.1.4 将来のリターンの予測
      5. 5.1.5 将来のマーケットの方向性を予測する
      6. 5.1.6 回帰に基づいた戦略のベクトル化バックテスト
      7. 5.1.7 アプローチの一般化
    2. 5.2 マーケットの動きを予測するために機械学習を使用する
      1. 5.2.1 scikit-learnを用いた線形回帰
      2. 5.2.2 簡単な分類問題
      3. 5.2.3 ロジスティック回帰を利用したマーケットの方向性の予測
      4. 5.2.4 アプローチの一般化
    3. 5.3 深層学習を利用したマーケットの動きの予測
      1. 5.3.1 単純な分類問題の再検討
      2. 5.3.2 ディープニューラルネットワークを使ってマーケットの方向性を予測する
      3. 5.3.3 異なるタイプの特徴量の追加
    4. 5.4 結論
    5. 5.5 参考文献・参考情報
    6. 5.6 Pythonスクリプト
      1. 5.6.1 線形回帰のバックテストクラス
      2. 5.6.2 分類アルゴリズムのバックテストクラス
  10. 6章 イベントベース・バックテストのためのクラスの作成
    1. 6.1 バックテストの基底クラス
    2. 6.2 ロングオンリーのバックテストクラス
    3. 6.3 ロングショートのバックテストクラス
    4. 6.4 結論
    5. 6.5 参考文献・参考情報
    6. 6.6 Pythonスクリプト
      1. 6.6.1 バックテストの基底クラス
      2. 6.6.2 ロングオンリーのバックテストクラス
      3. 6.6.3 ロングショートバックテストクラス
  11. 7章 リアルタイムデータとソケットを扱う
    1. 7.1 簡易ティックデータサーバの実行
    2. 7.2 簡易ティックデータクライアントとの接続
    3. 7.3 リアルタイムでのシグナル生成
    4. 7.4 Plotlyによるストリーミングデータの可視化
      1. 7.4.1 基礎知識
      2. 7.4.2 3つのリアルタイムストリーム
      3. 7.4.3 3つのストリームのための3つのサブプロット
      4. 7.4.4 ストリーミングデータを棒グラフで表示
    5. 7.5 結論
    6. 7.6 参考文献・参考情報
    7. 7.7 Pythonスクリプト
      1. 7.7.1 サンプルのティックデータサーバ
      2. 7.7.2 ティックデータクライアント
      3. 7.7.3 モメンタムオンラインアルゴリズム
      4. 7.7.4 バープロットのためのサンプルデータサーバ
  12. 8章 OandaでのCFDトレード
    1. 8.1 アカウントの作成*2
    2. 8.2 Oanda API
    3. 8.3 ヒストリカルデータの取得
      1. 8.3.1 トレード可能な投資商品の検索
      2. 8.3.2 分足でのモメンタム戦略のバックテスト
      3. 8.3.3 レバレッジと証拠金におけるファクタリング
    4. 8.4 ストリーミングデータを扱う
    5. 8.5 成行注文を出す
    6. 8.6 トレード戦略をリアルタイムで実行する
    7. 8.7 アカウント情報の取得
    8. 8.8 結論
    9. 8.9 参考文献・参考情報
    10. 8.10 Pythonスクリプト
  13. 9章 FXCMでのFXトレード
    1. 9.1 はじめに
    2. 9.2 データの取得
      1. 9.2.1 ティックデータの取得
      2. 9.2.2 ローソク足データの取得
    3. 9.3 APIの使用
      1. 9.3.1 ヒストリカルデータの取得
      2. 9.3.2 ストリーミングデータの取得
      3. 9.3.3 発注
      4. 9.3.4 アカウント情報
    4. 9.4 結論
    5. 9.5 参考文献・参考情報
  14. 10章 トレードオペレーションの自動化
    1. 10.1 資産管理
      1. 10.1.1 二項設定でのケリー基準
      2. 10.1.2 株式と指数に対するケリー基準
    2. 10.2 機械学習を用いたトレード戦略
      1. 10.2.1 ベクトル化バックテスト
      2. 10.2.2 最適レバレッジ
      3. 10.2.3 リスク分析
      4. 10.2.4 モデルオブジェクトの永続化
    3. 10.3 オンラインアルゴリズム
    4. 10.4 インフラストラクチャと運用
    5. 10.5 ロギングと監視
    6. 10.6 スクリーンショットを用いた各手順の通覧
      1. 10.6.1 Oandaアカウントの設定
      2. 10.6.2 ハードウェアのセットアップ
      3. 10.6.3 Python環境のセットアップ
      4. 10.6.4 コードのアップロード
      5. 10.6.5 コードの実行
      6. 10.6.6 リアルタイム監視
    7. 10.7 結論
    8. 10.8 参考文献・参考情報
    9. 10.9 Pythonスクリプト
      1. 10.9.1 自動トレード戦略
      2. 10.9.2 戦略の監視
  15. 付録A Python、NumPy、Matplotlib、pandas
    1. A.1 Pythonの基礎
      1. A.1.1 データ型
      2. A.1.2 データ構造
      3. A.1.3 制御構造
      4. A.1.4 Pythonのイディオム
    2. A.2 NumPy
      1. A.2.1 通常のndarrayオブジェクト
      2. A.2.2 ベクトル化演算
      3. A.2.3 ブール演算
      4. A.2.4 ndarrayメソッドとNumPy関数
      5. A.2.5 ndarrayの作成
      6. A.2.6 乱数
    3. A.3 Matplotlib
    4. A.4 pandas
      1. A.4.1 DataFrameクラス
      2. A.4.2 数値演算
      3. A.4.3 データの抽出
      4. A.4.4 ブール演算
      5. A.4.5 pandasを使ったプロット
      6. A.4.6 入出力
    5. A.5 ケーススタディ
    6. A.6 結論
    7. A.7 参考文献
  16. 著者・訳者紹介
  17. 奥付

Product information

  • Title: Pythonからはじめるアルゴリズムトレード ―自動売買の基礎と機械学習の本格導入に向けたPythonプログラミング
  • Author(s): Yves Hilpisch, 村上 振一郎
  • Release date: April 2022
  • Publisher(s): O'Reilly Japan, Inc.
  • ISBN: 9784873119793

You might also like

book

初めてのGraphQL ―Webサービスを作って学ぶ新世代API

by Eve Porcello, Alex Banks, 尾崎 沙耶, あんどうやすし

今日では多くのWebサービスがRESTアーキテクチャスタイルで実装されています。RESTは2000年にフィールディングの論文で提唱された後に爆発的に普及し洗練されてきました。一方で、本書で紹介するGraphQLは2015年にFacebookによって公開されたRESTとは異なるアプローチのアーキテクチャです。GraphQLの最大の特徴はクエリ言語を用いてデータを操作する点です。クエリ言語の表現力の高さによりクライアントは本当に必要なリクエストを送ることができます。本書ではGraphQLの概要とGraphQLを用いたWebサービスの開発方法を実装例に沿って紹介します。認証やファイルアップロードといった実践的なトピックまで踏み込んだGraphQLの実用的な入門書です。

book

Pythonではじめる機械学習 ―scikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎

by Andreas C. Muller, Sarah Guido, 中田 秀基

Pythonの機械学習用ライブラリの定番、scikit-learnのリリースマネージャを務めるなど開発に深く関わる著者が、scikit-learnを使った機械学習の方法を、ステップバイステップで解説します。ニューラルネットを学ぶ前に習得しておきたい機械学習の基礎をおさえるとともに、優れた機械学習システムを実装し精度の高い予測モデルを構築する上で重要となる「特徴量エンジニアリング」と「モデルの評価と改善」について多くのページを割くなど、従来の機械学習の解説書にはない特長を備えています。

book

行動を変えるデザイン ―心理学と行動経済学をプロダクトデザインに活用する

by Stephen Wendel, 武山 政直, 相島 雅樹, 反中 望, 松村 草也

深津貴之氏推薦!「行動経済学、データ分析、サービス設計のエッセンスが高度に統合された行動変容デザインの良書です」 本書は、行動経済学と心理学をもとに、人々の行動、日常習慣を変える“行動変容”を促すプロダクトをデザインするための書籍です。主にヘルスケア(健康管理)、金融(資産管理)など、これまでITプロダクト(サービス、アプリなど)がなかなか使われてこなかった分野を対象に、ユーザーがやりたいと思っていたものの実行できなかった行動の実現を助けるプロダクトを作り出すための、実践的な視点や知識を提供します。

book

大規模データ管理 ―エンタープライズアーキテクチャのベストプラクティス

by Piethein Strengholt, 村上 列

データ管理と統合が急速に進化する中、複雑で緊密に結合したアーキテクチャから、現代のビジネスに対応できる、より柔軟なデータアーキテクチャへの移行が求められます。 本書は、変化が激しい時代でも長期的に持続可能な方法で大規模なデータ管理を行い、さまざまなユースケースに対応できる統合アーキテクチャを紹介します。この統合アーキテクチャを構成する、膨大なデータ利用に向けた「読み出し専用データストアアーキテクチャ」、リアルタイムなアプリケーションのための「APIアーキテクチャ」、大容量のスループットを実現する「ストリーミングアーキテクチャ」を詳述します。また技術開発、法規制、プライバシーに関する懸念など、データ管理全体を説明し、データガバナンスとセキュリティ、マスターデータ管理、セルフサービスとデータマーケットプレイス、メタデータの重要性について解説します。 企業のデータ戦略にかかわる本書は、アーキテクトはもちろん、経営者、ガバナンスチーム、データ分析・エンジニアリングチーム必携の一冊です。