擴展期權定價模型到二元期權定價

更多精彩內容,歡迎關注公眾號:數量技術宅,也可添加技術宅個人微訊號:sljsz01,與我交流。

歐式期權定價回顧

我們通過蒙特卡羅模擬為歐式期權定價的模型可以作為定價各種奇異期權的基礎。在我們此前的模擬中,我們定義了一種在到期時分配資產價格的方法,以及一種用該價格評估到期期權價值的方法。

這種模擬方法一般可以被認為是這樣的:

while i < num_iterations:
    S_T = generate_asset_price()
    payoffs += payoff_function(S_T)
    i += 1

option_price = exp(-r*T) * (payoffs / num_iterations)

通過改變我們生成資產價格的方式,以及我們評估期權收益的方式,我們可以為一些奇異期權生成價格。詳細步驟,請參考我們的歷史文章。

二元期權

二元期權(也稱為全有全無,或數字期權)是一種收益為一定數量或根本沒有收益的期權。 回報通常是固定數量的現金或資產的價值。

對於我們的模擬,我們將研究現金或無現金二元期權。 二元看漲期權和看跌期權的收益如下所示。

二元看漲期權的收益圖告訴我們,如果股票價格大於或等於 40.00 美元(我們的行使價),則期權支付 1.00 美元。我們可以將一個二元看漲期權的收益寫成一個 Python 函數:

def binary_call_payoff(K, S_T):
    if S_T >= K:
        return 1.0
    else:
        return 0.0

模擬計算過程

我們的資產價格仍將遵循幾何布朗運動,因此我們可以使用此前文章中的 generate_asset_price() 函數。該函數實現程式碼如下:

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

這就是我們需要為二元現金或非現金看漲期權定價的全部內容了。把上述內容組合起來:

import random
from math import exp, sqrt

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

def binary_call_payoff(K, S_T):
    if S_T >= K:
        return 1.0
    else:
        return 0.0

# parameters
S = 40.0 # asset price
v = 0.2 # vol of 20%
r = 0.01 # rate of 1%
maturity = 0.5
K = 40.0 # ATM strike
simulations = 50000
payoffs = 0.0

# run simultaion
for i in xrange(simulations):
    S_T = gbm(S, v, r, maturity)
    payoffs += binary_call_payoff(K, S_T)

# find prices
option_price = exp(-r * maturity) * (payoffs / float(simulations))

print 'Price: %.8f' % option_price

運行上述程式碼,得到 0.48413327 的價格,約等於 0.484 。

檢驗結果

當然,二元期權也可以使用傳統的 Black Scholes 模型定價,使用以下公式:

[公式]

其中 N 是累積正態分布函數,d2 由標準 Black Scholes 公式給出。

讓我們通過插入此前模擬中的參數來測試上一步我們所計算的價格是否準確:

>>> from scipy.stats import norm
>>> from math import exp, log, sqrt
>>> S, K, v, r, T = 100.0, 100.0, 0.2, 0.01, 0.5
>>> d2 = (log(S/K) + (r - 0.5 * v**2) * T) / v*sqrt(T)
>>> print exp(-r * T) * norm.cdf(d2)
0.490489409105

可以看到,Black Scholes 公式給出的價格約為 0.490 。這意味著我們的模擬計算價格,僅與BS公式計算的價格相差 0.006 ,從這個結果可以驗證,我們的計算結果是比較準確的。

 

 


往期乾貨分享推薦閱讀

數字貨幣穩定幣對網格做市策略

數字貨幣資金費策略

分享一個年化15%以上的無風險套利機會

網格交易系統開發

通過深度學習股價截面數據分析和預測股票價格

Omega System Trading and Development Club內部分享策略Easylanguage源碼

一個真實數據集的完整機器學習解決方案(下)

一個真實數據集的完整機器學習解決方案(上)

如何使用交易開拓者(TB)開發數字貨幣策略

股指期貨高頻數據機器學習預測

如何使用TradingView(TV)回測數字貨幣交易策略

如何投資股票型基金?什麼時間買?買什麼?

【數量技術宅|量化投資策略系列分享】基於指數移動平均的股指期貨交易策略

AMA指標原作者Perry Kaufman 100+套交易策略源碼分享

【 數量技術宅 | 期權系列分享】期權策略的「獨孤九劍」

【數量技術宅|金融數據系列分享】套利策略的價差序列計算,恐怕沒有你想的那麼簡單

【數量技術宅|量化投資策略系列分享】成熟交易者期貨持倉跟隨策略

如何獲取免費的數字貨幣歷史數據

【數量技術宅|量化投資策略系列分享】多周期共振交易策略

【數量技術宅|金融數據分析系列分享】為什麼中證500(IC)是最適合長期做多的指數

商品現貨數據不好拿?商品季節性難跟蹤?一鍵解決沒煩惱的Python爬蟲分享

【數量技術宅|金融數據分析系列分享】如何正確抄底商品期貨、大宗商品

【數量技術宅|量化投資策略系列分享】股指期貨IF分鐘波動率統計策略

【數量技術宅 | Python爬蟲系列分享】實時監控股市重大公告的Python爬蟲