估值

歐式看跌期權定價與二項式模型

  • October 19, 2019

這是 Mark Joshi 書中的一個練習(練習 3.6):

一隻股票價值 100。它的價值每個月都會增加或減少 10。無風險債券的價值 $ e^{rt} $ 在時間 t 年 r 等於 5% 時,一個 4 個月的歐式看跌期權價格為 110。

在本書的最後,Joshi 提供了解決方案 13.06。不幸的是,這不是我發現的:我得到 15.22。由於 Joshi 沒有展示他的計算,我想知道差異來自哪裡。我使用以下 Python 腳本進行計算:

import math

def get_risk_neutral_prob(S, S1, S2, r, delta_t):
   Sp = max(S1, S2)
   Sm = min(S1,S2)
   if Sm == Sp:
       return 1/2
   return (math.exp(-r*delta_t) * S - Sm)/(Sp-Sm)

def payoff(S):
   return max(110-S, 0)
r = 0.05
delta_t = 1/12


def get_price(S, N):
   if N == 0:
       return payoff(S)
   S1 = S+10
   S2 = S-10
   p = get_risk_neutral_prob(S, S1, S2, r, delta_t)
   return math.exp(-r*delta_t) * (p * get_price(S1, N-1) + (1-p) * get_price(S2,N-1))



print(get_price(100,4))

如您所見,我的計算很簡單。我首先計算風險中性機率,然後遞歸計算收益的貼現期望值。

一個月,我手工完成,我的結果 10.372 與腳本告訴我的一致。

答案由 Chris Taylor 提供:風險中性機率的公式偏離了一個負號,應該是 $$ p = \frac{e^{r \Delta t} S - S_m}{S_p - S_m} $$

我無法發表評論(聲譽低下),所以我添加了一個答案。在 Python 中,您應該編寫:

delta_t = 1.0/12

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