亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python利用蒙特卡羅模擬期權(quán)定價(jià)

 更新時(shí)間:2022年04月21日 10:58:28   作者:數(shù)量技術(shù)宅  
期權(quán)是一種合約,它賦予買方在未來(lái)某個(gè)時(shí)間點(diǎn)以特定價(jià)格買賣資產(chǎn)的權(quán)利。本文將利用蒙特卡羅模擬期權(quán)定價(jià),感興趣的小伙伴可以了解一下

期權(quán)是一種合約,它賦予買方在未來(lái)某個(gè)時(shí)間點(diǎn)以特定價(jià)格買賣資產(chǎn)的權(quán)利。 這些被稱為衍生品的合約的交易有多種原因,但一種常見的用法是來(lái)對(duì)沖當(dāng)資產(chǎn)價(jià)格以不利方式變動(dòng),所產(chǎn)生的風(fēng)險(xiǎn)敞口。

期權(quán),即買入或賣出的權(quán)利,也是有價(jià)格的。 Black Scholes 模型描述了一種確定期權(quán)公平價(jià)格的方法,但還有許多其他方法可以確定價(jià)格。

期權(quán),及其價(jià)值

歐式期權(quán)只有在未來(lái)達(dá)到預(yù)定日期(稱為到期日)后才能使用(或行使),可以用字母 T 表示。

看漲期權(quán)賦予期權(quán)持有人以已知價(jià)格購(gòu)買的權(quán)利。 如果資產(chǎn)的到期價(jià)格(用 ST 表示)高于執(zhí)行價(jià)格 K ,則看漲期權(quán)會(huì)賺錢,否則就一文不值。

CT=max(0,ST−K)

同樣,看跌期權(quán)是出售資產(chǎn)的權(quán)利。 當(dāng)資產(chǎn)在到期日價(jià)格ST低于執(zhí)行價(jià)格K時(shí),看跌期權(quán)會(huì)賺錢,否則就一文不值。

PT=max(0,K−ST)

以下是到期時(shí)看跌期權(quán)和看漲期權(quán)的收益圖。 我們的資產(chǎn)價(jià)格是 x 軸,收益是 y 軸。

風(fēng)險(xiǎn)中性估值

為了使用蒙特卡羅模擬為期權(quán)定價(jià),我們使用風(fēng)險(xiǎn)中性估值,其中衍生品的公允價(jià)值是其未來(lái)收益的預(yù)期價(jià)值。

因此,在到期前的任何日期,用 t 表示,期權(quán)的價(jià)值是其到期收益預(yù)期的現(xiàn)值 T 。

Ct=PV(E[max(0,ST−K)])

Pt=PV(E[max(0,K−ST)])

在風(fēng)險(xiǎn)中性估值下,我們假設(shè)標(biāo)的資產(chǎn)將平均獲得無(wú)風(fēng)險(xiǎn)利率。 因此,要計(jì)算任何時(shí)間 t 的期權(quán)收益,我們要按該利率對(duì)收益進(jìn)行貼現(xiàn)。 現(xiàn)在我們有一種計(jì)算現(xiàn)值 PV 的方法。

上面的公式中,除了St ,所有這些變量都是已知的,因此St是我們的模擬將提供的。

為了給期權(quán)定價(jià),我們將創(chuàng)建一個(gè)模擬,為資產(chǎn) St 最終價(jià)格提供許多觀察結(jié)果。 通過(guò)平均所有的回報(bào),我們得到了對(duì)回報(bào)的期望值。

模擬資產(chǎn)價(jià)格

Black Scholes 模型中使用的股票價(jià)格行為模型假設(shè)我們有一個(gè)已知的波動(dòng)性,我們有一個(gè)無(wú)風(fēng)險(xiǎn)利率,并且資產(chǎn)的價(jià)格遵循幾何布朗運(yùn)動(dòng)。

幾何布朗運(yùn)動(dòng)是一個(gè)隨機(jī)過(guò)程,其中隨機(jī)變量的對(duì)數(shù)服從正態(tài)分布。 這種類型的過(guò)程通過(guò)對(duì)數(shù)正態(tài)分布來(lái)分配價(jià)格。

所以現(xiàn)在我們有一個(gè)計(jì)算時(shí)間 T 時(shí)刻資產(chǎn)價(jià)格的方法:

為此,我們需要知道:

r 是我們要貼現(xiàn)的無(wú)風(fēng)險(xiǎn)利率。 σ 是波動(dòng)率,即股票回報(bào)的年化標(biāo)準(zhǔn)差。 (T-t) 給了我們年化的到期時(shí)間。 例如,對(duì)于 30 天選項(xiàng),這將是 30/365=0.082... S 是在時(shí)間 t 標(biāo)的資產(chǎn)的價(jià)格。 ? 是我們的隨機(jī)值。 它的分布必須是標(biāo)準(zhǔn)正態(tài)(均值為 0.0,標(biāo)準(zhǔn)差為 1.0)

