波動性

使用神經網路的定價選項和計算隱含波動率,圖形的奇怪形狀

  • June 13, 2020

我有時對金錢的表達感到困惑。誰能告訴我這裡的情節是什麼?它來自名為:Pricing Options and Computing Implied Volatilities using Neural Networks 的論文。

通常,我將波動率視為形狀的函式,例如 sigmoid 的負值(倒 S)。這裡的形狀是不同的。是價格的曲線嗎 $ \frac {X_0} {K} $ ?

這樣的情節很常見嗎?有什麼陰謀反對 $ \frac {K} {X_0} $ 在此處輸入圖像描述

如前所述,貨幣性是指股票價格與行使價的比率,即 $ \frac{S}{K}. $ .

我使用 Python 3 重現了以下圖表。

在此處輸入圖像描述

將上面的圖與論文中的圖進行比較,它們表現出非常相似的行為,除了零波動性(我得到除以零誤差)。

源碼如下,可以在我的github上找到:

from Option import *
import numpy as np
import matplotlib.pyplot as plt

sigma_upper = 10
x = np.linspace(1, sigma_upper, sigma_upper)

d = 0
r = 0
T = 1
sigma = 0.1
K = 1

moneyness = np.arange(0.7, 1.4, 0.1)

for i in moneyness[::-1]:
 S = i * K
 y = [Option(S, K, r, d, sigma, T).european_call() for sigma in range(1, sigma_upper+1)]
 plt.plot(x,y, label = 'moneyness = ' + str(round(i,2)))
 plt.xlabel('Volatility')
 plt.ylabel('Option Price')
 plt.legend();

Option腳本源碼如下,可以在我的github上找到(我只提取了必要的部分):

from scipy.stats import norm

class Option:
   def __init__(self, S, K, r, d, sigma, T):
       '''
       Parameters:
       ===========
       S: stock price 
       K: strike price
       r: risk-free interest rate
       d: dividend 
       sigma: volatility (implied)
       T: time to maturity


       Returns: 
       ===========
       Forward price, vanilla European call and put option' prices, cash-or-nothing call and put options' prices,
       zero coupon bond and forward contract.
       '''

       self.S = S
       self.K = K
       self.r = r
       self.d = d
       self.sigma = sigma
       self.T = T

       self.d1 = (np.log(self.S/self.K) + (self.r - self.d + self.sigma**2 / 2) * self.T) / (self.sigma * np.sqrt(self.T))
       self.d2 = self.d1 - self.sigma * np.sqrt(self.T)

   def european_call(self):
       '''
       output vanilla European call option's price using Black-Scholes formula 
       '''        
       return self.S * np.exp(-self.d * self.T) * norm.cdf(self.d1) - self.K * np.exp(-self.r * self.T)*norm.cdf(self.d2)

引用自:https://quant.stackexchange.com/questions/51736