「大人の教養・知識・気付き」を伸ばすブログ

一流の大人(ビジネスマン、政治家、リーダー…)として知っておきたい、教養・社会動向を意外なところから取り上げ学ぶことで“気付く力”を伸ばすブログです。

MENU

今日のIT勉強(2021年02月14日)

今日はロベール「ロベールのC++入門講座」とYves Hilpisch「Pythonによるファイナンス」を進めた。

1.ロベールのC++入門講座

ロベールのC++入門講座

ロベールのC++入門講座

  • 作者:ロベール
  • 発売日: 2007/11/15
  • メディア: 単行本(ソフトカバー)

今日はP.1~P.126まで。
 

  • 変数の相違:グローバル変数(関数の外で定義された変数)とローカル変数(関数の中で定義された変数)
  • 条件式用の演算子の一覧
  • do~while
  • breakとcontinue
  • switch文(例外処理としてdefault)
  • sizeof関数
  • 参照渡し
  • 関数プロトタイプ
演算子 意味
== 左辺が右辺と等しいとき
!= 左辺が右辺と異なるとき
> 左辺が右辺よりも大きいとき
左辺が右辺よりも小さいとき
>= 左辺が右辺以上のとき
<= 左辺が右辺以下のとき
論理関係演算子 意味
&& かつ
|| または
! ~でない

参照渡しは分かったような、分からないような、である。。

2. Pythonによるファイナンス

Rだけではやはり微妙に困ることがあるので、Pythonを学ぶ必要が。
ということでYves Hilpisch「Pythonによるファイナンス」を読み始めた。

今日はP.27まで目を通して、まずはP.14にあるモンテカルロ評価をサンプルとして実装してみた*1

ヨーロピアン・コールオプションモンテカルロ法による時価評価を行うものである。

具体的には、C_t, t=1,2,\cdots, Tを時点 tにおけるオプション価格、Iモンテカルロ法における各試行を表す添え字iの集合として、


\begin{aligned}
C_0 = e^{-rT}\frac{1}{I}\sum_{i\in I} h_{T}(i),\\\
h_{T}(i) =\max(S_{T}(i)-K,0),\\\
S_{T} = S_{0}\exp((r-\frac{1}{2}\sigma^2)T+\sigma \sqrt{T} z)
\end{aligned}

を実装するものである。なお、

import math
import numpy as np

S0=100
K=105
T=1.0
r=0.05
sigma=0.2

I=100000

np.random.seed(1000)

z = np.random.standard_normal(I)

ST = S0 * np.exp((r - sigma ** 2 / 2) * T + sigma * math.sqrt(T) * z)

hT = np.maximum(ST-K,0)

C0 = math.exp(-r * T) * np.mean(hT)

print('Value of the European Call Option: {:5.3f}.'.format(C0))

*1:Yves Hilpisch「Pythonによるファイナンス 第2版 ――データ駆動型アプローチに向けて」オライリー・ジャパン P.14

プライバシーポリシー お問い合わせ