期權(quán)定價(jià)

為了在模擬過(guò)程中為期權(quán)定價(jià),我們生成資產(chǎn)可能在到期時(shí)的許多價(jià)格,計(jì)算每個(gè)生成價(jià)格的期權(quán)收益,將它們平均,然后對(duì)最終價(jià)值進(jìn)行貼現(xiàn)。

在創(chuàng)建完整模擬之前,我們將通過(guò)一個(gè)包含10次運(yùn)行的小示例。假設(shè)我們有一個(gè)具有以下價(jià)值的資產(chǎn):S = 100.00 美元和 σ = 20%,我們想為半年到期的看漲期權(quán)定價(jià),執(zhí)行價(jià)為 110.00 美元,我們的無(wú)風(fēng)險(xiǎn)利率是 1%。

隨機(jī)變量資產(chǎn)價(jià)格收益貼現(xiàn)收益
1.3620120.6410.6410.58
-0.778489.130.000.00
-0.940887.110.000.00
0.2227102.690.000.00
-0.036498.990.000.00
-1.430381.280.000.00
-0.830688.470.000.00
1.5155123.2813.2813.21
-1.567979.710.000.00
-1.671878.550.000.00

將折扣收益值平均,得出我們的看漲期權(quán)價(jià)格為 2.38 美元。 我們執(zhí)行的模擬越多,價(jià)格就越準(zhǔn)確。

現(xiàn)在我們可以看到模擬如何生成價(jià)格,讓我們構(gòu)建一個(gè)可以為期權(quán)定價(jià)的小型 Python 腳本,看看它是否與真實(shí)情況相符。 讓我們看一下實(shí)際的例子。

為真實(shí)期權(quán)定價(jià)

在下圖中,我們有一個(gè)谷歌看漲期權(quán)的報(bào)價(jià),行使價(jià)為 860.00 美元,將于 2013 年 9 月 21 日到期。我們還可以看到它的最后交易價(jià)格是14.50 美元。這個(gè)例子給了我們嘗試定價(jià)時(shí),期權(quán)的一個(gè)目標(biāo)價(jià)格。

此處未指定的是波動(dòng)性、無(wú)風(fēng)險(xiǎn)利率、當(dāng)前的股票價(jià)格。 波動(dòng)率是一個(gè)相當(dāng)復(fù)雜的話題,因此就本文而言,我們將假設(shè)我們知道該特定期權(quán)的波動(dòng)率為 20.76%。而股票當(dāng)前價(jià)格可以通過(guò)查看各種來(lái)源找到,為857.29 美元。

對(duì)于無(wú)風(fēng)險(xiǎn)利率,我們可以使用與我們選擇的到期時(shí)間相同的美國(guó) LIBOR 利率; 我們的期權(quán)在大約三周后到期,由于沒(méi)有三周利率,我們將使用兩周利率來(lái)近似,即 0.14%。

接下來(lái)是Python代碼的實(shí)現(xiàn),首先我們將寫下我們將如何生成資產(chǎn)價(jià)格。

def generate_asset_price(S,v,r,T):
    return S * exp((r - 0.5 * v**2) * T + v * sqrt(T) * gauss(0,1.0))

我們知道所有的輸入值,所以我們可以像這樣設(shè)定它們:

S = 857.29 # underlying price
v = 0.2076 # vol of 20.76%
r = 0.0014 # rate of 0.14%
T = (datetime.date(2013,9,21) - datetime.date(2013,9,3)).days / 365.0

print generate_asset_price(S,v,r,T)
>>> 862.1783726682384

現(xiàn)在我們需要能夠計(jì)算這個(gè)生成價(jià)格的回報(bào)。 回想一下之前我們說(shuō)過(guò)看漲期權(quán)在到期時(shí)價(jià)值是 ST-K 或 0,我們將其表示為一個(gè)函數(shù),并應(yīng)用于我們生成的資產(chǎn)價(jià)格。

def call_payoff(S_T, K):
    return max(S_T - K, 0.0)

print call_payoff(862.18, 860)
>>> 2.1799999999

完整的模擬

現(xiàn)在讓我們將各模塊代組合,并為 Google 期權(quán)定價(jià)。

import datetime
from random import gauss
from math import exp, sqrt

def generate_asset_price(S,v,r,T):
    return S * exp((r - 0.5 * v**2) * T + v * sqrt(T) * gauss(0,1.0))

def call_payoff(S_T,K):
    return max(0.0,S_T-K)

S = 857.29 # underlying price
v = 0.2076 # vol of 20.76%
r = 0.0014 # rate of 0.14%
T = (datetime.date(2013,9,21) - datetime.date(2013,9,3)).days / 365.0
K = 860.
simulations = 90000
payoffs = []
discount_factor = math.exp(-r * T)

