中妻照雄「Pythonによるファイナンス入門」朝倉書店
正誤表
PythonとCVXPYのインストール手順
ステップ1: Anacondaのインストール
-
古いAnacondaがインストールされているときは,この手順でアンインストールしておく.
-
Anacondaのインストーラー (Windows, macOS or Linux) をここから入手する.
-
ダウンロードしたインストーラーをダブルクリックしてAnacondaのインストールを行う.
ステップ2: Microsoft Visual Studio Build Toolsのインストール (Windowsのみで必要)
-
Microsoft Visual Studio Build Toolsのインストーラーをここから入手する.
-
ダウンロードしたインストーラーをダブルクリックしてインストールを行うが,インストールすべきものは
C++ build toolsだけである.ここを参照.
ステップ3: CVXPYを実行する環境の設定
Anaconda Powershell Prompt (Windows) あるいは Terminal (macOS, Linux) を立ち上げて,
(base) PS C:\Users\Thomas> conda create -n finance jupyterlab seaborn spyder
とする.続けて
(base) PS C:\Users\Thomas> conda activate finance
とすると,以下のようにプロンプトが変わる.
(finance) PS C:\Users\Thomas>
注意: IPythonを開始する際には必ずconda activate financeを先に実行しておくこと.
ここで
(finance) PS C:\Users\Thomas> pip install cvxpy
とすると,CVXPYがインストールされる.最後に
(finance) PS C:\Users\Thomas> python -m ipykernel install --user --name finance --display-name "Python (Finance)"
とすれば,環境の設定が完了する.
注意: Windowsでは,この作業により Jupyter Notebook (finance) および Spyder (finance) という項目がスタートメニューに作成されるので,ここからJupyter NotebookやSpyderを起動できる.
Jupyter Notebookを始める方法
方法1: Anaconda Navigatorから起動する方法
Anaconda NavigatorをStart Menu (Windows) か Launchpad (macOS) から起動する. あるいは,Anaconda Powershell Prompt (Windows) か Terminal (macOS, Linux) を立ち上げて,
(base) PS C:\Users\Thomas> anaconda-navigator
としてもよい.そして,Anaconda NavigatorでJupyter NotebookのLaunchボタンをクリックする.
方法2: CLIから起動する方法
Anaconda Powershell Prompt (Windows) か Terminal (macOS, Linux) を立ち上げて,
(base) PS C:\Users\Thomas> conda activate finance
(finance) PS C:\Users\Thomas> jupyter notebook
とする.
方法1あるいは方法2を実行すると,規定のブラウザーが立ち上がり,Jupyter Notebookが起動する.その画面の右上にあるNewのプルダウンメニューの中にあるPython (Finance)を選んでNotebookを開始すればよい.
注意: Newのプルダウンメニューの中にあるPython 3を選んでNotebookを開始すると,CVXPYを使用することができない.
Pythonコード
CVXPY1.1リリースに伴う修正点
Parameter()で定義される変数は最適化問題の中で和か積の形で使われるようにする.ここでは期待ショートフォール最適化問題が当てはまる.- 行列やベクトルの積を表現するには
*の代わりに@を使う. - 修正を施したコードの名前の末尾には「_ver1_1」がついている.
CVXPY1.0リリースに伴う修正点
- 「sign='positive'」を「nonneg=True」に変更する.
- 「sum_entries」を「sum」に変更する.
- 最適化問題を安定的に解くため,以下のようにソルバーをECOSに設定する.
Opt_Portfolio.solve(solver=cvx.ECOS)- 修正を施したコードの名前の末尾には「_ver1」がついている.
第2章
- コード2.1 pyfin_interest.py
- コード2.2 pyfin_npv_irr.py
第3章
- コード3.1 pyfin_bond_yield_price.py
- コード3.2 pyfin_bond_duration_convexity.py
- コード3.3 pyfin_bond_yield_price.py
第4章
- コード4.1 pyfin_mvf_example1.py
- コード4.2 pyfin_mvf_example2.py, pyfin_mvf_example2_ver1.py,pyfin_mvf_example2_ver1_1.py
- コード4.3 pyfin_asset_return_simulation.py
- コード4.3で生成した人工データの例 asset_return_data.csv
- コード4.4 pyfin_mvf_example3.py, pyfin_mvf_example3_ver1.py, pyfin_mvf_example3_ver1_1.py
第5章
- コード5.1 pyfin_ad_portfolio.py, pyfin_ad_portfolio_ver1.py, pyfin_ad_portfolio_ver1_1.py
- コード5.2 pyfin_sv_portfolio.py, pyfin_sv_portfolio_ver1.py, pyfin_sv_portfolio_ver1_1.py
- コード5.3 pyfin_es_portfolio.py, pyfin_es_portfolio_ver1.py, pyfin_es_portfolio_ver1_1.py
- コード5.4 pyfin_risk_parity.py
- コード5.5 pyfin_min_tracking_error.py, pyfin_min_tracking_error_ver1.py, pyfin_min_tracking_error_ver1_1.py
第6章
- コード6.1 pyfin_option_pricing.py
- コード6.2 pyfin_black_scholes.py

Formed in 2009, the Archive Team (not to be confused with the archive.org Archive-It Team) is a rogue archivist collective dedicated to saving copies of rapidly dying or deleted websites for the sake of history and digital heritage. The group is 100% composed of volunteers and interested parties, and has expanded into a large amount of related projects for saving online and digital history.
