本文へスキップします。

【参】モーダルJS:読み込み
書籍DB:詳細

Pythonによるファイナンス 第2版 データ駆動型アプローチに向けて

Pythonによるファイナンス 第2版 データ駆動型アプローチに向けて

  • 著者Yves Hilpisch黒川 利明中妻 照雄 技術監修
  • 定価4,950円 (本体4,500円+税)
  • 判型B5変
  • 648頁
  • ISBN978-4-87311-890-1
  • 発売日2019/12/26
  • 発行元オライリー・ジャパン

金融工学に必要なプログラミング、数学、そして金融工学の専門知識を一冊でカバー!

この数年でPythonの金融関係のライブラリが充実し、金融業界でもPythonが当たり前のように使われるようになりました。Python+金融の解説を行う書籍の中でも、本書は圧倒的な情報量を誇ります。Pythonの入門から始まって、金融工学、統計などを丁寧に解説するだけでなく、アルゴリズムトレーディングとデリバティブの実際的な解説があるのが他にない強みです。非常に読み応えがあり、また実用的な一冊です。金融業界にいてこれからプログラミングを学びたい人にとっても、またプログラマで、金融についての勉強がしたい人にとっても役に立つ内容です。
目次

日本語版まえがき
まえがき

第1部  Pythonとファイナンス

1章 なぜファイナンスにPythonを使うのか
1.1 プログラミング言語Python
1.1.1 Pythonの大まかな歴史
1.1.2 Pythonエコシステム
1.1.3 Pythonのユーザ層
1.1.4 科学スタック
1.2 ファイナンスにおけるITテクノロジー
1.2.1 ITテクノロジーコスト
1.2.2 エネーブラーとしてのITテクノロジー
1.2.3 参入障壁としてのテクノロジーと人材
1.2.4 限りなく増加する速度、頻度、データ量
1.2.5 リアルタイム分析の勃興
1.3 ファイナンスのためのPython
1.3.1 ファイナンスとPythonの構文
1.3.2 Pythonによる効率と生産性
1.3.3 プロトタイプからプロダクションへ
1.4 データ駆動型ファイナンスとAIファーストファイナンス
1.4.1 データ駆動型ファイナンス
1.4.2 AIファーストファイナンス
1.5 結論
1.6 さらに学ぶために

2章 Pythonインフラストラクチャ
2.1 パッケージマネージャconda
2.1.1 Minicondaのインストール
2.1.2 condaの基本操作
2.2 仮想環境マネージャとしてのconda
2.3 Dockerコンテナを使う
2.3.1 Dockerイメージとコンテナ
2.3.2 UbuntuのPython Dockerイメージを作る
2.4 クラウドインスタンスを使う
2.4.1 RSA公開/秘密鍵
2.4.2 Jupyter Notebook設定ファイル
2.4.3 PythonとJupyter Notebookのインストールスクリプト
2.4.4 Dropletのセットアップのオーケストレーションスクリプト
2.5 結論
2.6 さらに学ぶために

第2部 基本の習得

3章 データ型とデータ構造
3.1 基本データ型
3.1.1 整数
3.1.2 float(浮動小数点数)
3.1.3 ブール値(真偽値、論理値)
3.1.4 文字列
3.1.5 トピックス:フォーマット出力
3.1.6 トピックス:正規表現
3.2 基本データ構造
3.2.1 タプル
3.2.2 リスト
3.2.3 トピックス:制御構造
3.2.4 トピックス:関数型プログラミング
3.2.5 dict(辞書)
3.2.6 set(集合)
3.3 結論
3.4 さらに学ぶために

4章 NumPyによる数値計算
4.1 データ配列
4.1.1 Pythonのリストによる配列
4.1.2 Pythonの配列クラス
4.2 通常のNumPy配列
4.2.1 基本操作
4.2.2 多次元配列
4.2.3 メタ情報
4.2.4 形とサイズの変更
4.2.5 ブール値配列
4.2.6 速度の比較
4.3 NumPyの構造化配列
4.4 ベクトル化コード
4.4.1 基本のベクトル化
4.4.2 メモリ配置
4.5 結論
4.6 さらに学ぶために

