ヨーロピアンオプションのプライサー(pythonで学ぶ金融工学)
オプションのプライシングをモンテカルロで行う関数をpythonで書いてみた。
ちなみに、これをしかるべきディレクトリにおいて、
Import option
Option.option(変数4つ)
とすると、いちいち都度書かなくても関数として呼び出せる(モジュール化)。
結果はいつも通りwolframと比較、だいたいokな感じか。
いま気付いて加筆したけど多分合ってる。
def option(S,K,sigma,T):
import random
import math
d=
kabuka=
sum=0
for i in range(0,1001):
d.append(random.normalvariate(0,1))
for i in range(0,1001):
kabuka.append(math.exp(0.5*sigma**2*T+sigma*d[i]*math.sqrt(T))*S)
for i in range(0,1001):
if kabuka[i] > K:
sum = sum + kabuka[i] - K
print sum/1000