for i in xrange(simulations):
    S_T = generate_asset_price(S,v,r,T)
    payoffs.append(
        call_payoff(S_T, K)
    )

price = discount_factor * (sum(payoffs) / float(simulations))
print 'Price: %.4f' % price

程序運(yùn)行結(jié)果如下,這與我們?cè)谑袌?chǎng)上觀察到的此 Google 期權(quán)的價(jià)格相匹配。

Price: 14.5069

需要注意的是,我們剛剛計(jì)算的谷歌期權(quán)實(shí)際上是一個(gè)美式期權(quán),我們只是把它定價(jià)成歐式期權(quán),沒(méi)有考慮期權(quán)可以提前行權(quán)的可能性,盡管如此,我們?nèi)匀坏贸隽苏_的價(jià)格。

這是因?yàn)?,非派息股票(例如文中舉例的 Google)的美式看漲期權(quán)的價(jià)格與歐式看漲期權(quán)的價(jià)格相同。理論上,當(dāng)股票不支付股息時(shí),提前行權(quán)并不是最佳選擇。 如果期權(quán)永遠(yuǎn)不會(huì)提前行權(quán),那么美式期權(quán)的價(jià)格可以像歐式期權(quán)一樣進(jìn)行計(jì)算。

到此這篇關(guān)于Python利用蒙特卡羅模擬期權(quán)定價(jià) 的文章就介紹到這了,更多相關(guān)Python期權(quán)定價(jià) 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 關(guān)于 Python opencv 使用中的 ValueError: too many values to unpack

    關(guān)于 Python opencv 使用中的 ValueError: too many values to unpack

    這篇文章主要介紹了關(guān)于 Python opencv 使用中的 ValueError: too many values to unpack,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-06-06
  • 一文帶你解決Python中的所有報(bào)錯(cuò)

    一文帶你解決Python中的所有報(bào)錯(cuò)

    使用Python進(jìn)行代碼編程的時(shí)候,難免會(huì)遇到代碼報(bào)錯(cuò),不僅僅是新手小白會(huì)遇到,就是很多編程大神也是經(jīng)常出現(xiàn)BUG的,下面這篇文章主要給大家介紹了關(guān)于解決Python中所有報(bào)錯(cuò)的相關(guān)資料,需要的朋友可以參考下
    2023-03-03
  • Python交互環(huán)境下打印和輸入函數(shù)的實(shí)例內(nèi)容

    Python交互環(huán)境下打印和輸入函數(shù)的實(shí)例內(nèi)容

    在本篇文章里小編給大家分享的是關(guān)于Python交互環(huán)境下打印和輸入函數(shù)的實(shí)例內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2020-02-02
  • python實(shí)現(xiàn)大文件分割與合并

    python實(shí)現(xiàn)大文件分割與合并

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)大文件分割與合并,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • pytest配置文件pytest.ini的詳細(xì)使用

    pytest配置文件pytest.ini的詳細(xì)使用

    這篇文章主要介紹了pytest配置文件pytest.ini的詳細(xì)使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • python利用正則表達(dá)式排除集合中字符的功能示例

    python利用正則表達(dá)式排除集合中字符的功能示例

    在正則表達(dá)式里,想匹配一些字符中的一個(gè),也就是說(shuō)給出一個(gè)字符的集合,只要出現(xiàn)這個(gè)集合里任意的字符,都是成立的,下面這篇文章主要給大家介紹了關(guān)于python利用正則表達(dá)式排除集合中字符功能的相關(guān)資料,需要的朋友可以參考下。
    2017-10-10
  • Python優(yōu)化技巧之利用ctypes提高執(zhí)行速度

    Python優(yōu)化技巧之利用ctypes提高執(zhí)行速度

    ctypes是Python的一個(gè)外部庫(kù),提供和C語(yǔ)言兼容的數(shù)據(jù)類型,可以很方便地調(diào)用C DLL中的函數(shù)。今天我們就來(lái)詳細(xì)探討下ctypes庫(kù)的使用技巧
    2016-09-09
  • 解決python通過(guò)cx_Oracle模塊連接Oracle亂碼的問(wèn)題

    解決python通過(guò)cx_Oracle模塊連接Oracle亂碼的問(wèn)題

    今天小編就為大家分享一篇解決python通過(guò)cx_Oracle模塊連接Oracle亂碼的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-10-10
  • Python讀取預(yù)處理DICOM文件方式詳解

    Python讀取預(yù)處理DICOM文件方式詳解

    這篇文章主要介紹了Python讀取預(yù)處理DICOM文件方式,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-03-03
  • 詳解如何減少python內(nèi)存的消耗

    詳解如何減少python內(nèi)存的消耗

    這篇文章主要介紹了詳解如何減少python內(nèi)存的消耗,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08

最新評(píng)論