5章 pandasによるデータ分析
5.1 DataFrameクラス
5.1.1 DataFrameクラスの第1ステップ
5.1.2 DataFrameクラスの第2ステップ
5.2 基本的な分析
5.3 基本的な可視化
5.4 Seriesクラス
5.5 GroupBy演算
5.6 複合選択
5.7 連結、結合、マージ
5.7.1 連結
5.7.2 結合
5.7.3 マージ
5.8 性能について
5.9 結論
5.10 さらに学ぶために

6章 オブジェクト指向プログラミング
6.1 Pythonオブジェクトのオブジェクト指向
6.1.1int 
6.1.2list 
6.1.3 ndarray
6.1.4 DataFrame
6.2 Pythonクラスの基本
6.3 Pythonデータモデル
6.4 Vectorクラス
6.5 結論
6.6 さらに学ぶために

第3部 金融データサイエンス

7章 データ可視化
7.1 静的2Dプロット
7.1.1 1次元データセット
7.1.2 2次元データセット
7.1.3 他のプロットスタイル
7.2 静的3Dプロット
7.3 インタラクティブ2Dプロット
7.3.1 基本プロット
7.3.2 ファイナンスのプロット
7.4 結論
7.5 さらに学ぶために

8章 金融時系列データ
8.1 金融データ
8.1.1 データのインポート
8.1.2 要約統計量
8.1.3 時間の経過に伴う変化
8.1.4 リサンプリング
8.2 ローリング統計
8.2.1 概観
8.2.2 テクニカル分析の例
8.3 相関分析
8.3.1 データ
8.3.2 対数収益率
8.3.3 OLS回帰
8.3.4 相関
8.4 高頻度データ
8.5 結論
8.6 さらに学ぶために

9章 入出力操作
9.1 Pythonの基本I/O
9.1.1 ディスクへのオブジェクト書き出し
9.1.2 テキストファイルの読み書き
9.1.3 SQLデータベースの処理
9.1.4 NumPy配列の読み書き
9.2 pandasのI/O
9.2.1 SQLデータベースの処理
9.2.2 SQLからpandasへの変換
9.2.3 CSVファイルの処理
9.2.4 Excelファイルの処理
9.3 PyTablesを使ったI/O
9.3.1 テーブル処理
9.3.2 圧縮テーブルの処理
9.3.3 配列の処理
9.3.4 メモリ外計算
9.4 TsTablesのI/O
9.4.1 サンプルデータ
9.4.2 データストレージ
9.4.3 データの取得
9.5 結論
9.6 さらに学ぶために

10章 高性能Python
10.1 ループ
10.1.1 Python
10.1.2 NumPy
10.1.3Numba 
10.1.4 Cython
10.2 アルゴリズム
10.2.1 素数
10.2.2 フィボナッチ数
10.2.3 円周率
10.3 二項ツリー
10.3.1 Python
10.3.2 NumPy
10.3.3Numba 
10.3.4 Cython
10.4 モンテカルロシミュレーション
10.4.1 Python
10.4.2 NumPy
10.4.3Numba 
10.4.4 Cython
10.4.5 マルチプロセス
10.5 再帰pandasアルゴリズム
10.5.1 Python
10.5.2Numba 
10.5.3 Cython
10.6 結論
10.7 さらに学ぶために

11章 数学ツール
11.1 近似
11.1.1 回帰
11.1.2 補間

11.2 凸最適化
11.2.1 大域最適化
11.2.2 局所最適化
11.2.3 制約付き最適化
11.3 積分
11.3.1 数値積分
11.3.2 シミュレーション積分
11.4 記号計算
11.4.1 基本
11.4.2 方程式
11.4.3 微積分
11.4.4 微分
11.5 結論
11.6 さらに学ぶために

12章 ストキャスティクス
12.1 乱数
12.2 シミュレーション
12.2.1 確率変数
12.2.2 確率過程
12.2.3 分散減少法
12.3 評価
12.3.1 ヨーロピアンオプション
12.3.2 アメリカンオプション
12.4 リスク尺度
12.4.1 バリューアットリスク(VaR)
12.4.2 信用評価調整
12.5 Pythonスクリプト
12.6 結論
12.7 さらに学ぶために

