期權

籃子期權有封閉式估值公式嗎?

  • April 18, 2022

假設我正在模擬一個包含 N 個股票的籃子的歐式看漲期權,這些股票的波動率略有不同,但所有其他參數保持不變。從估計的角度來看,從蒙地卡羅模擬中匯總到期時的值並減去籃子的行使價似乎很簡單。但是,我想知道是否有一個封閉式方程來對籃子期權進行估值,理想情況下基於 Black Scholes PDE,它可以用來計算確切的值作為比較。

編輯:我進行了編輯以闡明期權籃的含義

我不能完全確定你的問題,但我會假設你有一籃子 $ n $ 有價格的股票 $ S_0(t) $ 至 $ S_n(t) $ ,並且你想給一個期權定價,其收益為 $ C(\tau) $ 有時 $ \tau $ 等於

$$ \begin{align} C(\tau) = \max\Bigl({\frac 1 n}\sum^n_{i=1} S_i - K, 0\Bigr) \end{align} $$ 在哪裡 $ K $ 是期權的行使價

我還將做出 BS 假設,這些假設中的每一個都是根據 RN 測量中的幾何布朗運動演變的,所以

$$ \begin{align} dS_i = S_i \bigl(r dt + \sigma_i dW_t) \end{align} $$ 其中布朗運動可能與 $ n \times n $ 相關矩陣 $ \tilde{\Sigma} $

這意味著在時間 $ \tau $ , 每隻股票都有價格 $$ \begin{align} S_i(\tau) &= S_i(0)\exp \Bigl( (r -{\frac 1 2} \sigma_i^2)\tau + \sigma_i \sqrt{\tau} x_i \Bigr)\ &= F_i(0) \exp \Bigl( {\frac 1 2} \sigma_i^2\tau + \sigma_i \sqrt{\tau} x_i \Bigr) \end{align} $$ 我吸收了 $ r $ 項到前向以簡化代數,並且 $ x_i $ 是從一個 $ n $ 具有均值的維多元正態 $ 0 $ , 變異數 $ 1 $ 和相關矩陣 $ \tilde{\Sigma} $ 從上面

現在我們面臨的問題是,假設這些動態,我們知道如何使用 BS 公式對價格呈對數正態分佈的單一股票的期權定價。但不幸的是, $ \sum^n_{i=0} S_i $ 收益中的項不是對數正態分佈的,因為它是對數正態的總和,而不是乘積。

我們有兩個選擇:

  1. 使用蒙特卡羅數值計算價格

這是 python 來做到這一點(在這裡,對於 5 只具有我剛剛組成的隨機相關矩陣的股票)

import numpy as np
import pandas as pd
from matplotlib import pyplot as plt
from scipy.stats import multivariate_normal

means = np.zeros(5)
corr_mat = np.matrix([[1, 0.1, -0.1, 0, 0], [0.1, 1, 0, 0, 0.2], [-0.1, 0, 1, 0, 0], [0, 0, 0, 1, 0.15], [0, 0.2, 0, 0.15, 1]])
vols = np.array([0.1, 0.12, 0.13, 0.09, 0.11])

cov_mat = np.diag(vols).dot(corr_mat).dot(np.diag(vols))

initial_spots = np.array([100., 100., 100., 100., 100.])
tte = 1.0
strike = 100
seed = 43
num_paths = 50000

results = []
rng = multivariate_normal(means, cov_mat).rvs(size=num_paths, random_state=seed)

for i in range(num_paths):
   rns = rng[i]
   final_spots = initial_spots * np.exp(-0.5*vols*vols*tte) * np.exp(tte * rns)
   results.append(final_spots)

df = pd.DataFrame(results)
df['payoff'] = ((df.sum(axis=1) / 5) - strike).clip(0)

df['payoff'].mean()

給出價格 $ \sim 2.09 $

  1. 價格大約, 使用分析技術

