Derivatives Analytics with Pythonを読んでみた
前回は同じようなトピックでC++の書籍を読んでPythonで実装してみたので、今回はPythonの本に触れて見ようと思いこの本を購入した。
Kindle版で8,000円超え、、、高い、、、
読了までにかかった時間:10日弱
想定読者層:初学者レベル
特に、金融工学はほぼ触れたことがなくても大丈夫かなという印象。
Pythonについては基本的な文法を知らないと厳しいが、高度な理解は必要ない。
本の内容
基本的には、Bakshi-Cao-Chen modelをベースにして、計算量のチープな方法でマーケットのオプション価格にキャリブレーション→Monte-Carloを使って複雑なプロダクトのプライシングという流れで進んでいく。
かなり実務家よりの視点で書いてあり、基礎理論の説明よりも、理論を実装に落とし込むために必要な考え方と、その実装内容に重きが置かれている。
以下は取り扱っている主な内容の列挙。
- market-based valuationとは何か
- オプションプライシングの基礎理論
- Fourier変換と特性関数を使ったオプション価格の半解析形
- Americanオプションに対する最小二乗Monte-Calro
- Bakshi-Cao-Chen model, Merton model, Heston model, Bates model...
- キャリブレーション
- Greeks計算
よかった点
- Pythonで書いてある。
Pythonメインで書いている自分の取ってはわかりやすかった。 - プライシングの思想が明確である。
理論よりの本だと見落とされがちな、実務家の視点が強く反映されている。market-baseのvaluationで大事なことが繰り返し書かれているので、実務に触れたことのない人でもどこが重要な点なのかわかると思う。 - Fourier変換をつかったオプションプライシングについて詳しく書いている。
和書でこの話題を取り扱っているものはみたことがなかった。
自分の実務経験がほぼ金利系プロダクトのみなのもあって、Heston modelの実装で使われている、くらいの認識しかなく、今までまとまって勉強したことがな買ったのでいい経験になった。(留数計算の再現に一時間ほど戸惑ったのは秘密)
洋書だとこの話題ってよく取り扱われているんだろうか。 - キャリブレーションの考え方で抜けがちな点を書いてあった。
読んでいてはっとさせられるところがいくつかあった感じ。
「不完全なモデルを使っていると、理論上リスク中立測度は一意に決まらない。キャリブレーションはそれをマーケットの実際のクオートを使って一つに定める作業である。」
(←追記:この話ってよく読んでいたらShreveにも買いてあった、、、)
「モデル選択が注目されがちだが、キャリブレーション時に用いる損失関数の選択も統計的性質に影響を与える。」
悪かったところ
- 実装に必要な式しか与えられていない部分が多い。
ジャンプ過程などは必要最低限の内容しか書かれていないので、理論的な背景が知りたければ他の書籍をあたらないとダメ。 - Python2ベースで実装されている。
一部のメソッドがPython3だと動かなかったり、objectクラスの明示的な承継を行うなど文法的に古い点があったりするので、注意が必要だと思う。 - 実装方針が微妙。
明らかに実装が冗長で、抽象クラスを使ったりしたほうがいいのになあ、と感じる場面が多かった。載せてあるスクリプトは、とりあえず動かせるもの、くらいに思っておいた方がいいかも。
そもそもこういう話題でPythonを使う時って、クラスの承継とかあまり使わない方がいいんだろうか、、、
あと、Gauss積分がある章ではscipyから直接pdfを読み出しているのに、ある章では数値積分として実装されていたりして、章をまたいだ時の一貫性のなさも少し気になった。 - 誤植はちょこちょこある。
実装と対応づける時には注意が必要。