13章 統計
13.1 正規性検定
13.1.1 ベンチマークケース
13.1.2 実世界データ
13.2 ポートフォリオ最適化
13.2.1 データ
13.2.2 基本理論
13.2.3 最適ポートフォリオ
13.2.4 効率的フロンティア
13.2.5 資本市場線
13.3 ベイズ統計
13.3.1 ベイズの公式
13.3.2 ベイズ回帰
13.3.3 2つの金融商品
13.3.4 時間の経過に伴う推定更新
13.4 機械学習
13.4.1 教師なし学習
13.4.2 教師あり学習
13.5 結論
13.6 さらに学ぶために

第4部 アルゴリズム取引

14章 FXCMトレーディングプラットフォーム
14.1 開始
14.2 データの取得
14.2.1 ティックデータの取得
14.2.2 ローソク足データの取得
14.3 APIを使う
14.3.1 過去のデータの取得
14.3.2 ストリームデータの取得
14.3.3 発注
14.3.4 口座情報
14.4 結論
14.5 さらに学ぶために

15章 取引戦略
15.1 単純移動平均
15.1.1 データインポート
15.1.2 取引戦略
15.1.3 ベクトル化バックテスト
15.1.4 最適化
15.2 ランダムウォーク仮説
15.3 線形最小二乗法
15.3.1 データ
15.3.2 回帰
15.4 クラスタリング
15.5 頻度アプローチ
15.6 分類
15.6.1 2つの二値特徴量
15.6.2 5つの二値特徴量
15.6.3 5つの離散化特徴量
15.6.4 逐次訓練と試験の分離
15.6.5 ランダム訓練と試験の分離
15.7 深層ニューラルネットワーク
15.7.1 scikit-learnのDNN
15.7.2 TensorFlowのDNN
15.8 結論
15.9 さらに学ぶために

16章 自動取引
16.1 資本管理
16.1.1 二項設定のケリー基準
16.1.2 株式と指数のケリー基準
16.2 機械学習に基づいた取引戦略
16.2.1 ベクトル化バックテスト
16.2.2 最適レバレッジ
16.2.3 リスク分析
16.2.4 モデルオブジェクトの永続化
16.3 オンラインアルゴリズム
16.4 インフラストラクチャと運用
16.5 ロギングと監視
16.6 結論
16.7 Pythonスクリプト
16.7.1 自動取引戦略
16.7.2 戦略監視
16.8 さらに学ぶために

第5部 デリバティブ分析

17章 評価フレームワーク
17.1 資産価格付けの基本定理
17.1.1 簡単な例
17.1.2 一般的な結果
17.2 リスク中立割引
17.2.1 日付のモデル化と処理
17.2.2 定数短期金利
17.3 市場環境
17.4 結論
17.5 さらに学ぶために

18章 ファイナンスモデルのシミュレーション
18.1 乱数の生成
18.2 ジェネリックシミュレーションクラス
18.3 幾何ブラウン運動
18.3.1 シミュレーションクラス
18.3.2 ユースケース
18.4 ジャンプ拡散
18.4.1 シミュレーションクラス
18.4.2 ユースケース
18.5 平方根拡散
18.5.1 シミュレーションクラス
18.5.2 ユースケース
18.6 結論
18.7 さらに学ぶために

19章 デリバティブ評価
19.1 ジェネリック評価クラス
19.2 ヨーロピアンタイプ
19.2.1 評価クラス
19.2.2 ユースケース
19.3 アメリカンタイプ
19.3.1 最小二乗モンテカルロ
19.3.2 評価クラス
19.3.3 ユースケース
19.4 結論
19.5 さらに学ぶために

20章 ポートフォリオ評価
20.1 デリバティブポジション
20.1.1 クラス
20.1.2 ユースケース
20.2 デリバティブポートフォリオ
20.2.1 クラス
20.2.2 ユースケース
20.3 結論
20.4 さらに学ぶために

21章 市場に基づいた評価
21.1 オプションデータ
21.2 モデルキャリブレーション
21.2.1 該当市場データ
21.2.2 オプションのモデル化
21.2.3 キャリブレーション手続き
21.3 ポートフォリオ評価
21.3.1 オプションポジションのモデル化
21.3.2 オプションポートフォリオ
21.4 Pythonコード
21.5 結論
21.6 さらに学ぶために

付録A 日付と時刻
A.1 Python
A.2 NumPy
A.3 pandas

付録B BSMオプションクラス
B.1 クラス定義
B.2 クラスの使用法

訳者あとがき
索引