我們可以在這裡使用一個技巧。期權總和的價格不是對數正態分佈的,而是價格的乘積,所以我們可以分析性地為有收益的合約定價 $$ \begin{align} C(\tau) = \max\Bigl(\bigl(\prod^n_{i=1} S_i\bigr)^{\frac 1 n} - K, 0\Bigr) \end{align} $$

代數有點複雜(見答案的底部),但事實證明這簡化了一個普通的期權定價問題,所以我們可以使用正常的 BS 方程為期權定價: $$ \begin{align} C(0) &= \delta \bigl(F\Phi(d_{+}) - K \Phi(d_{-})\bigr)\ d_{+} &= {\frac {\ln{\frac F K} + {\frac 1 2} \tilde{\sigma}^2 \tau} {\tilde{\sigma}\sqrt{\tau}}}\ d_{-} &= d_{+} - \tilde{\sigma}\sqrt{\tau} \end{align} $$

但是我們需要插入的值 $ F $ 和 $ \tilde{\sigma} $ 是: $$ \begin{align} \sigma^2 &= {\frac 1 n}\sum_{i=1}^n \sigma_i^2\ \tilde{\sigma}^2 &= {\frac 1 {n^2}} \sum_{i,j=0}^n \rho_{ij} \sigma_i \sigma_j\ F &= \Bigl(\prod_{i=1}^n F_i\Bigr)^{\frac 1 n} \cdot \exp\Bigl(-{\frac 1 2} \bigl(\sigma^2 - \tilde{\sigma}^2 \bigr)\tau\Bigr) \end{align} $$

我也在這裡用邋遢的python實現了這一點:

mod_vol_1 = (vols ** 2).mean()
mod_vol_2 = vols.dot(corr).dot(vols) / len(vols)**2

mod_fwd = np.product(initial_spots)**(1/len(vols)) * np.exp(-0.5*tte*(mod_vol_1 - mod_vol_2))

d_plus = (np.log(mod_fwd / strike) + 0.5 * mod_vol_2 * tte) / np.sqrt(mod_vol_2 * tte)
d_minus = d_plus - np.sqrt(mod_vol_2 * tte)

mod_fwd * norm.cdf(d_plus) - strike * norm.cdf(d_minus)

價格是 $ 1.87 $

這對我們有什麼幫助?其實有兩種方式…

  • 矩匹配

這是為幾何平均籃子開發的,但事實證明我們可以使用一種稱為矩匹配的技術來改進近似值

首先,這給了我們與上面相同的方程,除了 $ F $ 而是等於簡單地 $$ \begin{align} F &= \Bigl(\prod_{i=1}^n F_i\Bigr)^{\frac 1 n} \end{align} $$

如果我們對我們邋遢的蟒蛇進行這種調整,我們幾乎完全匹配上面的蒙地卡羅價格……

mod_vol_1 = (vols ** 2).mean()
mod_vol_2 = vols.dot(corr).dot(vols) / len(vols)**2

mod_fwd = np.product(initial_spots)**(1/len(vols))

d_plus = (np.log(mod_fwd / strike) + 0.5 * mod_vol_2 * tte) / np.sqrt(mod_vol_2 * tte)
d_minus = d_plus - np.sqrt(mod_vol_2 * tte)

mod_fwd * norm.cdf(d_plus) - strike * norm.cdf(d_minus)

價格是 $ 2.10 $

  • 控制變數

我們還可以使用幾何期權來改進我們的 MC 計算,使用控制變數的技術,它依賴於這樣一個事實,即由於兩種期權的價格高度相關,因此定價過高的 MC 路徑往往會超過-price 另一個,反之亦然,這使我們可以大大提高 MC 的收斂性。

而且它們確實是高度相關的……這是沿著相同路徑的兩個價格的散點圖(注意幾何籃子總是比給定路徑上的算術籃子便宜):

幾何與算術籃子

除了 StackG 的回答之外,這裡是一個很好的介紹性概述,介紹了在 Black-Scholes 框架中對籃子定價的幾種(近似和半分析)方法:

Krekel 等人 - 籃子期權定價方法分析

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