希臘語中的有限差分法(選項)
我需要一種方法來近似使用有限差分法的通用看漲期權的希臘人的分析公式。
現在,我在分母“DeltaS”方面遇到了麻煩;如何找到使 Black-Scholes 獲得的 Delta/Gamma 解析公式之間的距離最小的最佳值?
同意@Brian B。對於 BS,您不會遇到 (1) 中的問題。但是,樹、網格、蒙地卡羅都可能導致錯誤。
(2) 可能的原因。我剛剛在Julia中嘗試了 ATM、0 div 和費率加上 0.2 vol 和 1 年期限。小於 ~ 0.00008 的偏移會導致 Gamma 出現錯誤。Delta 似乎對此不太敏感,至少對 1e-7 沒問題,對 1e-8 有偏差。所以介於兩者之間。
我不認為有一個嚴重的問題需要在偏離時考慮到確切的點。如果你問起布萊克斯科爾斯,至少不會。例如,在蒙地卡羅定價的情況下,這將非常重要,因為您不希望最終在標準誤差範圍內移動,這只是噪音。
就個人而言,對於大多數希臘人來說,我更喜歡上下移動(中央差異)。根據我的經驗,這似乎也是共識(或至少是最常用的實現)。下面是一個直覺的解釋,為什麼我認為它更好(與您的前向差異相比 -> 僅向上移動)。
考慮這個玩具範例,其中 BSM 是通用 Black Scholes 的自定義函式,其中首先 $ [1] $ 指數提供看漲期權價值和 $ [2] $ 三角洲:
K=10 # strike t = 1 # 1 year d = 0 # zero dividends rf = 0 # zero rates σ = 0.2 # 20% IVOL function deltaBumpReprice(S,bump) up = BSM(S+bump/2,K, t, rf, d, σ)[1] down = BSM(S-bump/2,K, t, rf, d, σ)[1] delta = BSM(S,K, t, rf, d, σ)[2] approx = (up-down)/bump difference = delta-approx return approx, delta, difference end
與您的單次升檔
function deltaBumpRepriceqse(S,bump) up = BSM(S+bump,K, t, rf, d, σ)[1] down = BSM(S,K, t, rf, d, σ)[1] delta = BSM(S,K, t, rf, d, σ)[2] approx = (up-down)/bump difference = delta-approx return approx, delta, difference end
現在假設我們是 ATMS (S=K=10) 並且轉換整數 (1,2,3,…, 20),這顯然是極端的。數據框顯示了近似增量,包括上/下、增量、兩者之間的差異、單個升檔近似值以及與增量的差異。
你可以看到,即使是瘋狂的變化,上下變化的增量仍然是“合理的”。怎麼來的?
這個凸起分別對應於 4.7 和 14.7 的點,而不是計算分析增量的 9.7 點。忽略班次編號,這是一種簡化,因為我直接使用了 DataFrame 索引。然而,近似值還不錯。該圖表還顯示了在您的實施中發生如此大的轉變會發生什麼。