日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

蒙特卡洛法与BS模型法分别实现欧式期权定价

發(fā)布時(shí)間:2023/12/31 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 蒙特卡洛法与BS模型法分别实现欧式期权定价 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

蒙特卡洛法與BS模型法分別實(shí)現(xiàn)歐式期權(quán)定價(jià)
并且可以通過逐漸增大蒙特卡洛法的路徑數(shù)量以及每一條模擬路徑的步數(shù)(縮小步長(zhǎng))來驗(yàn)證蒙特卡洛方法最終結(jié)果會(huì)收斂于BS模型計(jì)算結(jié)果。

# -*- coding: utf-8 -*- """ Created on Tue Sep 13 16:57:43 2022@author: liangshanliao """import math import numpy as np from scipy.stats import norm from numpy.random import standard_normal import matplotlib.pyplot as plt #from tqdm import tqdm # 解決中文顯示問題,在開頭加入下面一句 plt.rcParams['font.sans-serif'] = ['STLiti'] # 用來正常顯示中文標(biāo)簽,字體名稱為win中中文字體對(duì)應(yīng)的英文名 plt.rcParams['axes.unicode_minus'] = False # 用來正常顯示負(fù)號(hào)def MonteCarlo(S0,r,T,K,sigma,M,I):'''S0 : 標(biāo)的資產(chǎn)初始價(jià)格K : 期權(quán)執(zhí)行價(jià)格r : 無風(fēng)險(xiǎn)利率sigma : 預(yù)期波動(dòng)率T:到期期限/剩余期限M :模擬步數(shù)I:模擬路徑條數(shù)'''dt=T/MS=np.zeros((M+1,I))S[0]=S0for t in range(1,M+1):S[t]=S[t-1]*np.exp((r-0.5*sigma**2)*dt+sigma*np.sqrt(dt)*standard_normal(I))outcome=sum(np.maximum(0,S[-1]-K))*(np.exp(-r*T))/Ireturn outcome,SS_m,S=MonteCarlo(50,0.1,0.5,52,0.4,100,1000) plt.figure(figsize=(10,8)) plt.hist(S[-1],bins=50) plt.xlabel(u'到期日時(shí)幾何布朗運(yùn)動(dòng)模擬的股票價(jià)格') plt.ylabel(u'頻率')plt.figure(figsize=(10,8)) plt.plot(S[:100],lw=1.5) plt.xlabel(u'時(shí)間') plt.ylabel(u'股票價(jià)格') plt.title(u'幾何布朗運(yùn)動(dòng)下的股票價(jià)格路徑')def BS(St,K,sigma,T,r,t):'''BS模型計(jì)算期權(quán)的價(jià)格St:標(biāo)的資產(chǎn)的價(jià)格;K:期權(quán)的執(zhí)行價(jià)格;sigma:基礎(chǔ)資產(chǎn)價(jià)格百分比變化的年化波動(dòng)率;r:無風(fēng)險(xiǎn)收益率;T:期權(quán)合約最長(zhǎng)期限t:現(xiàn)時(shí)期限;'''# 計(jì)算一些常量d1=(np.log((St)/K)+(r+0.5*sigma**2)*(T-t))/(sigma*np.sqrt(T-t))d2=d1-sigma*np.sqrt(T-t)# if option=='call':# value=St*norm.cdf(d1)-K*np.exp(-r*(T-t)*norm.cdf(d2))# elif option=='put':# value=K*np.exp(-r*(T-t))*norm.cdf(-d2)-(St)*norm.cdf(-d1)value=St*norm.cdf(d1)-K*np.exp(-r*(T-t))*norm.cdf(d2)return valueS_bs=BS(50,52,0.4,0.5,0.1,0) print("蒙特卡洛法計(jì)算結(jié)果是:",S_m) print("BS模型計(jì)算結(jié)果是:",S_bs)

總結(jié)

以上是生活随笔為你收集整理的蒙特卡洛法与BS模型法分别实现欧式期权定价的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。