最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python利用蒙特卡羅模擬期權定價

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

期權是一種合約,它賦予買方在未來某個時間點以特定價格買賣資產(chǎn)的權利。 這些被稱為衍生品的合約的交易有多種原因,但一種常見的用法是來對沖當資產(chǎn)價格以不利方式變動,所產(chǎn)生的風險敞口。

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

期權,及其價值

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

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

CT=max(0,ST−K)

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

PT=max(0,K−ST)

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

風險中性估值

為了使用蒙特卡羅模擬為期權定價,我們使用風險中性估值,其中衍生品的公允價值是其未來收益的預期價值。

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

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

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

在風險中性估值下,我們假設標的資產(chǎn)將平均獲得無風險利率。 因此,要計算任何時間 t 的期權收益,我們要按該利率對收益進行貼現(xiàn)。 現(xiàn)在我們有一種計算現(xiàn)值 PV 的方法。

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

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

模擬資產(chǎn)價格

Black Scholes 模型中使用的股票價格行為模型假設我們有一個已知的波動性,我們有一個無風險利率,并且資產(chǎn)的價格遵循幾何布朗運動。

幾何布朗運動是一個隨機過程,其中隨機變量的對數(shù)服從正態(tài)分布。 這種類型的過程通過對數(shù)正態(tài)分布來分配價格。

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

為此,我們需要知道:

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

期權定價

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

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

隨機變量資產(chǎn)價格收益貼現(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

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

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

為真實期權定價

在下圖中,我們有一個谷歌看漲期權的報價,行使價為 860.00 美元,將于 2013 年 9 月 21 日到期。我們還可以看到它的最后交易價格是14.50 美元。這個例子給了我們嘗試定價時,期權的一個目標價格。

此處未指定的是波動性、無風險利率、當前的股票價格。 波動率是一個相當復雜的話題,因此就本文而言,我們將假設我們知道該特定期權的波動率為 20.76%。而股票當前價格可以通過查看各種來源找到,為857.29 美元。

對于無風險利率,我們可以使用與我們選擇的到期時間相同的美國 LIBOR 利率; 我們的期權在大約三周后到期,由于沒有三周利率,我們將使用兩周利率來近似,即 0.14%。

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

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

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

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)在我們需要能夠計算這個生成價格的回報。 回想一下之前我們說過看漲期權在到期時價值是 ST-K 或 0,我們將其表示為一個函數(shù),并應用于我們生成的資產(chǎn)價格。

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

print call_payoff(862.18, 860)
>>> 2.1799999999

完整的模擬

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

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

程序運行結果如下,這與我們在市場上觀察到的此 Google 期權的價格相匹配。

Price: 14.5069

需要注意的是,我們剛剛計算的谷歌期權實際上是一個美式期權,我們只是把它定價成歐式期權,沒有考慮期權可以提前行權的可能性,盡管如此,我們仍然得出了正確的價格。

這是因為,非派息股票(例如文中舉例的 Google)的美式看漲期權的價格與歐式看漲期權的價格相同。理論上,當股票不支付股息時,提前行權并不是最佳選擇。 如果期權永遠不會提前行權,那么美式期權的價格可以像歐式期權一樣進行計算。

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

相關文章

  • 利用Seaborn繪制20個精美的pairplot圖

    利用Seaborn繪制20個精美的pairplot圖

    本文記錄的使用seaborn繪制pairplot圖,主要是用來顯示兩兩變量之間的關系(線性或非線性,有無較為明顯的相關關系等),感興趣的可以了解一下
    2022-07-07
  • 在Python的Flask框架中構建Web表單的教程

    在Python的Flask框架中構建Web表單的教程

    Flask框架中自帶一個Form表單類,通過它的子類來實現(xiàn)表單將相當愜意,這里就為大家?guī)鞵ython的Flask框架中構建Web表單的教程,需要的朋友可以參考下
    2016-06-06
  • Python異步爬取知乎熱榜實例分享

    Python異步爬取知乎熱榜實例分享

    這篇文章主要介紹了Python異步爬取知乎熱榜實例分享,文章圍繞Python異步爬取是我相關資料展開對知乎熱榜爬取的相關內容,需要的小伙伴卡哇伊參考一下
    2022-04-04
  • python異步爬蟲之多線程

    python異步爬蟲之多線程

    這篇文章主要介紹了python異步爬蟲之多線程,多線程可以為相關阻塞的操作單獨開啟線程或者進程,阻塞操作可以異步執(zhí)行,但是無法無限制開啟多線程或多進程,下面我們一起學習詳細內容,需要的朋友可以參考一下
    2022-02-02
  • Python?Jinja2?庫靈活性廣泛性應用場景實例解析

    Python?Jinja2?庫靈活性廣泛性應用場景實例解析

    Jinja2,作為Python中最流行的模板引擎之一,為開發(fā)者提供了強大的工具,用于在Web應用和其他項目中生成動態(tài)內容,本文將深入研究?Jinja2?庫的各個方面,提供更豐富的示例代碼,能夠充分理解其靈活性和廣泛應用的場景
    2024-01-01
  • Python同時處理多個異常的方法

    Python同時處理多個異常的方法

    這篇文章主要介紹了Python同時處理多個異常的方法,文中講解非常細致,代碼幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-07-07
  • Python函數(shù)返回不定數(shù)量的值方法

    Python函數(shù)返回不定數(shù)量的值方法

    今天小編就為大家分享一篇Python函數(shù)返回不定數(shù)量的值方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • Python 中的異步與同步深度解析(實踐記錄)

    Python 中的異步與同步深度解析(實踐記錄)

    在Python編程世界里,異步和同步的概念是理解程序執(zhí)行流程和性能優(yōu)化的關鍵,這篇文章將帶你深入了解它們的差異,以及阻塞和非阻塞的特性,同時通過實際代碼示例來加深理解,感興趣的朋友一起看看吧
    2025-03-03
  • python讀取文件夾中圖片的圖片名并寫入excel表格

    python讀取文件夾中圖片的圖片名并寫入excel表格

    這篇文章介紹了使用python讀取文件夾中圖片的圖片名并寫入excel表格的方法。對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-12-12
  • tesseract-ocr使用以及訓練方法

    tesseract-ocr使用以及訓練方法

    這篇文章主要介紹了tesseract-ocr使用以及訓練方法,結合圖文形式詳細分析了tesseract-ocr基本功能、用法、樣本訓練與糾錯技巧,需要的朋友可以參考下
    2023-04-04

最新評論

洪泽县| 板桥市| 临沧市| 新竹市| 宁武县| 郴州市| 固始县| 白水县| 柞水县| 阳春市| 睢宁县| 景德镇市| 济南市| 和政县| 通化县| 防城港市| 桂林市| 郁南县| 盘锦市| 夏邑县| 中宁县| 三原县| 黄平县| 苏州市| 洪雅县| 崇仁县| 东方市| 曲阜市| 孝昌县| 天柱县| 漳平市| 安达市| 兴安盟| 措勤县| 凌海市| 大同县| 合阳县| 武定县| 延津县| 清涧县| 霍林郭勒市|